(1) IPv4 testing with relayport patch on relay and server. - topology (two hosts, lenovo and vaio with vLANs): client(enp3s0.10) (enp2s8.10)relay(enp2s8.20) (enp3s0.30)server lenovo (192.168.10.100)vaio(192.168.20.100) (192.168.20.35)lenovo <----------------------------> <-------------------------------> client: dhclient -d -cf ../confs/dhclient.conf enp3s0.10 relay: dhcrelay -d -i enp2s8.10 -rp 5001 -U enp2s8.20 192.168.20.35 server: dhcpd -q -f -cf ../confs/dhcpd.conf -lf ../confs/dhcpd.leases -s 192.168.20.35 enp3s0.20 dhclient.conf alias { interface "enp3s0.10"; } lease { interface "enp3s0.10"; fixed-address 192.168.10.35; option host-name "lenovo10.switch.com"; option subnet-mask 255.255.255.0; option domain-name-servers 127.0.0.1; renew 2 2017/6/22 00:00:01; rebind 2 2017/6/22 00:00:01; expire 2 2017/6/22 00:00:01; } dhcpd.conf: shared-network 10-20 { subnet 192.168.10.0 netmask 255.255.255.0 { # option routers 192.168.10.100; } subnet 192.168.20.0 netmask 255.255.255.0 { } pool { range 192.168.10.35 192.168.10.50; } } (2) IPv6 with two relay agents client relay1(5002) relay2(5003) server (enp2s8.10) (enp3s0.10) (enp3s0.20) (enp2s8.20) (enp2s8.30) (enp3s0.30) vaio (2017:10::35)lenovo(2017:20::35) (2017:20::100)vaio(2017:30::100) (2017:30::35)lenovo <--------------> <-----------------> <-----------------> one client, with relay1 uses port 5002, and relay2 uses port 5003, one server three vLANs on two hosts vaio and lenovo. client: vaio:~/dhcp/6relay-dhcp-4.3.5$ sudo client/dhclient -6 -d -cf ../confs/dhclient-v6.conf enp2s8.10 relay1: lenovo:~/dhcp/6relay-dhcp-4.3.5$ sudo relay/dhcrelay -6 -d -I -rp 5003 -l enp3s0.10 -u 2017:20::100%enp3s0.20 relay2: vaio:~/dhcp/6relay-dhcp-4.3.5$ sudo relay/dhcrelay -6 -d -I -rp 5002 -l enp2s8.20 -u enp2s8.30 server: lenovo:~/dhcp/6server-dhcp-4.3.5$ sudo server/dhcpd -6 -q -f -cf ../confs/dhcpd6.conf -lf ../confs/dhcpd6.leases enp3s0.30 - dhclient-v6.conf file: send host-name = pick-first-value(gethostname(), "ISC-dhclient"); send dhcp-client-identifier 1:00:11:2F:85:8C:F4; send dhcp-lease-time 3600; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; timeout 60; retry 60; reboot 10; select-timeout 5; initial-interval 2; alias { interface "enp2s8.10"; } lease { interface "enp2s8.10"; option host-name "vaio"; # option dhcp6.dhcp4-o-dhcp6-server 2016:30::35; renew 2 2017/6/22 00:00:01; rebind 2 2017/6/22 00:00:01; expire 2 2017/6/22 00:00:01; } - dhcpd6.conf: # dhcpd6.conf # # Sample configuration file for ISC dhcpd # default-lease-time 7200; max-lease-time 7200; preferred-lifetime 7200; option dhcp-renewal-time 500; option dhcp-rebinding-time 1000; allow leasequery; # option definitions common to all supported networks... option dhcp6.name-servers 2017:30::35; option dhcp6.domain-search "test.switch.com", "switch.com"; option dhcp6.info-refresh-time 1200; log-facility local7; subnet6 2017:10::/64 { range6 2017:10::90 2017:10::190; } subnet6 2017:30::/64 { }