Ciao a tutti!
Consideriamo il seguente scenario: infrastruttura enterprise con DHCP server centralizzato. Tutti i clients nei vari branch office ottengono un indirizzo IP da questo server. Il collegamento via WAN è unreliable.
Cosa succede nel caso che il DHCP server ha un problema ed è offline, oppure I link WAN sono giù e quindi il server è comunque irraggiungibili per I client? Il comportamento di default è il seguente: by design, se il DHCP server è indisponibile, in fase di avvio di sistema I clients Windows 7 mantengono l’indirizzo IP precedentemente assegnatogli se il lease è ancora valido.
Nello specifico, il comportamento è:
1) In fase di boot, client assume indirizzo APIPA (della classe 169.254.0.0/16) e performa Duplicate Address Detection
2) Client tenta di contattare DHCP server per 3 volte
3) Se DHCP server risponde, client rinnova il lease. Se DHCP server non risponde, client ritenta altre 3 DHCP requests
4) Se DHCP server non risponde, client tenta di contattare il suo gateway (nell’esempio, 10.0.0.2)
5) Se gateway risponde, client assume di trovarsi della stessa subnet di prima e ripristina il suo indirizzo IP funzionante (nell’esempio 10.0.0.33)
6) Se gateway non risponde, client assume che non si trova più nella stessa subnet e che quindi I suoi settings siano invalidi: decide quindi di scartare l’indirizzo IP configurato e mantenere l’APIPA
Ci sono però alcuni scenari in cui il comportamento può essere differente. Vale la pena a questo punto introdurre due chiavi di registro nella discussione (entrambe sotto HKLM\System\CurrentControlSet\Services\Tcpip\Parameters)
Di default in Windows 7 I valori delle chiavi sono DontPingGateway = 0 e IPAutoconfigurationEnabled = 1
Che cosa si intende esattamente per “ping” verso il gateway? Ai tempi di Windows XP, la procedura prevedeva un vero e proprio ICMP request verso il default gateway. Nel passaggio a Vista/2008 si è pensato di modificare questo comportamento e passare ad utilizzare una ARP request. Il motivo è che al giorno d’oggi molti router/gateways moderni per motivi di sicurezza non rispondono più all’ICMP e quindi non permettevano a questo meccanismo di funzionare correttamente, costringendo I client a mantenere un indirizzo APIPA. è bene sottolineare che purtroppo:
Per risolvere entrambi questi problemi è indispensabile settare la chiave di registro DontPingGateway = 1 per “saltare” il check con il gateway del punto 4) e suggerire al client di mantenere l’indirizzo IP valido.
Un ulteriore problema si verifica quando gli amministratori hanno deciso di disabilitare l’APIPA deployando la chiavie di registro IPAutoconfigurationEnabled = 0. In questo scenario purtroppo, non avendo alcun indirizzo IP (nemmeno APIPA) il client non può performare il test con ARP del punto 4) e quindi siccome il Gateway di conseguenza non risponderà, il client rimarrà definitivamente senza indirizzo IP. Anche in questo caso quindi, per risolvere il problema, è necessario settare DontPingGateway = 1
Riassumendo:
Info aggiuntive:
Grazie a tutti e alla prossima!
Stefano Gagliardi Support Engineer Microsoft Enterprise Platform Support