dhcp-relay relays an extra packet with a wrong giaddr
- Tested on: 4.3.1-6 and 4.4.1-2.
- Run as: /usr/sbin/dhcrelay -q -4 -a -m discard -i eth0 -i eth1 172.16.0.254
- Network topology: LAN1 <> eth1_dhcprelay_eth0 <> LAN2
- DHCP address: 172.16.0.254 (LAN2)
- dhcprelay_eth0 IP address: 172.16.0.1 (LAN2)
- dhcprelay_eth1 IP address: 10.10.10.1 (LAN1)
It seems that the dhcp-relay generates and then relays an extra DHCP REQUEST with a wrong GIADDR during RENEW. There are two suspicious behaviors here:
- DHCP REQUEST during RENEW is unicast. Why does dhcp-relay touch it?
- Why does dhcp-relay put 172.16.0.1 into the GIADDR field? 172.16.0.1 is assigned to the interface where DHCP server is located.
Apr 29 21:07:21 debian dhcpd[2367]: DHCPREQUEST for 10.10.10.10 from 0c:e2:df:02:5a:00 (user) via ens3
Apr 29 21:07:21 debian dhcpd[2367]: DHCPACK on 10.10.10.10 to 0c:e2:df:02:5a:00 (user) via ens3
Apr 29 21:07:21 debian dhcpd[2367]: DHCPREQUEST for 10.10.10.10 from 0c:e2:df:02:5a:00 (user) via 10.10.10.1
Apr 29 21:07:21 debian dhcpd[2367]: DHCPREQUEST for 10.10.10.10 from 0c:e2:df:02:5a:00 (user) via
172.16.0.1: ignored (not authoritative).