DHCP für verschiedene VLANs bereitstellen mit HP ProCurve 1920 und Ubuntu
Hallo Community,
ich steh mal wieder quasi im Wald und seh ihn nicht.. oder so, ihr wisst schon...
Folgende Situation:
Gateway/DHCP-Server (Linux Ubuntu Server) mit 2 Netzwerkkarten (intern & extern=Internet)
Dazu ein HP1920-24G Switch.
Hier die Ausgabe der interfaces des Gateways
Ich habe auf dem DHCP Server mehrere Scopes eingerichtet für verschiedenen VLAN's
Auf dem Switch sind die VLAN Interfaces eingerichtet und der DHCP ist als Relay Agent eingetragen.
Hier noch ein Ausschnitt aus der syslog
und aus tshark
Ich habe in jedem der VLAN's einen Client mit Lubuntu und aktivem DHCP auf der NIC aktiviert.
Habe ich irgendwo was vergessen warum es nicht bis zum ACK kommt?
Der Switch erhält übrigends seine IP (fest reserviert) aus dem Management VLAN1. Aber alle anderen Geräte nicht.
Ich habe in einigen Beiträgen gelesen das der Port an dem der DHCP Server hängt auch ein Trunk Port sein muss, nur mit dem VLAN aus welchem der DHCP stammt als untagged.
In anderen Beiträgen wurde wiederrum von inter-vlan Routing gesprochen (so weit bin ich doch noch gar nicht... )
Danke und Gruß,
Markus
ich steh mal wieder quasi im Wald und seh ihn nicht.. oder so, ihr wisst schon...
Folgende Situation:
Gateway/DHCP-Server (Linux Ubuntu Server) mit 2 Netzwerkkarten (intern & extern=Internet)
Dazu ein HP1920-24G Switch.
Hier die Ausgabe der interfaces des Gateways
# The primary network interface
auto extern
iface extern inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1 192.168.0.101
auto intern
iface intern inet static
address 10.10.0.254
netmask 255.255.240.0
gateway 10.10.0.0
Ich habe auf dem DHCP Server mehrere Scopes eingerichtet für verschiedenen VLAN's
#Management
subnet 10.10.0.0 netmask 255.255.255.0 {
range 10.10.0.10 10.10.0.100;
default-lease-time 600;
max-lease-time 7200;
option broadcast-address 10.10.0.255;
option subnet-mask 255.255.255.0;
option routers 10.10.0.254;
interface intern;
}
#Intern
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.10 10.10.1.100;
default-lease-time 600;
max-lease-time 7200;
option broadcast-address 10.10.1.255;
option subnet-mask 255.255.255.0;
option routers 10.10.1.254;
interface intern;
}
#GastWlan
subnet 10.10.2.0 netmask 255.255.255.0 {
range 10.10.2.10 10.10.2.100;
default-lease-time 600;
max-lease-time 7200;
option broadcast-address 10.10.2.255;
option subnet-mask 255.255.255.0;
option routers 10.10.2.254;
interface intern;
}
#Kamera
subnet 10.10.3.0 netmask 255.255.255.0 {
range 10.10.3.10 10.10.3.100;
default-lease-time 600;
max-lease-time 7200;
option broadcast-address 10.10.3.255;
option subnet-mask 255.255.255.0;
option routers 10.10.3.254;
interface intern;
}
Auf dem Switch sind die VLAN Interfaces eingerichtet und der DHCP ist als Relay Agent eingetragen.
Hier noch ein Ausschnitt aus der syslog
Feb 15 20:54:53 gateway dhcpd: DHCPOFFER on 10.10.1.10 to d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:06 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:06 gateway dhcpd: DHCPOFFER on 10.10.0.12 to d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:06 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:06 gateway dhcpd: DHCPOFFER on 10.10.1.10 to d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:26 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:26 gateway dhcpd: DHCPOFFER on 10.10.0.12 to d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:26 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:26 gateway dhcpd: DHCPOFFER on 10.10.1.10 to d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:41 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:41 gateway dhcpd: DHCPOFFER on 10.10.0.12 to d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:41 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:41 gateway dhcpd: DHCPOFFER on 10.10.1.10 to d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:54 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:54 gateway dhcpd: DHCPOFFER on 10.10.0.12 to d4:3d:7e:4a:80:a7 (test02) via intern
Feb 15 20:55:54 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:55:54 gateway dhcpd: DHCPOFFER on 10.10.1.10 to d4:3d:7e:4a:80:a7 (test02) via 10.10.1.254
Feb 15 20:56:09 gateway dhcpd: DHCPDISCOVER from d4:3d:7e:4a:80:a7 (test02) via intern
und aus tshark
1 2 1.649140 0.0.0.0 -> 255.255.255.255 DHCP 346 DHCP Discover - Transaction ID 0x9357ce29
3 1.649629 10.10.0.254 -> 10.10.0.10 DHCP 342 DHCP Offer - Transaction ID 0x9357ce29
4 1.651806 10.10.3.254 -> 10.10.0.254 DHCP 342 DHCP Discover - Transaction ID 0x9357ce29
5 1.652416 IntelCor_1a:10:9b -> Broadcast ARP 42 Who has 10.10.3.254? Tell 10.10.0.254
6 1.652949 2c:23:3a:d0:0e:de -> Broadcast ARP 60 Who has 10.10.0.10? Tell 10.10.0.151
6 7 2.028873 2c:23:3a:d0:0e:f7 -> Spanning-tree-(for-bridges)_00 STP 60 RST. Root = 32768/0/2c:23:3a:d0:0e:de Cost = 0 Port = 0x8018
7 8 2.652476 IntelCor_1a:10:9b -> Broadcast ARP 42 Who has 10.10.3.254? Tell 10.10.0.254
8 9 3.652475 IntelCor_1a:10:9b -> Broadcast ARP 42 Who has 10.10.3.254? Tell 10.10.0.254
9 10 4.000115 2c:23:3a:d0:0e:f7 -> Spanning-tree-(for-bridges)_00 STP 60 RST. Root = 32768/0/2c:23:3a:d0:0e:de Cost = 0 Port = 0x8018
11 4.081566 0.0.0.0 -> 255.255.255.255 DHCP 346 DHCP Discover - Transaction ID 0x5d59ac33
12 4.082052 10.10.0.254 -> 10.10.0.12 DHCP 342 DHCP Offer - Transaction ID 0x5d59ac33
13 4.084236 10.10.1.254 -> 10.10.0.254 DHCP 342 DHCP Discover - Transaction ID 0x5d59ac33
14 4.084798 IntelCor_1a:10:9b -> Broadcast ARP 42 Who has 10.10.1.254? Tell 10.10.0.254
15 4.085560 2c:23:3a:d0:0e:de -> Broadcast ARP 60 Who has 10.10.0.12? Tell 10.10.0.151
15 16 5.084476 IntelCor_1a:10:9b -> Broadcast ARP 42 Who has 10.10.1.254? Tell 10.10.0.254
16 17 6.000176 2c:23:3a:d0:0e:f7 -> Spanning-tree-(for-bridges)_00 STP 60 RST. Root = 32768/0/2c:23:3a:d0:0e:de Cost = 0 Port = 0x801
Ich habe in jedem der VLAN's einen Client mit Lubuntu und aktivem DHCP auf der NIC aktiviert.
Habe ich irgendwo was vergessen warum es nicht bis zum ACK kommt?
Der Switch erhält übrigends seine IP (fest reserviert) aus dem Management VLAN1. Aber alle anderen Geräte nicht.
Ich habe in einigen Beiträgen gelesen das der Port an dem der DHCP Server hängt auch ein Trunk Port sein muss, nur mit dem VLAN aus welchem der DHCP stammt als untagged.
In anderen Beiträgen wurde wiederrum von inter-vlan Routing gesprochen (so weit bin ich doch noch gar nicht... )
Danke und Gruß,
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296332
Url: https://administrator.de/contentid/296332
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
ist das ein Layer3 Switch?
Falls nicht, musst du die VLANs natürlich auch auf dem Ubuntu Server.
https://wiki.ubuntu.com/vlan
Dann musst du dem DHCP Server sagen, dass er auf mehreren Interfaces (inkl. VLAN) lauschen soll.
Und dann musst du mehrere Scopes anlegen in der dhcp.conf Datei auf dem Server.
http://serverfault.com/questions/412544/dhcp-server-for-multilple-vlans
Gruß
ist das ein Layer3 Switch?
Falls nicht, musst du die VLANs natürlich auch auf dem Ubuntu Server.
https://wiki.ubuntu.com/vlan
Dann musst du dem DHCP Server sagen, dass er auf mehreren Interfaces (inkl. VLAN) lauschen soll.
/etc/default/isc-dhcp-server
Und dann musst du mehrere Scopes anlegen in der dhcp.conf Datei auf dem Server.
http://serverfault.com/questions/412544/dhcp-server-for-multilple-vlans
Gruß
Ich habe in einigen Beiträgen gelesen das der Port an dem der DHCP Server hängt auch ein Trunk Port sein muss
Das ist natürlich Blödsinn wenn du einen L3 Switch hast. Sowas muss man einzig nur machen wenn es ein reiner L2 Switch ist.Ist ja auch klar, denn ein L2 Switch kann niemals mit Relay Agents konfiguriert werden.
Du hast das in deinem Falle schon ganz richtig gemacht...
Die ToDos sind:
- DHCP Scopes einrichten für alle VLANs. (Du nutzt vermutlich den ISC DHCP Server unter Ubuntu, richtig ?)
- IP Helper Adress, DHCP Forwarder einrichten und zwar auf jedem VLAN. Einzig das VLAN wo der DHCP selber drin ist das darf keinen Forwarder konfiguriert haben.
- Das jedes VLAN am Switch auch eine IP Adresse hat ist klar ist bei dir ja auch der Fall mit den .254er Adressen.
Ein paar Dinge sind allerdings verwirrend wenn nicht fehlerhaft.
Oben steht: Interface intern, address 10.10.0.254, Maske 255.255.240.0
Das bedeutet ein Subnetz mit einem 20 Bit Prefix, Maske 255.255.240.0 und gültigen Host Adressen von 10.10.0.1 bis 10.10.15.254
Die Gateway IP 10.10.0.0 ist natürlich Schwachsinn, das weist du selber vermutlich, denn das ist die Netzwerkadresse !!!
Soweit so gut....(bis auf die Gateway IP !)
Komisch und auch technisch falsch sind dann deine Subnetz Definitionen im DHCP Server, denn diese haben alle 24 Bit Masken die mit der 20 Bit Maske des o.a. Interfaces kollidieren.
Die DHCP Requests der VLANs kommen ja sauber an wie man im T Shark sieht. Das sieht also ganz gut aus.
Der Fehler kann also nur aus deiner falschen und inkonsistenten Subnetzmaske resultieren und dieser Unsinnigen Gateway IP die keine ist sondern einen Netzwerk Adresse.
Hier hast du also Mist gebaut an der Ubuntu Interface Konfig.
Vermutlich hast du hier einen gravierenden Denkfehler gemacht das du angenommen hast du nicmmst eine 20 Bit Maske auf dem Interface und routetst so alle deinen 10er Subnetze auf das Interface.
Ein fataler und grober IP Adress Design Fehler der so natürlich prompt in die Hose geht ! Fakt ist:
- Du brauchst zwingend eine korrekte 24 Bit Maske am Server Interface
- Du brauchst eine statische Route: route add 10.10.0.0 mask 255.255.240.0 gateway 10.10.0.151 auf dem Server !!
- IPv4 Forwarding aktivieren auf dem Server
Änder das und korrigiere deine IP Adressierung so das sie richtig und schlüssig ist, dann klappt das auf Anhieb !
Details zur DHCP Server Konfig in genau so einem VLAN Umfeld mit DHCP Relay kannst du auch hier nachlesen:
Netzwerk Management Server mit Raspberry Pi
Ich muss das Interface doch so gestalten vom Subnetting her das meine einzelnen scopes da "hineinpassen" und da denk ich
Klares NEIN !Genau das ist dein prinzipieller und gravierender Denkfehler. Zeigt dir eigentlich das deine IP Adressierungskenntnisse wenig bis gar nicht vorhanden sind !
Dein Adapter mit der 20 Bit Maske kann doch gar nicht mehr zwischen den Subnetzen unterscheiden ! Denk doch mal nach....
Für den sind alle IP Adressen zwischen 10.10.0.1 und 10.10.15.254 alles Hostadressen also Adressen von Endgeräten. Eine eindeutige Wegefindung die im IP unerlässlich ist, ist für diesen Adapter gar nicht mehr möglich so.
Der "denkt" alle diese Adressen sind direkt an seinem Adapter zu erreichen. Das das Subnetze sind die hinter dem Layer 3 Routing Switch bei dir liegen kann er so durch die falsche Subnetz Maske unmöglich wissen bzw. merken....wie auch ?
Der Server "kennt" diese Subnetze also gar nicht, folglich schlägt auch das DHCP Forwarding fehl weil du den schlimmsten Kardinalsfehler im IP Netz begangen hast und inkonsistente Subnetzmasken konfiguriert hast.
DHCP Server die Subnetmaske auf 255.255.0.0 setze komme ich doch an das selbe Ergebnis, oder?
Ja, ist natürlich der gleiche Blödsinn ! Jetzt inkludiert das die Hostadressen von 10.10.0.1 bis 10.10.255.254, macht die Sache also nur noch schlimmer.Fazit: Passe schlicht und einfach die Maske am Server Interface auf eine 24 Bit Maske an und füge die statische Route auf dem Server hinzu, dann funktioniert dein ganzes, sonst an sich richtiges Design, sofort !
Ein netstat -nr am Server sagt dir dann ob alles richtig ist.