DHCP-Relay mischt sich in Unicast-Pakete ein

11/09/2015 - 12:50 von Marc Haber | Report spam
Gegeben sei ein Netz mit etlichen VLANs. Hier nur relevant sind die
VLANs 181 (Infrastruktur) und 185 (Clients). In VLAN 181 ist ein
DHCP-Server, auf dem Router zwischen den Netzen ist ein DHCP-Relay
installiert. Router und DHCP-Server sind Debian jessie; DHCP-Server
und -Relay sind jeweils aus ISC DHCP 4.3.2.

Der Client hat die MAC-Adresse cc:07:ab:ac:99:7e und die IP-Adresse
192.168.185.156.

Die IPv6-Adressen, die ebenso konfiguriert sind, habe ich hier
entfernt, da irrelevant.

Router:
|[3/501]mh@barrida:~$ ip addr show dev int181
|9: int181@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
| link/ether 9a:3d:9f:63:27:ac brd ff:ff:ff:ff:ff:ff
| inet 192.168.181.254/32 brd 192.168.181.254 scope global int181
| valid_lft forever preferred_lft forever
| inet 192.168.181.163/24 brd 192.168.181.255 scope global int181
| valid_lft forever preferred_lft forever
|[4/502]mh@barrida:~$ ip addr show dev int185
|13: int185@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
| link/ether fe:fd:22:0f:79:5e brd ff:ff:ff:ff:ff:ff
| inet 192.168.185.254/24 brd 192.168.185.255 scope global int185
| valid_lft forever preferred_lft forever
|[5/503]mh@barrida:~$ sudo cat /proc/net/vlan/config
|VLAN Dev name | VLAN ID
|Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
|int181 | 181 | eth0
|int185 | 185 | eth0
|[16/514]mh@barrida:~$ cat /etc/default/isc-dhcp-relay
|SERVERS="192.168.181.161 192.168.251.9"
|INTERFACES="int181 int182 int183 int184 int185 int186 int187 int188 int189"
|OPTIONS=""

Und der DHCP-Server:
|[7/505]mh@chasse:~$ ip addr show dev eth0
|2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
| link/ether 52:54:00:bd:92:b1 brd ff:ff:ff:ff:ff:ff
| inet 192.168.181.161/24 brd 192.168.181.255 scope global eth0
| valid_lft forever preferred_lft forever

Nun möchte der Client seine Lease verlàngern und sendet ein
Unicast-DHCPREQUEST direkt an den Server, von dem er die Lease
bekommen hat (tcpdump auf int185 des Routers):
|12:35:30.343624 cc:07:ab:ac:99:7e > fe:fd:22:0f:79:5e, ethertype IPv4 (0x0800), length 353: 192.168.185.156.68 > 192.168.181.161.67: BOOTP/DHCP, Request from cc:07:ab:ac:99:7e, length 311
|12:35:30.353324 fe:fd:22:0f:79:5e > cc:07:ab:ac:99:7e, ethertype IPv4 (0x0800), length 372: 192.168.181.161.67 > 192.168.185.156.68: BOOTP/DHCP, Reply, length 330
|12:35:30.353754 fe:fd:22:0f:79:5e > cc:07:ab:ac:99:7e, ethertype IPv4 (0x0800), length 372: 192.168.185.254.67 > 192.168.185.156.68: BOOTP/DHCP, Reply, length 330

Seltsamerweise mischt sich auch hier das DHCP-Relay ein und verdoppelt
den DHCPREQUEST nicht nur, sondern verdreifacht ihn (tcpdump auf
int181 des Routers):
|12:35:30.343739 9a:3d:9f:63:27:ac > 52:54:00:bd:92:b1, ethertype IPv4 (0x0800), length 353: 192.168.185.156.68 > 192.168.181.161.67: BOOTP/DHCP, Request from cc:07:ab:ac:99:7e, length 311
|12:35:30.344094 9a:3d:9f:63:27:ac > 52:54:00:bd:92:b1, ethertype IPv4 (0x0800), length 353: 192.168.181.163.67 > 192.168.181.161.67: BOOTP/DHCP, Request from cc:07:ab:ac:99:7e, length 311
|12:35:30.344184 9a:3d:9f:63:27:ac > 52:54:00:bd:92:b1, ethertype IPv4 (0x0800), length 353: 192.168.181.163.67 > 192.168.181.161.67: BOOTP/DHCP, Request from cc:07:ab:ac:99:7e, length 311
|12:35:30.353242 52:54:00:bd:92:b1 > 9a:3d:9f:63:27:ac, ethertype IPv4 (0x0800), length 372: 192.168.181.161.67 > 192.168.185.156.68: BOOTP/DHCP, Reply, length 330
|12:35:30.353502 52:54:00:bd:92:b1 > 9a:3d:9f:63:27:ac, ethertype IPv4 (0x0800), length 372: 192.168.181.161.67 > 192.168.185.254.67: BOOTP/DHCP, Reply, length 330
|12:35:30.353999 52:54:00:bd:92:b1 > 9a:3d:9f:63:27:ac, ethertype IPv4 (0x0800), length 342: 192.168.181.161.67 > 192.168.181.254.67: BOOTP/DHCP, Reply, length 300
|12:35:30.354106 9a:3d:9f:63:27:ac > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 192.168.181.254.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300

Der DHCP-Server selbst logged das hier:
|Sep 11 12:35:30 chasse dhcpd[767]: Adap-lease: Total: 100, Free: 96, Ends: 156, Adaptive: 300, Fill: 4, Threshold: 80
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e via eth0
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPACK on 192.168.185.156 to cc:07:ab:ac:99:7e (android-82ac454c2cdff807) via eth0
|Sep 11 12:35:30 chasse dhcpd[767]: Adap-lease: Total: 100, Free: 96, Ends: 300, Adaptive: 300, Fill: 4, Threshold: 80
|Sep 11 12:35:30 chasse dhcpd[767]: reuse_lease: lease age 0 (secs) under 25% threshold, reply with unaltered, existing lease
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e (android-82ac454c2cdff807) via 192.168.185.254
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPACK on 192.168.185.156 to cc:07:ab:ac:99:7e via 192.168.185.254
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e via 192.168.181.254: wrong network.
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPNAK on 192.168.185.156 to cc:07:ab:ac:99:7e via 192.168.181.254

Und ich frage mich: WTF?

Kann mir das jemand erklàren?

Grüße
Marc
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 

Lesen sie die antworten

#1 Kai Fredrichsen
11/09/2015 - 16:30 | Warnen spam
Marc Haber wrote:

Der DHCP-Server selbst logged das hier:
|Sep 11 12:35:30 chasse dhcpd[767]: Adap-lease: Total: 100, Free: 96, Ends: 156, Adaptive: 300, Fill: 4, Threshold: 80
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e via eth0
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPACK on 192.168.185.156 to cc:07:ab:ac:99:7e (android-82ac454c2cdff807) via eth0
|Sep 11 12:35:30 chasse dhcpd[767]: Adap-lease: Total: 100, Free: 96, Ends: 300, Adaptive: 300, Fill: 4, Threshold: 80
|Sep 11 12:35:30 chasse dhcpd[767]: reuse_lease: lease age 0 (secs) under 25% threshold, reply with unaltered, existing lease
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e (android-82ac454c2cdff807) via 192.168.185.254
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPACK on 192.168.185.156 to cc:07:ab:ac:99:7e via 192.168.185.254
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPREQUEST for 192.168.185.156 from cc:07:ab:ac:99:7e via 192.168.181.254: wrong network.
|Sep 11 12:35:30 chasse dhcpd[767]: DHCPNAK on 192.168.185.156 to cc:07:ab:ac:99:7e via 192.168.181.254

Und ich frage mich: WTF?



Meine Glaskugel vermutet die Ursache im vlan-offloading der NIC in
Verbindung mit raw-Sockets von DHCP-Server und -Relay. Die Bedingungen
stimmen nicht ganz, da das nur ein Problem sein sollte, wenn zusàtzlich
noch das untagged interface benutzt wird

news://freenews.netfront.net/ - complaints:

Ähnliche fragen