From 4a906586f80190ad7e4b08d6b5d07182b0df1938 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 16 Jun 2021 04:50:49 +0900 Subject: test-network: add a testcase for UplinkInterface= in [IPv6SendRA] --- .../conf/dhcp-server-with-ipv6-prefix.network | 4 +++ .../conf/ipv6ra-prefix-client-deny-list.network | 1 + .../test-network/conf/ipv6ra-prefix-client.network | 1 + test/test-network/conf/ipv6ra-prefix.network | 3 ++ test/test-network/conf/ipv6ra-uplink.network | 8 +++++ test/test-network/systemd-networkd-tests.py | 37 ++++++++++++++++++---- 6 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 test/test-network/conf/ipv6ra-uplink.network (limited to 'test/test-network') diff --git a/test/test-network/conf/dhcp-server-with-ipv6-prefix.network b/test/test-network/conf/dhcp-server-with-ipv6-prefix.network index 7a1cfc65e1..4c89035139 100644 --- a/test/test-network/conf/dhcp-server-with-ipv6-prefix.network +++ b/test/test-network/conf/dhcp-server-with-ipv6-prefix.network @@ -13,3 +13,7 @@ Prefix=2002:da8:1:0::/64 [DHCPServer] DNS=192.168.5.1 NTP=192.168.5.1 + +[IPv6SendRA] +EmitDNS=no +EmitDomains=no diff --git a/test/test-network/conf/ipv6ra-prefix-client-deny-list.network b/test/test-network/conf/ipv6ra-prefix-client-deny-list.network index ce7a76f70c..be0d2e40c5 100644 --- a/test/test-network/conf/ipv6ra-prefix-client-deny-list.network +++ b/test/test-network/conf/ipv6ra-prefix-client-deny-list.network @@ -9,3 +9,4 @@ IPv6AcceptRA=yes RouterDenyList=2001::1 PrefixDenyList=2001:db8:0:2:: RouteDenyList=2001:db1:fff:: +UseDomains=yes diff --git a/test/test-network/conf/ipv6ra-prefix-client.network b/test/test-network/conf/ipv6ra-prefix-client.network index 58883658f3..e18ecaf290 100644 --- a/test/test-network/conf/ipv6ra-prefix-client.network +++ b/test/test-network/conf/ipv6ra-prefix-client.network @@ -11,3 +11,4 @@ PrefixAllowList=2001:db8:0:1:: 2001:db8:0:1:: PrefixDenyList=2001:db8:0:1:: 2001:db8:0:1:: RouteAllowList=2001:db0:fff:: 2001:db0:fff:: RouteDenyList=2001:db0:fff:: 2001:db0:fff:: +UseDomains=yes diff --git a/test/test-network/conf/ipv6ra-prefix.network b/test/test-network/conf/ipv6ra-prefix.network index cfb03f50c4..72ad808b71 100644 --- a/test/test-network/conf/ipv6ra-prefix.network +++ b/test/test-network/conf/ipv6ra-prefix.network @@ -5,6 +5,9 @@ Name=veth99 DHCP=no IPv6SendRA=yes +[IPv6SendRA] +UplinkInterface=dummy98 + [IPv6Prefix] Prefix=2001:db8:0:1::/64 diff --git a/test/test-network/conf/ipv6ra-uplink.network b/test/test-network/conf/ipv6ra-uplink.network new file mode 100644 index 0000000000..9146def210 --- /dev/null +++ b/test/test-network/conf/ipv6ra-uplink.network @@ -0,0 +1,8 @@ +[Match] +Name=dummy98 + +[Network] +IPv6AcceptRA=no +Address=2001:db8:1:1::1/64 +DNS=2001:db8:1:1::2 +Domains=example.com diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index dc31d133c4..11e97e0ade 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -4685,14 +4685,19 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 metric 1024 brd 192.168.5.255 scope global dynamic veth99') class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities): - links = ['veth99'] + links = [ + 'dummy98', + 'veth99', + ] units = [ + '12-dummy.netdev', '25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix-client.network', - 'ipv6ra-prefix.network' - ] + 'ipv6ra-prefix.network', + 'ipv6ra-uplink.network', + ] def setUp(self): remove_links(self.links) @@ -4705,10 +4710,11 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities): stop_networkd(show_logs=True) def test_ipv6_route_prefix(self): - copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client.network', 'ipv6ra-prefix.network') + copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client.network', 'ipv6ra-prefix.network', + '12-dummy.netdev', 'ipv6ra-uplink.network') start_networkd() - self.wait_online(['veth99:routable', 'veth-peer:routable']) + self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable']) output = check_output('ip address show dev veth-peer') print(output) @@ -4727,11 +4733,20 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities): self.assertNotIn('inet6 2001:db8:0:1:', output) self.assertIn('inet6 2001:db8:0:2:', output) + output = check_output(*resolvectl_cmd, 'dns', 'veth-peer', env=env) + print(output) + self.assertRegex(output, '2001:db8:1:1::2') + + output = check_output(*resolvectl_cmd, 'domain', 'veth-peer', env=env) + print(output) + self.assertIn('example.com', output) + def test_ipv6_route_prefix_deny_list(self): - copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network') + copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network', + '12-dummy.netdev', 'ipv6ra-uplink.network') start_networkd() - self.wait_online(['veth99:routable', 'veth-peer:routable']) + self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable']) output = check_output('ip address show dev veth-peer') print(output) @@ -4750,6 +4765,14 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities): self.assertNotIn('inet6 2001:db8:0:1:', output) self.assertIn('inet6 2001:db8:0:2:', output) + output = check_output(*resolvectl_cmd, 'dns', 'veth-peer', env=env) + print(output) + self.assertRegex(output, '2001:db8:1:1::2') + + output = check_output(*resolvectl_cmd, 'domain', 'veth-peer', env=env) + print(output) + self.assertIn('example.com', output) + class NetworkdMTUTests(unittest.TestCase, Utilities): links = ['dummy98'] -- cgit v1.2.1