DHCP Server Konfiguration mit 2 Gateways

  • Hi!

    Hab folgendes Problem: Ich will aus 3 PCs ein Testnetz machen. Die äußeren PCs haben jeweils eine Netzwerkkarte, der mittlere hat 2 und dient als Router und DHCP Server.

    Nun will ich folgendes tun: Der mittlere PC dient mit den beiden Netzwerkkarten jeweils als Standardgateway für die beiden äußeren PCs. Sagen wir mal die eine Netzwerkkarte bekommt 192.168.0.1 und die andere 192.168.0.2 mit Netzmaske 255.255.255.0. Nun soll folgendes mit DHCP passieren:

    Der DHCP Server weist den Clients dynamisch eine IP Adresse im Subnetz mit der Netzmaske 255.255.254.0 zu. Dabei ist es aber wesentlich, daß die PCs auch jeweils das richtige Standardgateway bekommen, also die Netzwerkkarte, an der sie mittels ausgekreuztem Kabel dranhängen.

    D.h. es macht sehr wohl einen Unterschied, ob der linke PC/Client vom DHCP auch wirklich "das eigene Gateway" bekommt, weil sonst nichts geht.

    Im Netz habe ich hier (http://www.hughesjr.com/content/view/33/2/Site_News) eine durchaus brauchbare Hilfe gefunden. Nur das geht für jeweils einen der beiden PCs/Clients gut, wenn ich den anderen fix einrichte. Also z.B. folgendes habe

    subnet 192.168.0.0 netmask 255.255.254.0 {
    option routers 192.168.0.1; #Default Gateway
    option subnet-mask 255.255.254.0;
    option domain-name "home1.local";
    range dynamic-bootp 192.168.0.4 192.168.0.4; #DHCP Range to assign
    }

    Somit bekommt der eine PC/Client sein Gateway und dynamisch die IP.
    Eigentlich wäre jetzt nun folgendes notwendig

    subnet 192.168.0.0 netmask 255.255.254.0 {
    option routers 192.168.0.2; #Default Gateway
    option subnet-mask 255.255.254.0;
    option domain-name "home2.local";
    range dynamic-bootp 192.168.0.3 192.168.0.3; #DHCP Range to assign
    }

    aber das kollidiert wegen der gleichen netmask und dem gleichen Subnet. :ahhh:

    Aber wie kann ich garantieren, daß jeder Client auch wirklich das Gateway bekommt, an dem er dranhängt, weil ja obiges in der "doppelten Form" nicht geht? Wie müßte das DHCP statement aussehen, wenn ich nun z.B. folgendes will:

    192.168.0.4/255.255.254.0 Gateway 192.168.0.2
    192.168.0.3/255.255.254.0 Gateway 192.168.0.1

    die Gateways bzw. der DHCP Server befinden sich im Subnet mit mask 255.255.255.0.

    Wie gesagt für einen alleine klappts, wie geht das aber für beide nach obiger Variante/Zuweisung/Kombination. :confused:
    Irgendwie hab ich schön langsam das Gefühl, es geht garnicht! Außer ich steck jeden in ein anderes Subnet, aber dann können die miteinander nicht kommunizieren auf MAC Ebene (also ohne IP_Forwarding).

    Kennt wer von Euch dieses Problem und hats schon mal gelöst? Wenn ja dann wär ich für die Lösung sehr dankbar! :D

    Stephan.

  • Sorry .. also von vorne und schön langsam :)

    Erstens .. in einem Subnet kann "normalerweise" nur ein DHCP Server aktiv sein.

    Was letztendlich aber unklar ist, was genau sollen deine Clients (=äußeren PC's) erhalten?
    Ich nehme doch mal an, dass jeder eine IP samt Subnetmask und das Gateway (192.168.0.1 bzw. die IP des mittleren Rechners) erhalten soll, richtig?

    Wenn ja, dann versteh ich nicht, was du vorhast?!

    Der mittlere Rechner ist dein Gateway und anscheinend auch DHCP Server. Jeder Client der sich vom DHCP Server eine Lease holt, bekommt IP mit gleichen Subnet und gleichem Gateway.

    LG

  • also was ich machen will ist folgendes:
    der linke Client hängt am einen Gateway (192.168.0.1/255.255.255.0) und der rechte Client hängt am anderen Gateway (192.168.0.2/255.255.255.0).
    Bei den Gateways handelt es sich um die zwei Netzkarten des mittleren.

    Nun will ich die fixe Einstellung durch eine "dynamische" ersetzen. Ich habe nämlich bis jetzt das ganze fix eingestellt gehabt (linker Client 192.168.0.3/255.255.254.0 Gateway 192.168.0.1 und rechter Client 192.168.0.2/255.255.254.0 Gateway 192.168.0.2).

    Das IP_Forwarding hab ich durch ein Tool ersetzt, das mir das gleiche macht, mit ein paar weiteren Zusatzfunktionen, allerdings auf MAC Layer. Wenn ich die Clients auch auf 255.255.255.0 setze, geht nichts. Wenn ich für die Clients 255.255.254.0 einstelle, dann klappts anstandslos.

    Daher versuch ich jetzt mit dem DHCP die "Konfiguration" für die Clients mit 192.168.0.3/255.255.254.0/192.168.0.1 und 192.168.0.4/255.255.254.0/192.168.0.2 zu erreichen (welcher von den Clients dann die 0.3 und 0.4 bekommt, ist eigentlich egal, solange der linke immer das Gateway mit 0.1 hat und der rechte mit 0.2 - siehe fixe Werte).

    Mein Tool arbeitet aber nur auf MAC layer, d.h. ich muß dafür sorgen, daß die Clients eine andere Subnetmask haben, als der mittlere (das ist bei IP_forwarding nicht notwendig, aber wie gesagt mit meinem Tool gehts nicht anders, da muß ich außen eine andere Netmask setzen, damits funktioniert. Das habe ich bei der fixen Einstellung schon so rausgefunden).

    Also kurz zusammengefaßt: Ich will die feste Einstellung durch eine Dynamische ersetzen, wobei der linke Client xxx.xxx.xxx.xxx/255.255.254.0/192.168.0.1 und der rechte Client xxx.xxx.xxx.xxx/255.255.254.0/192.168.0.2 haben soll. xxx usw. steht für eine beliebige IP Adresse. Und ich frag mich nun eben, wie ich das in eine "DHCP Regel" bringen kann, eben daß der linke sein GW bekommt und der rechte detto und das ganze nicht überkreuzt!

    Stephan.

  • Ich nehme an, daß du unter Linux arbeitest. Zumindest bei Windows gibt es Möglichkeiten solche Probleme zu lösen. Daher versuch mal etwas bzgl. "user/vendor classes" zu eruieren. Im speziellen dürft user classes eher was passendes sein.

    Worum gehts dabei? ... Clientseitig müssen den einzelnen MAC's user classes gesetzt werden (unter WIN -> ipconfig /setclassid). Zusätzlich muß natürlich am DHCP Server solche user classes definiert werden und anhand dieser Unterscheidung kannst dann verschiedene Werte per Lease verteilen lassen.

    LG

  • Nun, ich hab folgende Situation (eine Mischung aus Linux/CentOS und WinXP)

    xxx steht für beliebige Werte, alles andere ist fix bzw. muß bei den Clients so sein, weils sonst nicht geht (der Server dient in gewisser Weise als Router und "eigenes" Gateway)

    Client 1 xxx.xxx.xxx.xxx/255.255.254.0/192.168.0.1 Win XP
    //\\
    ||||
    \\//
    Gateway1/Server 192.168.0.1/255.255.255.0 Linux/CentOS
    ----------------
    Gateway2/Server 192.168.0.2/255.255.255.0 Linux/CentOS
    //\\
    ||||
    \\//
    Client 2 xxx.xxx.xxx.xxx/255.255.254.0/192.168.0.2 WinXP

    ---- kennzeichnet, wo mein Tool ansetzt, also das IP_Forwading nachbildet und mit weiteren Funktionen versieht. Daten sollen nun von Client 1 über die beiden Gateways und mein Tool an Client 2 gehen und wieder retour.

    Die user/vendor classes sind meiner Info nach ja nur für einen DHCP Server unter Windows notwendig, oder irr ich mich da??

    So wie ich mein Problem einschätze muß ich versuchen, die fixe Einstellung, mit der es ja geht, durch eine dynamische zu ersetzen, in welcher die Gateways gemäß Verkabelung korrekt den Clients zugewiesen werden. Die IP Adresse ist beliebig, nur müssen beide Clients im gleichen Subnet sein, nur ich hab keine Idee, wie ich 2 Gateways in einunddemselben Subnet definieren soll geschweige denn, ob das überhaupt geht. Noch dazu, wie ich das hinbringe, daß der Linke immer das 0.1-er Gateway bekommt und der rechte immer das 0.2-er.

    Mein Ziel dabei ist, daß ich eine x-beliebige Maschine als Client anhängen kann, auf der ich keine Änderung vornehmen muß. Die sich also vom DHCP Server die Daten holt, das korrekte Gateway zugewiesen bekommt usw.
    Und da es ja eben mit den fixen Werten problemlos ging, denk ich mir, daß das nicht so schwer sein kann. Wenn ich die Gateways in der Regel weglasse, dann ists ja simpel, aber ohne Gateways geht halt nichts. Und schön langsam glaub ich, daß man da nicht mit zwei Gateways arbeiten kann schon garnicht, wenn die eine fixe Zuordnung zum jeweiligen Client haben, weil das ja dann den Sinn von DHCP ad absurdum führen würde.

    Lg,
    Stephan.

  • Oke andersrum gefragt: da Gateway1 und Gateway2 der ein und derselbe Rechner ist, wozu machst du das so kompliziert? Reicht es nicht aus, wenn es nur ein Gateway gibt? Immerhin verwendest du sowieso nur ein Subnet für die Clients.

    BTW: Clients und Gateway sollten eigentlich im gleichen Subnet liegen, denn alles außerhalb eines Subnet muß geroutet werden.

  • nun, hab zwei Gateways, weil ich nicht will, daß ohne mein Tool eine Verbindung zwischen den Clients besteht, die an je einer eth und damit auch an einem eigenen Gateway hängen. Also sozusagen wie ohne IP_forwarding. Ich greife nämlich die Pakete von der einen eth Karte ab, und schick sie mit meinem Tool nach diveresen "Spielereien" an die andere eth Karte. Und wie gesagt, das funktioniert auch wenn ich es mit fixer Adressvergabe mache. Wenn mein Tool nicht aktiv ist, finden sich die beiden Clients nicht, ist es aktiv, dann gehts. Kann sonst ja nicht die Pakete abgreifen und weiterverarbeiten! Da streikt ja sonst mein Tool, wenn ich von der gleichen eth Karte abgreife und retourschicke, da generier ich mir einen Loop, weil scheinbar pausenlos neue Pakete reinkommen! Daher blieb mir nichts anderes übrig.

    Und wegen Client und Gateway im gleichen Subnet: Auch das hab ich schon mal versucht, nur dann geht garnichts mehr, weil wie gesagt das Tool auf MAC Layer arbeitet. Daher die unterschiedlichen Subnets, mit denen es auch bei fixen Einstellungen funktioniert. Deshalb bekommen ja auch die Clients genau das Gateway zugewiesen, wo sies reinschicken sollen.

    Vielleicht hab ich mir mit der Lösung des Tools was verbaut oder es unnötig verkomplizhiert. Aber wenn ich Pakete abgreifen will und die dann bearbeiten und danach weiterschicken, dann brauch ich nun mal zwei eths und folglich muß ich auch unterscheiden können, welche Daten von wo kommen und mir vorallem keinen Loop generieren. Oder geht das ganze am Ende doch einfacher und nur auf einer eth und ohne Loop?

  • Gut, wenn du nicht willst, daß zw. deinen Clients eine Verbindung ohne deinem Tool besteht, wieso machst dann eben nicht verschiedene Subnetze?

    Am Server legst DHCP für 2 versch. Subnetze fest. Bin mir nicht ganz sicher, ob man es so getrennt definieren kann, aber eigentlich sollte man für jeden DHCP Range festlegen können (siehe dazu deinen Link beim deinem ersten Post), auf welchem Interface bzgl. DHCP Request gelauscht werden soll, womit du dann dein Problem bzgl. Subnetze gelöst haben solltest.

    LG

  • Richtig. 2 NICs = 2 IPs am Server. Du legst in der Konfiguration fest, auf welcher NIC DHCP Request angenommen werden. Hier sollte eben hoffentlich die Möglichkeit bestehen, aufgrund der Unterscheid auf welcher NIC DHCP Requests kommen, dementsprechend die angepaßten Leases zu vergeben.

  • Also soweit ich das verstanden hab hast du 2 NICs an deinem router wo jeweils ein Client dranhängt. Auf deinem Server läuft ein tool dass auf Layer 2 arbeitet.

    Ich versteh nicht wirklich warum du beide clients in ein Netz zwängen willst wennst eh beide auf jewieils einer eigenen NIC hängen hast und somit zwischen den Clients sowieso keine Layer 2 Verbindung mehr möglich ist.

    Ausser natürlich du konfigurierst deine Maschine die Router spielen soll so das broadcasts der einen NIC wieder auf der anderen hinausgeschmissen werden, was natürlich komisch wär, weil da könntest gleich ein Layer 2 device (switch/hub) hinstellen.

    Also wenn ich alles richtig verstanden hab ;), könntest für jede NIC ein eigenes Netz machen und somit ein eigenes gateway in der dhcp config für jedes netz vergeben.

    Du hast trotzdem dieselbe Layer 2 connection zwischen einem Client und dem Router als wenn du beide Clients in ein subnetz zwängst.

    MAC ist Layer 2 und hat ja an und fürsich nix mit Layer 3 (IP) zu tun ...


    die config würd dann so ausschauen:


    falls du wirklich bootp verwendest wie bei deiner config angegeben must du auch noch einen hosteintrag angeben, aber mehr dazu -> man dhcpd.conf

    Hoffe ich konnte helfen :thumb:

  • danke für den Tip! Konnte ihn leider noch nicht ausprobieren, da ich mir leider durch einen Systemabsturz der Maschine, auf der der DHCP Server und mein Tool läuft, ein neues sonderbares Problem geschaffen habe und zwar:

    Ich pinge von Client A (linker Client) die Netzwerkkarte seines Gateways (also jene, mit der er verkabelt ist) an. Geht. Dann pinge ich die Netzwerkkarte an, an welcher der andere Client mit dem Kabel dranhängt. Geht auch. Nun versuch ich von Client B (rechter Client) das gleiche zu machen. Das Resultat ist aber nicht wie erwartet oder erhofft! Der request ans Gateway, also wenn ich die Karte pinge, an der er hängt, geht zwar hin und raus, aber es kommt keine Antwort retour. Also sie kommt zwar dort an aber es kommt nichts retour. Wenn ich nun die andere Karte pingen will (also das Gateway von Client A) dann kommen dort nur ARP messages an, wo die Adresse zu finden ist.
    Und nun kommt das sonderbare: Ich hab mal probeweise die Netzwerkkarte abgedreht, an der Client A hängt. Dann hab ich von Client B aus versucht das eigene Gateway und damit auch die Netzwerkkarte zu pingen. Und siehe da es geht. Na gut, die Gatewaykarte von A wieder eingeschalten und auch die gepingt und siehe da, auch die geht.

    Da dachte ich mir dann noch, es hat sich halt was gespießt und nun gehts wieder. Denkste. Jetzt hab ich nämlich plötzlich das gleiche Problem bei Client A, was ich vor dieser "Procedur" bei Client B hatte. Und das noch sonderbarere ist, wenn ich die "Procedur" erneut wiederhole, dann gehts wieder von A aus aber nicht mehr von B. Und dieses Spielchen könnte ich beliebig lange fortsetzen.
    Nur frag ich mich: Was hats da??!! An der Config kanns ja nicht liegen, weil dann dürfts ja nie gehen. Hab irgendwie das dumme Gefühl, daß es mir gestern beim Crash da was beschädigt oder zerschossen hat. :omg:

    Hat irgendwer von Euch eine Idee, was das sein könnte? DHCP Server war zu dem Zeitpunkt gestern aktiv, wie es gecrashed ist. Den hab ich aber nun mal abgedreht und die IP und das Subnet fix eingegeben. Also daran kanns nicht liegen, weils mit den Daten ja vorher anstandlos gegangen ist.

    Wär für jeden Ratschlag dankbar!

    Lg,
    Stephan.

  • hab die config von max-rayman ausprobiert, aber wenn ich die subnetmask bei den Clients und bei den zwei Serverkarten gleich setze, dann bekomm ich:

    Code
    lease 192.168.0.3 no subnet

    und das insgesamt 7 mal und daß eth0 und eth1 das selbe subnet und das selbe shared net teilen. Und der Start schlägt fehl.

    Setze ich die Netzkarten des Servers aber auf netmask 255.255.255.0 und die der Clients auf 255.255.254.0 dann wird auch das mit einer Fehlermeldung quitiert.

    Sollte das "linke" Subnet nicht eine andere MAC Adresse haben wie das "rechte"??

  • Sorry, aber ich versteh wieder mal nicht ganz was du gemacht hast :confused:.

    Zitat


    und das insgesamt 7 mal und daß eth0 und eth1 das selbe subnet und das selbe shared net teilen


    was meinst du mit shared net ?

    Zitat


    Setze ich die Netzkarten des Servers aber auf netmask 255.255.255.0 und die der Clients auf 255.255.254.0 dann wird auch das mit einer Fehlermeldung quitiert.


    Du musst natürlich die statische NIC des Servers mit demselben Subnet und einer IP aus dem Netz versehen dass du per dhcp verteilst, da ansonsten die Broadcast und Netzwerkadresse nicht zusammenpassen (wobei letztere nur fürs routing interessant ist)
    Die statische IP die du für die Server Karte verwendest darf nicht in deiner dhcp range sein sonst gibts ein Problem wenn diese IP auch auf einen Client zugewiesen wird.

    Zitat


    Sollte das "linke" Subnet nicht eine andere MAC Adresse haben wie das "rechte"??


    Wie gesagt MAC ist Layer 2 und hat nichts mit Netzen von Layer 3 zu tun.


    Am besten ist du postest deine dhcpd.conf und das was ifconfig ausgibt, vielleicht kann man dann den Fehler ergründen ;)

  • die im vorigen Posting von mir angegebenen Meldungen sind die Fehlermeldungen, die ich bekommen habe.

    Hier also nun meine dhcpd.conf und das ifconfig

    dhcpd.conf



    und der output von ifconfig



    Ist da irgendetwas auffälliges zu finden? Wüßte nämlich nicht, warums nicht gehen sollte.
    Hab das auch mit 255.255.255.0 überall versucht, da hat es sich geweigert hochzufahren, den DHCP Server mein ich. Hab dann nur einen Hinweis bekommen, daß die Subnetmask nicht paßt (will scheinbar nicht zweimal die gleiche haben).

  • mein Problem hat sich erledigt. Ich hab es jetzt auch ohne Gateways hingebracht. Damit ists eine ganz einfach DHCP Regel.
    Es besteht zwar ein Problem, nämlich daß ich auf IP Layer keine Verbindung vom Server zu einem Client bekomme zum anderen schon (weil der Server ja auf einer Netzkarte läuft) aber da es auf MAC Layer arbeietet - mein Tool mein ich - spielt das nur eine untergeordnete Rolle. Ist sozusagen ein kleiner Schönheitsfehler :)

    Danke aber trotzdem für alle Tips!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!