relay role implementation
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
d5bfddf037
commit
c95df5879e
@@ -352,6 +352,7 @@ DNS=
|
||||
SendOption=
|
||||
SendVendorOption=
|
||||
BindToInterface=
|
||||
RelayTarget=
|
||||
[NextHop]
|
||||
Id=
|
||||
Gateway=
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
[Match]
|
||||
Name=client-peer
|
||||
[Network]
|
||||
Address=192.168.6.2/24
|
||||
DHCPServer=yes
|
||||
IPForward=ipv4
|
||||
[DHCPServer]
|
||||
RelayTarget=192.168.5.1
|
||||
BindToInterface=no
|
||||
@@ -0,0 +1,5 @@
|
||||
[Match]
|
||||
Name=client
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPForward=ipv4
|
||||
@@ -0,0 +1,5 @@
|
||||
[Match]
|
||||
Name=server-peer
|
||||
[Network]
|
||||
Address=192.168.5.2/24
|
||||
IPForward=ipv4
|
||||
@@ -0,0 +1,10 @@
|
||||
[Match]
|
||||
Name=server
|
||||
[Network]
|
||||
Address=192.168.5.1/24
|
||||
IPForward=ipv4
|
||||
DHCPServer=yes
|
||||
[DHCPServer]
|
||||
BindToInterface=no
|
||||
PoolOffset=150
|
||||
PoolSize=1
|
||||
@@ -0,0 +1,8 @@
|
||||
[NetDev]
|
||||
Name=client
|
||||
Kind=veth
|
||||
MACAddress=12:34:56:78:9a:bc
|
||||
|
||||
[Peer]
|
||||
Name=client-peer
|
||||
MACAddress=12:34:56:78:9a:bd
|
||||
@@ -0,0 +1,8 @@
|
||||
[NetDev]
|
||||
Name=server
|
||||
Kind=veth
|
||||
MACAddress=12:34:56:78:9b:bc
|
||||
|
||||
[Peer]
|
||||
Name=server-peer
|
||||
MACAddress=12:34:56:78:9b:bd
|
||||
@@ -3689,6 +3689,43 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
|
||||
self.assertRegex(output, '192.168.5.*')
|
||||
self.assertRegex(output, 'Europe/Berlin')
|
||||
|
||||
class NetworkdDHCPServerRelayAgentTests(unittest.TestCase, Utilities):
|
||||
links = [
|
||||
'client',
|
||||
'server',
|
||||
'client-peer',
|
||||
'server-peer',
|
||||
]
|
||||
|
||||
units = [
|
||||
'agent-veth-client.netdev',
|
||||
'agent-veth-server.netdev',
|
||||
'agent-client.network',
|
||||
'agent-server.network',
|
||||
'agent-client-peer.network',
|
||||
'agent-server-peer.network',
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
remove_links(self.links)
|
||||
stop_networkd(show_logs=False)
|
||||
|
||||
def tearDown(self):
|
||||
remove_links(self.links)
|
||||
remove_unit_from_networkd_path(self.units)
|
||||
stop_networkd(show_logs=True)
|
||||
|
||||
def test_relay_agent(self):
|
||||
copy_unit_to_networkd_unit_path(*self.units)
|
||||
start_networkd()
|
||||
|
||||
#Test is disabled until BindToInterface DHCP server configuration option is supported
|
||||
self.wait_online(['client:routable'])
|
||||
|
||||
output = check_output(*networkctl_cmd, '-n', '0', 'status', 'client', env=env)
|
||||
print(output)
|
||||
self.assertRegex(output, 'Address: 192.168.5.150 \(DHCP4 via 192.168.5.1\)')
|
||||
|
||||
class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
|
||||
links = [
|
||||
'veth99',
|
||||
|
||||
Reference in New Issue
Block a user