DHCP mit mehreren VLANs, und einem Subnet

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Knogle
Beiträge: 450
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: GNU General Public License

DHCP mit mehreren VLANs, und einem Subnet

Beitrag von Knogle » 25.11.2021 11:04:56

Hallo Freunde.
Aktuell stehe ich vor einer kleinen Herausforderung, vielleicht kennt jemand sich ja in der Thematik ein wenig aus :)

Folgende Ausgangssituation. Wir haben ein Netzwerk in welchem sich ca. 60000 Clients auf einigen VLANs verteilt befinden, VLAN 405-480, und VLAN 700-750.
Diese Clients sollen über einen DHCP Server aus dem 10.20.0.0/16er Netz bedient werden.
Da dachte ich mir, das ist doch bestimmt kein Problem, aber nun stoße ich ein bisschen an die Grenze, den Arbeitsaufwand dafür einzugrenzen.
Ist es weiterhin möglich, beispielsweise mit isc-dhcp-server, ein DHCP Leases für ein und das gleiche Subnet über mehrere Interfaces, auszugeben?
Gibt es eine "schnellere" Möglichkeit, so eine große Menge an VLAN Subinterfaces zu erstellen unter Debian (Vielleicht Bash Scripts?), hat da jemand eventuell einen Rat zu?

Ich freue mich darauf von euch zu hören!

Benutzeravatar
bluestar
Beiträge: 1795
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DHCP mit mehreren VLANs, und einem Subnet

Beitrag von bluestar » 25.11.2021 12:35:08

Knogle hat geschrieben: ↑ zum Beitrag ↑
25.11.2021 11:04:56
Folgende Ausgangssituation. Wir haben ein Netzwerk in welchem sich ca. 60000 Clients auf einigen VLANs verteilt befinden, VLAN 405-480, und VLAN 700-750.
Das wären 125 VLANs, allerdings solltest du bei der Netzgröße deutlich mehr an Infos bereitstellen um hilfreiche Unterstützung zu erhalten. z.B.: Die Frage nach der Konnektivität wäre wichtig, liegen die VLANs direkt am DHCP Server an (also 125 Netzwerkschnittstellen) oder habt ihr Switches im Einsatz die DHCP-Requests an den DHCP Server weiterleiten?
Knogle hat geschrieben: ↑ zum Beitrag ↑
25.11.2021 11:04:56
Gibt es eine "schnellere" Möglichkeit, so eine große Menge an VLAN Subinterfaces zu erstellen unter Debian (Vielleicht Bash Scripts?), hat da jemand eventuell einen Rat zu?
Ich würde ein Script schreiben und anhand eines Templates die 125 VLAN eigenen Ranges definieren, wenn du die Konfiguration in Dateien belassen willst oder du verwendest beispielsweise LDAP als Backend für deinen DHCP Server. Es hängt halt auch davon ab, ob du einheitliche VLANs hast oder ob du auch noch feste IP<->MAC Zuordnungen berücksichtigen musst.

Knogle
Beiträge: 450
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: GNU General Public License

Re: DHCP mit mehreren VLANs, und einem Subnet

Beitrag von Knogle » 25.11.2021 12:52:22

Herzlichen Dank!

Ja genau, also die 125 VLANs liegen als Trunk am Server an, eine DHCP Relay Variante wäre vermutlich einfacher im Handling gewesen, ist aber aktuell aufgrund von Lizenzkosten in Höhe von 25000 Euro für dieses Feature am Router nicht möglich.
Daher müsste ich demnach wohl 125 Subinterfaces anlegen in Debian, was natürlich initial ziemliche Anstrengung bedeutet. Bzw. vermutlich kriege ich das mit einem Bash Script mit for-Schleife hin.
Das mit den Templates klingt gut, jedoch kann ich aktuell nicht einschätzen wieviel Clients auf jeweils welchem VLAN liegen. Kann also sein, dass auf einem VLAN 10 Clients sind, und auf einem anderen 30000, daher kann ich da nicht genau die DHCP Ranges abschätzen.
Feste IP oder MAC Zuordnung sind keine vorhanden glücklicherweis.

Benutzeravatar
bluestar
Beiträge: 1795
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: DHCP mit mehreren VLANs, und einem Subnet

Beitrag von bluestar » 25.11.2021 13:05:50

Knogle hat geschrieben: ↑ zum Beitrag ↑
25.11.2021 12:52:22
Das mit den Templates klingt gut, jedoch kann ich aktuell nicht einschätzen wieviel Clients auf jeweils welchem VLAN liegen. Kann also sein, dass auf einem VLAN 10 Clients sind, und auf einem anderen 30000, daher kann ich da nicht genau die DHCP Ranges abschätzen.
Dann zieh doch mal eure Netzwerk-Dokumentation zu Rate, bei der Netzwerkgröße würde ich auch parallel dazu BSI IT Grundschutz mit beachten, nicht das dein DHCP Server am Ende die Netzwerksegmentierung und -sicherheit komplett unterwandert.

Was du bisher so berichtest scheint das Netzwerk-Design da durchaus verbesserungswürdig ;)

Wenn ich mal so den Schnitt 60.000 Clients / 125 VLANS annehme, dann bin komme ich auf 480 Rechner pro VLAN.
In meinen Vorstellungen von einem stabilen Netzwerk würde ich die Anzahl der VLANs verdreifachen um bei /24er Netzen auf unter 75% Nutzung zu kommen, schließlich brauchst du auch noch Kapazitäten für die Zukunft

Knogle
Beiträge: 450
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: GNU General Public License

Re: DHCP mit mehreren VLANs, und einem Subnet

Beitrag von Knogle » 26.11.2021 14:48:44

Herzlichen Dank.

Ja ich habe mal die besprochenen Punkte von dir aufgegriffen, das Design bleibt im Grunde eigentlich unverändert, da das ganze als Übergangslösung für einige Monate agiert. (Ein Provisorium hält bekanntlich länger..) Aber naja.

Ich hatte leider einen kleinen Denkfehler drinnen, es handelt sich um einen /21er Pool für jedes VLAN. Hier mein Bash-Script um die entsprechenden nmcli Kommandos abzusetzen.

Code: Alles auswählen

#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
k=0
for i in {405..431}
  do 
     echo "nmcli con add type vlan con-name vlan-ens37.$i ifname ens37.$i dev ens37 id $i ip4 10.229.$k/21"
     let "k=k+8"
 done
Nun stelle ich mir die Frage, ich möchte als Grundgerüst einen Debian Host aufsetzen, und dann eine VM via Qemu / KVM drauf betreiben welche ich über Cockpit-Machines manage.
Für jedes VLAN Interface muss ich daher noch eine Bridge erstellen, also Bridge405, 406 etc..

Code: Alles auswählen

#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
k=0
for i in {405..431}
  do 
     echo "nmcli con add ifname bridge$i type bridge con-name bridge$i"
     echo "nmcli con add type bridge-slave ifname ens37.$i master bridge$i"
     let "k=k+8"
 done

Wenn ich dann die Interfaces an die VM durchreiche haben die jedoch recht ungünstige Namen wie enp7s0, enp7s1 enp9s0 etc. Gibt es eine Möglichkeit die Interfaces auf dem Guest-System irgendwie sinnvoll zu bennenen beim Einsatz von KVM / Qemu?

Mein Programm zur Erstellung der dhcpd.conf

Code: Alles auswählen

#include <stdio.h>

#define ROUTER_ADDRESS 4

int main() {
  int i,k;

  for (i = 405; i < 431; ++i)
  {
        printf("\nsubnet 10.229.%d.0 netmask 255.255.248.0 {\n",k);
        printf("#       option routers                  10.229.%d.%d;\n",k,ROUTER_ADDRESS);
        printf("        option subnet-mask              255.255.248.0;\n");
        printf("#       option domain-name-servers 10.229.%d.%d;\n",k,ROUTER_ADDRESS);
        printf("        range   10.229.%d.5   10.229.%d.254;\n",k,k+8-1);
        printf("}\n\n");
        k=k+8;

  }
  return 0;
}
Viele Grüße

Antworten