Problemi con NAT di DNS
Inviato: ven 09 lug , 2010 4:47 pm
Salve a tutti.
Da qualche giorno i miei server DNS microsoft (windows 2003 o windows 2008 con Active Directory) hanno problemi a risolvere proprio l'indirizzo "www.cisco.com". Questo problema succede solo presso i clienti dove ho installato cisco IOS come router/gateway/firewall (versioni fino all'anno 2008 circa, 871, 877, 1812).
Succede che al primo "ping www.cisco.com", l'hostname viene risolto correttamente e pingo l'host che viene proposto. Il secondo "ping www.cisco.com" invece non è in grado di risolvere l'hostname. Questo implica che comunque nella prima risoluzione c'era un RR di risposta con TTL zero e quindi non è stato inserito nella cache del DNS, bruttissimo comportamento di IOS.
Sono andato a fondo sniffando con wireshark e debuggando da cisco. Probabilmente succede questo:
- Alla prima richiesta di risoluzione, i DNS di M$ risolvono correttamente l'hostname, ma IOS si arrabbia e mi imposta il TTL a zero
- Alla seconda richiesta di risoluzione, i DNS di M$ non vogliono più saperne del TTL 0 (per motivi di security ??) fino a quando non trascorre un certo tempo.
Questo comportamento lo ho su almeno 5 reti diverse e non collegate tra di loro.
Ecco il "debug ip nat detail" del misfatto, del pacchetto di risposta che IOS non riuscendo a interpretare mi modifica azzerandone il TTL.
Questo log arriva da un 1812 con IOS 12.4(15)T9
Come vedete, IOS oltre a non capirci niente del pacchetto risolto (Error in parsing cname data), ha pure l'accortezza di impostarmi il TTL a zero.
Il TTL a zero fa in qualche modo arrabbiare il DNS Microsoft... e nessuno risolve più www.cisco.com.
Che posso fare ?
Grazie
Giovanni
Da qualche giorno i miei server DNS microsoft (windows 2003 o windows 2008 con Active Directory) hanno problemi a risolvere proprio l'indirizzo "www.cisco.com". Questo problema succede solo presso i clienti dove ho installato cisco IOS come router/gateway/firewall (versioni fino all'anno 2008 circa, 871, 877, 1812).
Succede che al primo "ping www.cisco.com", l'hostname viene risolto correttamente e pingo l'host che viene proposto. Il secondo "ping www.cisco.com" invece non è in grado di risolvere l'hostname. Questo implica che comunque nella prima risoluzione c'era un RR di risposta con TTL zero e quindi non è stato inserito nella cache del DNS, bruttissimo comportamento di IOS.
Sono andato a fondo sniffando con wireshark e debuggando da cisco. Probabilmente succede questo:
- Alla prima richiesta di risoluzione, i DNS di M$ risolvono correttamente l'hostname, ma IOS si arrabbia e mi imposta il TTL a zero
- Alla seconda richiesta di risoluzione, i DNS di M$ non vogliono più saperne del TTL 0 (per motivi di security ??) fino a quando non trascorre un certo tempo.
Questo comportamento lo ho su almeno 5 reti diverse e non collegate tra di loro.
Ecco il "debug ip nat detail" del misfatto, del pacchetto di risposta che IOS non riuscendo a interpretare mi modifica azzerandone il TTL.
Codice: Seleziona tutto
002668: Jul 9 17:02:35.285 CEST: NAT: s=192.168.98.1->82.106.176.211, d=217.212.245.68 [30725]
002669: Jul 9 17:02:35.353 CEST: NAT: o: udp (217.212.245.68, 53) -> (82.106.176.211, 54431) [43804]
002670: Jul 9 17:02:35.353 CEST: NAT (UDP-DNS): Before Translation
002671: Jul 9 17:02:35.353 CEST: NAT: Translation of UDP DNS src 217.212.245.68, dst 82.106.176.211
002672: Jul 9 17:02:35.353 CEST: NAT: Dns type of Response
002673: Jul 9 17:02:35.353 CEST: : dns len=90, id=48916, aa=1, tc=0, rd=0, ra=0
002674: Jul 9 17:02:35.353 CEST: : opcode=0, rcode=0, qdcount=1
002675: Jul 9 17:02:35.353 CEST: : ancount=1, nscount=0, arcount=0
002676: Jul 9 17:02:35.353 CEST: query name is www.cisco.com.edgekey.net, qtype=1, class=1
002677: Jul 9 17:02:35.353 CEST: Answer section:
002678: Jul 9 17:02:35.353 CEST: Name='www.cisco.com.edgekey.net'
002679: Jul 9 17:02:35.353 CEST: RR type=5, class=1, ttl=21600, data length=47
002680: Jul 9 17:02:35.353 CEST: (Error in parsing cname data)
002681: Jul 9 17:02:35.353 CEST: NAT (UDP-DNS): After Translation
002682: Jul 9 17:02:35.357 CEST: NAT: Translation of UDP DNS src 217.212.245.68, dst 82.106.176.211
002683: Jul 9 17:02:35.357 CEST: NAT: Dns type of Response
002684: Jul 9 17:02:35.357 CEST: : dns len=90, id=48916, aa=1, tc=0, rd=0, ra=0
002685: Jul 9 17:02:35.357 CEST: : opcode=0, rcode=0, qdcount=1
002686: Jul 9 17:02:35.357 CEST: : ancount=1, nscount=0, arcount=0
002687: Jul 9 17:02:35.357 CEST: query name is www.cisco.com.edgekey.net, qtype=1, class=1
002688: Jul 9 17:02:35.357 CEST: Answer section:
002689: Jul 9 17:02:35.357 CEST: Name='www.cisco.com.edgekey.net'
002690: Jul 9 17:02:35.357 CEST: RR type=5, class=1, ttl=0, data length=47
002691: Jul 9 17:02:35.357 CEST: (Error in parsing cname data)
Come vedete, IOS oltre a non capirci niente del pacchetto risolto (Error in parsing cname data), ha pure l'accortezza di impostarmi il TTL a zero.
Il TTL a zero fa in qualche modo arrabbiare il DNS Microsoft... e nessuno risolve più www.cisco.com.
Che posso fare ?
Grazie
Giovanni