def test_add_multipath_route(self): self.device_name2 = 'test_device2' ip_lib.IPWrapper(self.namespace).add_dummy(self.device_name2) self.device2 = ip_lib.IPDevice(self.device_name2, self.namespace) self.device2.link.set_up() self.device.addr.add('10.1.0.1/24') self.device2.addr.add('10.2.0.1/24') multipath = [{ 'device': self.device_name, 'via': '10.1.0.100', 'weight': 10 }, { 'device': self.device_name2, 'via': '10.2.0.100', 'weight': 20 }, { 'via': '10.2.0.101', 'weight': 30 }, { 'via': '10.2.0.102' }] priv_ip_lib.add_ip_route(self.namespace, '192.168.0.0/24', n_cons.IP_VERSION_4, via=multipath) self._check_routes(['192.168.0.0/24'], gateway=multipath)
def test_add_route_via_ipv4(self): cidrs = ['192.168.0.0/24', '172.90.0.0/16', '10.0.0.0/8'] int_cidr = '192.168.20.1/24' int_ip_address = str(netaddr.IPNetwork(int_cidr).ip) self.device.addr.add(int_cidr) for cidr in cidrs: ip_version = common_utils.get_ip_version(cidr) priv_ip_lib.add_ip_route(self.namespace, cidr, ip_version, via=int_ip_address) self._check_routes(cidrs, gateway=int_ip_address)
def test_add_route_via_ipv6(self): cidrs = ['2001:db8::/64', 'faaa::/96'] int_cidr = 'fd00::1/64' via_ip = 'fd00::2' self.device.addr.add(int_cidr) for cidr in cidrs: ip_version = common_utils.get_ip_version(cidr) priv_ip_lib.add_ip_route(self.namespace, cidr, ip_version, via=via_ip) self._check_routes(cidrs, gateway=via_ip)
def _add_route_device_and_check(self, table=None, metric=None, scope='link'): cidrs = ['192.168.0.0/24', '172.90.0.0/16', '10.0.0.0/8', '2001:db8::/64'] for cidr in cidrs: ip_version = common_utils.get_ip_version(cidr) priv_ip_lib.add_ip_route(self.namespace, cidr, ip_version, device=self.device_name, table=table, metric=metric, scope=scope) self._check_routes(cidrs, table=table, metric=metric, scope=scope)
def test_add_default(self): ip_addresses = ['192.168.0.1/24', '172.90.0.1/16', '10.0.0.1/8', '2001:db8::1/64', 'faaa::1/96'] for ip_address in ip_addresses: ip_version = common_utils.get_ip_version(ip_address) if ip_version == n_cons.IP_VERSION_4: _ip = str(netaddr.IPNetwork(ip_address).ip) else: _ip = str(netaddr.IPNetwork(ip_address).ip + 1) self.device.addr.add(ip_address) priv_ip_lib.add_ip_route(self.namespace, None, ip_version, device=self.device_name, via=_ip) self._check_gateway(_ip)