markuswo
Goto Top

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
# 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.
b4d94c81a7e51d421359f22c7105efce
e60ce25ef40e61b76d04fb968f30643a
b659d2af4e9d4b9448684d61fdc96060

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

Content-ID: 296332

Url: https://administrator.de/contentid/296332

Ausgedruckt am: 25.11.2024 um 08:11 Uhr

michi1983
michi1983 16.02.2016 um 08:19:43 Uhr
Goto Top
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.
/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ß
markuswo
markuswo 16.02.2016 um 08:23:32 Uhr
Goto Top
Ja, ist ein Layer3 Switch. Scopes sind auf dem DHCP angelegt, siehe oben.
Der Switch soll sich um die VLAN's selber kümmern, der Ubuntu Server macht nur Gateway/DHCP.
aqui
Lösung aqui 16.02.2016, aktualisiert am 17.02.2016 um 23:30:12 Uhr
Goto Top
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
Beachte bitte auch das es keine 2 Default Gateways gibt an einem Host ! Du musst dich also für eins entscheiden. Sinn macht nur das des externen Interfaces. Das interne lässt du leer.
Ä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
markuswo
markuswo 16.02.2016 um 22:03:31 Uhr
Goto Top
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...

Gut, dachte ich mir auch. Hab ich dann direkt rückgängig gemacht.

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 !)

Natürlich... copy&paste Fehler... glaub ich. Gemeint ist network, Gateway ist ja bereits beim externen Interface angegeben. Hab ich korrigiert.

Du brauchst zwingend eine korrekte 24 Bit Maske am Server Interface

Das steh ich anscheinend irgendwie auf der Leitung, und habe wie du sagst einen prinzipiellen Denkfehler.
Ich muss das Interface doch so gestalten vom Subnetting her das meine einzelnen scopes da "hineinpassen" und da denk ich mir, bei 10.10.1.0, 10.10.2.0 usw... muss doch das "Hauptinterface" im dritten byte Platz haben, also ein 255.255.240.0 subnet?

Jetzt mal ganz doof gefragt. Wenn ich auf dem Interface am DHCP Server die Subnetmaske auf 255.255.0.0 setze komme ich doch an das selbe Ergebnis, oder? Nur ist das Netz dann nicht ein wenig riesig?

Ich brauch manchmal die Lösung einmal vor Augen um das Problem verstehen zu können, kannst du vielleicht mal direkt zu meinen Scopes die richtige interface config posten?
aqui
Lösung aqui 17.02.2016 aktualisiert um 23:30:19 Uhr
Goto Top
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.
markuswo
markuswo 17.02.2016 um 12:34:05 Uhr
Goto Top
Ich glaube ich habe meinen Denkfehler. Durch die vielen verschiedenen Dokus die ich mir durchgelesen habe, u.a mit der Verbindung zum trunkport (was ja falsch ist), blieb glaube ich der Gedanke mit dem Interface. Egal ich will mich ja gar nicht aus der Schuld reden :D...

Ich hatte mich halt noch überhaupt nicht mit der Routingsache auseinandergestetzt an dem Gerät... Aber macht ja sinn. Die Trennung durch den Switch ist ja mehr als eindeutig. Werde das heute Abend mal umsetzen und berichten.
aqui
Lösung aqui 17.02.2016 aktualisiert um 23:34:49 Uhr
Goto Top
Ich hatte mich halt noch überhaupt nicht mit der Routingsache auseinandergestetzt an dem Gerät...
Das merkt man leider.... face-wink
Werde das heute Abend mal umsetzen und berichten.
Wir sind gespannt....
markuswo
markuswo 17.02.2016 um 23:34:14 Uhr
Goto Top
Es läuft, Danke aqui!

root@gateway:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# 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.255.0
    network 10.10.0.0
    broadcast 10.10.0.255

# Statische Route für multi DHCP
up route add -net 10.10.0.0/20 gw 10.10.0.151 dev intern

Jetzt muss ich das so weit vorbereiten dass ich das auf dem Produktivsystem in einer Nacht umstelle :D :D
aqui
aqui 23.02.2016 um 11:01:06 Uhr
Goto Top
Es läuft, Danke aqui!
Hört sich gut an ! Sollte aber auch wenn man IP technisch alles richtig macht face-big-smile