Tom's Hardware > Foren > Netzwerke daheim und im Büro, DSL, Internet & Sicherheit > Server > Frage zu DHCP-Server - mehr Clients als IP-Adressen?

Frage zu DHCP-Server - mehr Clients als IP-Adressen?

Forum Netzwerke daheim und im Büro, DSL, Internet & Sicherheit : Server - Frage zu DHCP-Server - mehr Clients als IP-Adressen?

Tom's Hardware: 1,4 Mio. Mitglieder aus 6 verschiedenen Ländern beantworten alle Ihre Fragen über Computer-Technik und IT. Um Hilfe zu erhalten, registrieren Sie sich kostenlos!
Wort:    Username:           
 

Hallo leute,

ich beschäftige mich gerade mit dem DHCP-Server. Mir ist jetzt nur eine Sache etwas unklar und zwar was passiert wenn in meinem Netz mehr Clients verfügbar sind als IP-Adressen (z.b. mit nem Netz von 2000 Rechnern) ? Eine lösung wäre natürlich einen zweiten dhcp aufzustellen und den mit ner anderen IP und Subnetzmaske laufen zu lassen. Aber wie sieht das denn dann mit der Erreichbarkeit des anderen "netzes" aus?

Beispiel:

Client Nr.1 bekommt die letzte freie IP auf DHCP1---> IP 172.168.198.244;Subnetmask 255.255.255.1. So jetzt stecke ich client Nr.2 ans netz der sendet einen broadcast und DHCP2 meldet sich dieser vergibt ihm dann die IP 172.168.199.244; Subnetzmaske 255.255.254.1.

So normalerweise müsste dies ja so gehen aber wie siehts denn dann mit der erreichbarkeit unter den beiden rechnern aus?? wenn jetzt client 1 etwas frei gibt findet client 1 unter der 172.168.198.244 doch gar nix weil er doch in einem anderen subnetz liegt das wäre doch für große firmen ziemlich dämlich oder?

Könnte mir jemand kurz erklären wie DHCPs (z.b. 2000clients) in größeren Netzen laufen?


Nachricht bearbeitet von Trinity888 am 06.11.2009 um 14:37:44
Anzeigen

Kein Mensch packt 2000 Rechner in ein Subnetz ;)
Du kannst das Subnetz einfach so groß machen, dass 2046 Rechner reinpassen.
Das wär dann die Subnetzmaske /21. D.h. 255.255.248.0.
D.h. es wären 2 hoch 11 Adressen verfügbar für die Hosts. 1 Adresse bekommt das Netz. 1 Adresse der Broadcast. Bleiben 2046 verfügbare Adressen.

Die Subnetzmaske 255.255.255.1 gibt es nicht.

In der Regel macht man das dann mit verschiedenen Subnetzen. Wie du schon richtig vermutet hast. Dafür brauch man dann einen Router, damit die Netze untereinander kommunizieren können.
Oder einen Layer 3 Switch. Ich rede dann von Geräten, die du niemals im Heimbereich finden wirst.
Das was du zuhause an deinem DSL Anschluss zu stehen hast ist streng genommen kein Router. Es ist ein Multifunktionsgerät. Router+Firewall+Switch+WLAN AP+ usw. usw.

Antworten slaughter_2

Zitat :

Die Subnetzmaske 255.255.255.1 gibt es nicht.



Na ja, man kann so etwas schon machen, auch wenn es reichlich hirnverbrannt ist.
Es hieße nämlich dann, daß in dem Netz 172.168.199.xxx die IPs der Rechner in zwei Subnetze aufgeteilt werden, wobei das eine Subnetz aus allen Rechnern mit geradem xxx und das andere Subnetz aus den Rechnern mit ungeradem xxx besteht.
Ein Router nimmt nämlich für die Entscheidung, an welches Interface ein bestimmtes Paket gesendet werden soll, die Zieladresse des Pakets und macht eine bitweise UND-Verknüpfung mit der Netzmaske.
255.255.255.1 = 11111111.11111111.11111111.00000001
Das führt dann dazu, daß das Paket an dem Rechner ankommt, auf den dieses Ziel nach dem Drüberlegen dieser Maske zutrifft.

Wie die Maske aussieht ist eigentlich egal, auch wenn man üblicherweise die Bitmaske aus gewissen Gründen immer von hinten mit Nullen und vorn mit Einsen auffüllt.
So erklärt sich nämlich auch die Kurzschreibweise (=Anzahl der Einsen):

255.255.255.192 = /26
255.255.255.128 = /25
255.255.255.0 = /24
255.255.254.0 = /23
255.255.252.0 = /22
255.255.248.0 = /21
usw.

Das Aufteilen eines Netzes in weitere Subnetze geschieht dann einfach durch den Übergang zu einer höheren Nummer in der Kurzschreibweise "/nn".

Wenn man die Maske aber irgendwie vogelwild vergibt, dann verliert man dabei schnell die Übersicht, welches Bit jetzt wo wegzulassen ist.
Damit hat man auch leicht noch jeden Netzwerkadmin ziemlich schnell zur Weißglut getrieben. ;)

Antworten Binnenfischer

Zitat :

Wie die Maske aussieht ist eigentlich egal, auch wenn man üblicherweise die Bitmaske aus gewissen Gründen immer von hinten mit Nullen und vorn mit Einsen auffüllt.


Nein ist es nicht. Die Maske muss von links nach rechts aufgefüllt werden.
Die Schritte für die Netze sind immer
.0
.128
.192
.224
.240
.248
.252
.254
.255

 

Probier es aus. Versuch mal bei deinem Rechner die Subnetzmaske 255.255.255.1 einzugeben.


Nachricht bearbeitet von slaughter_2 am 06.11.2009 um 14:23:21
Antworten slaughter_2

Ja, okay. Windows fängt die Eingabe einer solch sinnlosen Netzmaske natürlich mittlerweile mit einer Fehlermeldung ab.
http://i375.photobucket.com/albums/oo197/Binnenfischer/SubnetMaskInvalid.jpg

Aber zumindest die alte RFC 950 schrieb das so direkt nicht vor.
Auch wenn das heute verwendete Schema mit dem Auffüllen der Einsen von links selbst damals Anfang der 80er Jahre schon so empfohlen wurde.
Es stand da aber nur als "recommended".
http://tools.ietf.org/html/rfc950

Wie es trotzdem funktioniert (funktionierte?), ist ja im Appendix II (Examples) unter dem Punkt
3. A Class C Network Case (illustrating non-contiguous subnet bits)
erläutert.

Möglich war das Durcheinanderwürfeln der Bits also durchaus.
http://www.tcpipguide.com/free/t_I [...] ions-4.htm

Ich glaube mich auch zu erinnern, wie wir noch Anfang der Neunziger so unsere Späßchen damit getrieben haben.
Vielleicht probiere ich es nochmal unter Linux aus.
Es interessiert mich nun doch, ob es das auch heute noch hinzubekommen ist.

Antworten Binnenfischer

Normalerweise wird dir der IP-Stack das um die Ohren klatschen.

------------------------------ A: Lade mal das Internet runter und brenns mir auf CD!
B: Passt doch garnich!
A: Mmmmh... Dann lass den Porn weg!
Antworten fffcmad

Hi,

Zitat :


Kein Mensch packt 2000 Rechner in ein Subnetz



So ganz hirnverbrannt ist das gar nicht. Unis machen das beispielsweise gerne fuer ihre WLAN-Zugaenge - da tauchen dann auch mal /20er Netzmasken auf. Auch fuer Poolrechner wird es gemacht... natuerlich in einem geswitchten Netz, sonst wuerde das nicht wirklich gut gehen. Ich bin z.B. gerade auf so einem Ding mit einer /20er Netzmaske eingeloggt. Das sind dann 2^12-3=4093 Rechner. -3, weil man eine Adresse fuer das Gateway braucht und die Adressen mit hinten alles 0 und alles 1 wegfallen, da fuer Netzadresse bzw. Broadcast verwendet (im /24er Netz waeren das .0 und .255).

Auch einen DHCP-Server kann man so betreiben... allerdings habe ich den DHCP-Client meines ab und an in so einem Netz laufenden Linux-Notebooks so umkonfigurieren muessen, dass er etwas laenger auf die Adresse wartet, sonst klappt das nicht immer.

Fuer die, die mit den Erklaerungen der Vorposter und /20er Masken nichts anfangen koennen... das Netz 192.168.0.0/20 geht von 192.168.0.1 (erste nutzbare Adresse) bis 192.168.15.254 (letzte nutzbare Adresse). Logischerweise sind ZWISCHENDRIN auch Adresse mit 0 oder 255 nutzbar, die das in einem /24er Netz nicht waeren.

Privat betreibe ich meine WLANs uebrigens mit einer /27er Maske... 29 nutzbare Adressen reichen mir auch. Die von den meisten verwendete /24er Konfiguration ist im Grunde kompletter Overkill.

Nachtrag: Zu deiner eigentlichen Frage, wie man das macht, dass sich die Rechner unterschiedlicher Netze erreichen koennen - da ist die Antwort natuerlich ROUTING. Es muss einen Rechner oder ein Geraet ("Router" ) geben, das zwei Interfaces hat, die je eine Adresse aus den beiden Netzen haben und auch entsprechend angeschlossen sind. Lies im Netz mal ueber IP-Routing, da wirst du erschlagen von den Treffern. Grundgedanke ist, dass ein Rechner Pakete fuer das andere Netz eben an den Router schickt und der sie dann weiterleitet. Ist prinzipiell das gleiche, was ein DSL-Router tut (zwischen deinem Netz und dem Acessnetz des Providers), nur das der zusaetzlich noch Adressuebersetzung (NAT) macht.

Viele Gruesse,

Jan


Nachricht bearbeitet von JanR am 06.11.2009 um 20:33:35
Antworten JanR

Zitat :

So ganz hirnverbrannt ist das gar nicht. Unis machen das beispielsweise gerne fuer ihre WLAN-Zugaenge - da tauchen dann auch mal /20er Netzmasken auf.


Ja natürlich kann man das machen. Aber nicht da wo es auf Sicherheit und Stabilität ankommt. Wenn interessiert denn das WLAN Netz an Unis. Das wird bei uns als DMZ oder Extern behandelt ;-)


Zitat :

nur das der zusaetzlich noch Adressuebersetzung (NAT) macht.

naja eher PAT ;)
Wenn er nur natten würde, könntest nur mit einem Client gleichzeitig z.B. eine Webseite aufrufen.

Ach ja: Wenn man mehrere Subnetze hat braucht man auch nur einen DHCP Server. Die Switche/Router können so konfiguriert werden, dass sie die Broadcasts weiterleiten.

@Binnenfischer:
Ich kann mir nicht vorstellen dass es unter irgendeinem OS funktioniert, dass das IP Protokoll beherrscht.
Kann mich auch nicht erinnern, dass es z.B. im Cisco Kurrikulum erwähnt wird das es mal ging.


Nachricht bearbeitet von slaughter_2 am 06.11.2009 um 21:40:37
Antworten slaughter_2

@JanR:
Das Wörtchen "hirnverbrannt" bezog ich nicht auf die /20er Maske, sondern natürlich auf die komische Maske 255.255.255.1, das war vielleicht etwas mißverständlich.
Mir ist schon klar, daß in größeren Netzen sicher auch Fälle auftreten können, wo eine /20er Maske sinnvoll eingesetzt werden kann.


@fffcmad und @slaughter_2:
Ich sehe ja mittlerweile ein, daß es kein (modernes) OS mehr zuläßt, eine solch blödsinnige Maske überhaupt nur einzugeben.
Es ist ja auch durchaus sinnvoll, diesen Unsinn von vorn herein zu verhindern.

Ich habe es natürlich trotzdem probiert:
Windows 98 SE prüft beispielsweise die Maske bei Eintragen in den Eigenschaften fürs TCP/IP-Protokoll noch nicht ab, die Netzwerkkarte funktioniert dann allerdings trotzdem auch nicht (mit "route print" wird überhaupt nichts passendes angezeigt).

Unter einem SuSE Linux 10.2 64-bit sieht es folgendermaßen aus:
- "route add" macht gar nichts, sondern meldet nur "bogus netmask 255.255.255.1".
- "ifconfig" wirft zwar den Fehler "SIOCSIFNETMASK: Invalid argument"
aus, startet das Netzwerk-Interface aber trotzdem, nimmt dabei allerdings die Standard-Netzmaske /24 an
(Ich habe auch andere ungültige Masken probiert, es wird immer stattdessen /24 verwendet).

Hhmm - irgendwie hatte ich trotzdem im Kopf, daß es eigentlich mal ging. :heink:
Muß ich denn wirklich erst den alten 486er und ein passendes altes OS raussuchen?
Bin gerade etwas verwirrt und zweifle an mir selbst. :pt1cable:
Na ja - ist jetzt auch egal.

Wenn nächste Woche die 5. Jahreszeit wieder losgeht, kann man da ja auch beobachten, daß einige Mitmenschen wieder komische Netzmasken aufsetzen. ;)

@xXx:
Mach es einfach so, wie es weiter oben schon beschrieben steht. Bau für die vielen Rechner kleinere Netze auf.
Nimm einen Router und setze ihn als Verbindungsglied zwischen diese einzelnen Subnetze.
Wie gültige Netzmasken auszusehen haben, denke ich, kam ja auch klar heraus. In dem Punkt waren wir uns ja auch einig.

Antworten Binnenfischer

Hi,

Zitat :


Ach ja: Wenn man mehrere Subnetze hat braucht man auch nur einen DHCP Server. Die Switche/Router können so konfiguriert werden, dass sie die Broadcasts weiterleiten.



Ich hatte nicht vor, den Frager mit Sonderfaellen usw. zu ueberschuetten... das sollte KEINE VL ueber IP-Netze werden, sondern nur Pointer liefern.

Broadcasts weiterleiten ist auch nicht besonders gut... dann besser den DHCP-Server oder einen Proxy auf einen der Router setzen. Ein DHCP-Server kann problemlos mehrere Interfaces versorgen.

Was Linux angeht...

net/ipv4/devinet.c:

Code :
  1. case SIOCSIFNETMASK:    /* Set the netmask for the interface */
  2.                 /*
  3.                 *      The mask we set must be legal.
  4.                 */
  5.                 ret = -EINVAL;
  6.                 if (bad_mask(sin->sin_addr.s_addr, 0))
  7.                         break;



Die angebotene Maske wird also getestet, ob sie eine legale Maske fuer die Adresse 0 ist.

Suchen wir weiter nach bad_mask:

include/linux/inetdevice.h

Code :
  1. static __inline__ int bad_mask(__be32 mask, __be32 addr)
  2. {
  3.         __u32 hmask;
  4.         if (addr & (mask = ~mask))
  5.                 return 1;
  6.         hmask = ntohl(mask);
  7.         if (hmask & (hmask+1))
  8.                 return 1;
  9.         return 0;
  10. }



...und ueberlegen, was passiert, wenn man da mit 0 als Adresse reingeht. Da die Adresse 0 ist, fuehrt das erste bitweise UND auf jeden Fall zu Null, das erste IF schlaegt also nicht zu. Die Zuweisung mask=~mask invertiert die Bits der Maske aber dessen ungeachtet. ntohl koennen wir ignorieren, das macht nur die Hostbyteorder. Spannend ist also die VerUNDung der hmask mit hmask+1. Gehen wir da mit einer normalen Bitmaske rein, so sieht sie normal 111...110...0 aus. Durch mask = ~mask ist daraus 0..01...1 geworden. Addiert man da 1 drauf, hat man 00...010.000, wobei die 1 genau da steht, wo vorher eine Null war. Mit 8 Bit: 00001111 + 1 = 00010000. Verundet man das bitweise mit der invertierten Maske, kommt logischerweise Null raus, das if schlaegt auch nicht zu und wir fliegen mit return 0 raus, also KEINE bad_mask.

Gehen wir mit einer illegalen Maske wie 255.255.255.1 rein, so sieht sie normal so aus: 1...10...01, also invertiert 0..01...10 oder irgendwas anderes, das hinten NICHT 1...1 hat. Addieren wir da 1 drauf, so kommt es NICHT zum Muster 0...010...0, sondern es bleibt hinten mindestens eine 1 stehen an einer Stelle, wo auch die invertierte Maske eine 1 hatte. Ergo: Das return 1 schlaegt zu und wir haben eine bad_mask, die weiter oben zu break fuehrt, was dann letztlich in einem Scheitern der entsprechenden Funktion muendet, was wiederum dazu fuehrt, dass unser Programm den Fehler wirft, den Binnenfischer schrieb.

qed :-)

Ziemlich clever und vor allem effizient programmiert... C-Code vom feinsten :-)

Viele Gruesse,

Jan


Nachricht bearbeitet von JanR am 06.11.2009 um 23:26:18
Antworten JanR

Zitat :

Broadcasts weiterleiten ist auch nicht besonders gut...


warum nicht? Es werden nur die DHCP Broadcasts weitergeleitet.

Antworten slaughter_2

Hi,

Zitat :


warum nicht? Es werden nur die DHCP Broadcasts weitergeleitet.



Je nach Netzgroesse, Anzahl der Clients und Gueltigkeitsdauer der Leases kann das einiges an Traffic ausmachen. Wenn das Netz nicht all zu gross ist, kann man es natuerlich machen, meist hat man dann aber auch je Teilnetz eine als DHCP-Server geeignete Maschine, die das direkt erledigen kann.

Viele Gruesse,

Jan


Nachricht bearbeitet von JanR am 07.11.2009 um 12:40:26
Antworten JanR

Naja soviel an Traffic ist das nicht.
Der DHCP steht ja in der Regel in einem separaten Netz, d.h. es gibt kein Flaschenhals.
Und vernünftige Layer 3 Switche haben auch genug Backbone Kapazität. Da treten i.d.R. keine Engpässe auf ;)

Antworten slaughter_2
Tom's Hardware > Foren > Netzwerke daheim und im Büro, DSL, Internet & Sicherheit > Server > Frage zu DHCP-Server - mehr Clients als IP-Adressen?
Zu:

Es gibt 86 identifizierte und nicht identifizierte User. Zur Ansicht der Liste identifizierter User, Hier klicken.

Google Anzeigen
  • Die Community jetzt fragen
  • Veröffentlichen
Anzeige
Die folgenden Community-Mitglieder erhielten Auszeichnungen!
Wir gratulieren:
  • 01:00 Eminenz hat das Abzeichen Niedergelassen erhalten
  • 01:00 gefahrensucher hat das Abzeichen Niedergelassen erhalten
  • 01:00 gefahrensucher hat das Abzeichen Leser erhalten
  • 13:29 gscheitmeier hat das Abzeichen Kolumnist erhalten
  • 01:00 JustinJoafeyz hat das Abzeichen Leser erhalten
  • 01:00 xelage hat das Abzeichen Leser erhalten
  • 01:00 iopodx hat das Abzeichen Leser erhalten
  • 01:00 _anders hat das Abzeichen Niedergelassen erhalten
  • 01:00 catdeelay hat das Abzeichen Leser erhalten
  • 01:00 purple_haze hat das Abzeichen Leser erhalten
Anzeigen