@MandeEs wurde gestern bei dir ein Signaltechniker aufgeboten.
@cablesalat
Dass nach 1-2 Stunden immmer plötzlich der Saft in der Internetverbindung ausgeht, geht in aller Regel mit der Nicht-Verlängerung der Lease für deine IP-Adresse einher. Um die Fehlermöglichkeiten zu eruieren, muss
man sich den Ablauf bei der ganzen DHCP Kommunikation zuerst vor Augen führen.
Es wird vorweggenommen, dass in mehr als 99% aller Fälle clientseitig der Fehler zu finden ist, weshalb diese Verlängerung nicht passiert. Unsere beiden redundanten, gesicherten DHCP-Server für die PC-Clients arbeiten nach dem Internetstandard gemäss RFC 2131. (Genauere Details zur untenstehender
"einfachen" Erklärung über die DHCP-Abläufe findet man z.B unter http://www.ietf.org/rfc (RFC 2131).
Um nachfolgend die Interaktion zwischen PC (Client) und DHCP-Server vereinfacht darzustellen, wurde der "Bootp relay agent" (in unserem Fall ein Bestandteil des Headends, welche die DHCP-Meldungen
der Clients annimmt, vorprüft und an den DHCP-Server weiterleitet und umgekehrt) weggelassen. Nun was passiert nun genau bei der Zuweisung respektive Verlängerung einer IP-Adresse?
Da die ganze Kommunikation auf udp-Basis funktioniert, verbindungslos und nicht mit Fehlererkennung und Korrektur wie bei TCP ausgestattet, muss man eine Seite anweisen, falls eine Interaktion aus welchen Gründen auch immer (z.B. Paket geht verloren durch schlechtes Signalqualität) nicht stattfindet respektive beendet wird, dass sie es immer wieder erneut versucht. Diese Rolle übernimmt immer der Client (PC) und ist ebenfalls nach RFC 2131 definiert. Der DHCP-Server antwortet nur auf Anfragen und nimmt sozusagen eine reaktive Stellung ein, nicht eine aktive.
Zu unterscheiden sind nun die Erstzuweisung der IP-Adresse und die Verlängerung der IP-Adresse. Die Pachtdauer (Lease-Zeit genannt) beträgt je nach Region genau 60 Minuten oder 90 Minuten. Falls keine Verlängerung beantragt wird, wird die (freigewordene) IP-Adresse wieder zum Pool der verfügbaren Ip-Adressen gesetzt.
-Erstzuweisung der IP-Adresse (z.B beim Neubooten des PC's): folgende Interaktionen finden statt:
1.) DHCP-Discover (Von Client initiiert per Broadcast zu DHCP-Server-Port 67, der Client kennt den DHCP-Server ja noch nicht)
2.) DHCP-Offer (DHCP-Antwort auf diesen Broadcast per Unicast oder Broadcast zu Client-Port 68, offeriert IP-Adresse und andere Parameter)
3.) DHCP-Request (Client fragt den DHCP-Server an, die offerierten oder selber gewünschten (beim Renew!)
Parameter dem Client definitiv zuzuweisen)
4.) DHCP-ACK (Bestätigung der vergebenen Konfigurationsparameter (inkl. IP-Adresse) vom DHCP-Server an den Client (zu Port 68))
Die Erneuerung der Lease, welche ebenfalls vom Client initiiert wird, findet definitionsgemäss nach der Hälfte der Leasedauer statt. Machen wir ein konkretes Beispiel. Unter "Ipconfig /all" kann man sehen, wann eine Lease zugewiesen wurde und wie lange sie gültig ist.
Sagen wir mal, dass die IP um 14.00 Uhr angenommen wurde, die Lease um 15.00 Uhr abläuft. Genau um 14.30 Uhr wird der Client versuchen eine Verlängerung der Lease zu erzielen. Im Gegensatz zur Neuzuteilung passieren nun nicht alle obig genannten Interaktionen, da der Client die Angabem über den DHCP-Server und die erhaltenen Parameter kennt. Bei einer Leaseverlängerung (oder auch einem ipconfig /renew) passieren folgende Schritte:
3.) DHCP-Request (Client fragt den DHCP-Server über Port 67 nach, die Lease mit den aktuellen Parametern zu verlängern)
4.) DHCP-ACK (Falls DHCP-Server einverstanden, wird zur Client-IP über Port 68 die Bestätigung mitgeteilt, ansonsten wird ein
DHCP-NAK gesendet)
Falls alles geklappt hat zeigt Ipconfig /all, dass die Lease erst um 15.30 Uhr ablaufen wird. Falls nun bei einem DHCP-Request (beim Renewen) keine Antwort kommt, versucht der Client immer wieder den
DHCP-Server zu erreichen bis zu einer bestimmten Zeit (0.875 X der Leasedauer). Dann versucht der Client
per udp-Broadcast irgendein DHCP-Server zu erreichen mit den aktuellen Parametern. Dies wiederholt sich
bis die Lease ganz abgelaufen ist, teilweise sogar darüber hinaus.
Nun was heisst das konkret für das obige Problem? Weshalb kann zwar am Anfang (Neustart) eine IP-Adresse zugewiesen werden und dann plötzlich nicht mehr verlängert werden? Beim Renewen spielen sehr viele Komponenten mit, bis überhaupt ein sauberer Renew-Request ins Netz gejagt wird (Netzwerkkarte, dessen Treiber, Winsock-Schnittstelle, TCP/IP-Implementation usf.) Um zu bestätigen, dass wirklich ein Renew-Request sauber zum DHCP-Server geschickt wird, kann man nur durch den Einsatz eines lokalen Sniffers (Promiscous-Modus empfohlen) feststellen und analysieren. Ein Auszug kann z.B folgendermassen aussehen:
Frame 44 (355 on wire, 355 captured)
<snip>
Ethernet II
Destination: 00:30:94:05:fa:54 (dclient217-162-XXX-X.hispeed.ch)
Source: 000:90:XX:XX:XX:XX (CLEVO_XX:XX:XX)
Type: IP (0x0800)
Internet Protocol, Src Addr: XXX-XXXXXX (217.162.XXX.XXX), Dst Addr: csrc-cnr1.cablecom.net (62.2.21.10)
<snip>
Time to live: 128
Protocol: UDP (0x11)
Header checksum: 0x137c (correct)
Source: XXX-XXXXXX (217.162.XXX.XXX)
Destination: csrc-cnr1.cablecom.net (62.2.21.10)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Source port: bootpc (68)
Destination port: bootps (67)
Length: 321
Checksum: 0xd164 (correct)
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0xdf73dc60
Seconds elapsed: 0
Broadcast flag: 0x0000
Client IP address: XXX-XXXXXX (217.162.XXX.XXX)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client hardware address: 00:90:XX:XX:XX:XX
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option 53: DHCP Message Type = DHCP Request
Option 61: Client identifier
Hardware type: Ethernet
Client hardware address: 00:90:XX:XX:XX:XX
Option 12: Host Name = "XXX-XXXXXX"
Option 81: Client Fully Qualified Domain Name (19 bytes)
Option 60: Vendor class identifier = "MSFT 5.0"
Option 55: Parameter Request List
1 = Subnet Mask
15 = Domain Name
3 = Router
6 = Domain Name Server
31 = Perform Router Discover
33 = Static Route
43 = Vendor-Specific Information
End Option
Nun ist es bei Windows-System (im Gegensatz zu Linux z.B.) nun mal so, dass eine Software-Firewall in der Regel erst aktiv geladen ist, wenn die Erstzuweisung der IP-Adresse beim Booten bereits passiert ist.
Es kann sehr gut sein, dass beim standardisierten Renew-Versuch (falls überhaupt von Client versucht wird!) die Firewall diese Anfrage oder die Antwort blockt (weil z.B. die entsprechenden Ports nicht geöffnet sind oder der entsprechenden Prozess (z.B services.exe) nicht zugelassen ist mit der Aussenwelt zu kommunzieren). Es gibt auch Fälle, obwohl die Firewall korrekte Regelsettings vorweist, dass diese Kommunikation nicht (immer) funktioniert. Deshalb raten wir dir in deinem Fall zu folgenden Massnahmen:
1.) Deaktivierung des Firewalls (ipconfig /all -> nach Hälfte deiner Lease-dauer nochmals schauen, ob nun
der Renew geklappt hat)
2.) Wenn dies nichts genutzt hat; Deinstallation des Firewalls
3.) TCP/IP neu installieren (welches Betriebssystem hast du?)
4.) Netzwerkkarte komplett neu installieren mit den neuesten Treibern für die D-Link-Netzwerkkarte
unter http://www.dlink.de/service/treiber_detail.asp?produkt=DFE%2D530TX
Weil das Problem immer wieder mal auftaucht, haben wir ein wenig ausführlicher zur Thematik geschrieben..;-),
Natürlich hat unser Netzwerkteam auch die Möglichkeit in den Log-Files des DHCP-Servers bis ins
Details nachzuforschen, dies ist aber sehr aufwendig und zeitintensiv. Korrupte IP-Adressen gibt es eigentlich keine. Wir können jedoch an der Hotline
IP-Adressen auf dem Teilbereich des Headends löschen, der Kunde die Zuordnung der IP-Adresse zur MAC-Adresse durch einen Reboot ebenfalls.
Wir hoffen, dass die Ausführung verständlich geworden sind und die Massnahmen fruchten
werden.
Gruss
THH-Team
EDIT: Leasedauer angepasst
(Geändert von Cablecom THH um 10:02 am am Mai 28, 2002)
-----
Technischer Helpdesk Hispeed (THH) -> Infos unter Profil
0900 660 900 (10 Minuten Normaltarif, dann 2.13Fr./Min)
http://www.hispeed.ch