Zdravím, mám problém přesně opačný než většina dotazů na tohle téma. Pořídil jsem si na svůj domácí server (Ubuntu 8.04 LTS) IP6 tunel od tunnelbroker.net a podle všeho i úspěšně rozchodil:
[root@apstemar:~]# tracepath6 www.kame.net
1?: [LOCALHOST] pmtu 1480
1: stemar-1.tunnel.tserv6.fra1.ipv6.he.net 27.379ms
1: stemar-1.tunnel.tserv6.fra1.ipv6.he.net 28.246ms
2: gige-g2-4.core1.fra1.he.net 41.835ms
3: 10gigabitethernet1-4.core1.ams1.he.net 34.328ms
4: 10gigabitethernet1-4.core1.lon1.he.net 42.014ms
5: 10gigabitethernet2-3.core1.nyc4.he.net 109.139ms
6: 10gigabitethernet3-1.core1.sjc2.he.net 191.599ms
7: 10gigabitethernet3-2.core1.pao1.he.net 189.410ms
8: 3ffe:80a::b2 194.922ms
9: hitachi1.otemachi.wide.ad.jp 335.049ms
10: 2001:200:0:1802:20c:dbff:fe1f:7200 332.131ms
11: ve42.foundry4.nezu.wide.ad.jp 376.234ms
12: ve45.nec2.yagami.wide.ad.jp 346.502ms
13: 2001:200:0:8400::10:1 333.288ms
14: orange.kame.net 337.773ms reached
Resume: pmtu 1480 hops 14 back 51
I na příchozí spojení to funguje a např. SSHčkem se odkudkoli z IP6 sítě bez problémů na svůj server připojím (sláva!). Ale jakékoli odchozí spojení (např. právě http na
www.kame.net) si vždycky "vybere" IP4 adresu a ne ne IP6. (A želvička se tedy nehýbe). V dokumentaci se píše že při resolvování se má resolver vždy nejdřív zeptat na IP6 adresu (AAAA) a teprve když neuspěje má zkusit IP4 (A). Na mnoha fórech tady i jinde se řeší jak to linuxu zatrhnout, protože to zdržuje. Jenže ten můj resolver to zjevně nedělá:
[root@apstemar:~]# resolveip www.kame.net
IP address of www.kame.net is 203.178.141.194
Po různu jsem posháněl že:
- v /etc/resolv.conf je třeba přidat options inet6
- v /etc/nsswitch.conf je třeba řádek hosts: files dns změnit na hosts: files dns6
Jenže, nefunguje:
[root@apstemar:~]# cat /etc/resolv.conf /etc/nsswitch.conf
# /etc/resolv.conf
domain stemar.cz
options inet6
nameserver 127.0.0.1
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns6
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
[root@apstemar:~]# resolveip www.kame.net
resolveip: Unable to find hostid for 'www.kame.net': host not found
Ale přitom (viz resolv.conf) používám jen svůj lokální (cacheovací) DNS a ten funguje:
[root@apstemar:~]# dig -t AAAA @127.0.0.1 www.kame.net
; <<>> DiG 9.4.2-P2 <<>> -t AAAA @127.0.0.1 www.kame.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50332
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 13
;; QUESTION SECTION:
;www.kame.net. IN AAAA
;; ANSWER SECTION:
www.kame.net. 82990 IN AAAA 2001:200:0:8002:203:47ff:fea5:3085
;; AUTHORITY SECTION:
net. 60908 IN NS E.GTLD-SERVERS.net.
net. 60908 IN NS M.GTLD-SERVERS.net.
;; Query time: 8 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Dec 4 12:47:28 2008
;; MSG SIZE rcvd: 511
Ověřeno: funguje a dostanu stejnou odpověď i když se ho zeptám "šestkově": dig -6 -t AAAA www.kame.netJeště jsem zjistil že když v
/etc/nsswitch.com nezměním to
dns na
dns6 tak se to chová ještě jinak, nedostanu
host not found ale nesmyslnou adresu:
[root@apstemar:~]# resolveip www.kame.net
IP address of www.kame.net is 32.1.2.0
[root@apstemar:~]# resolveip www.seznam.cz
IP address of www.seznam.cz is 0.0.0.0
IP address of www.seznam.cz is 0.0.0.0
Abych vás nesváděl někam na špatnou cestu, opusťme myšlenky na chybné routování apod. jde čistě o to resolvování. Pokud pro jakékoli odchozí spojení použiju rovnou IP6 adresu, nebo vynutím IP6 protokol (např. u NTP serveru parametrem -6) vše funguje jak má. Jen to resolvování nějak bloudí v mlze.
Nemáte někdo nějaký nápad? Zdánlivě řeším zbytečnost, je přeci jedno kterým protokolu se spojím, jenže není tomu tak. Je celá řada kokrétních případů (např. ta želvička na
www.kame.net) kde to jedno není. A taky, když už ten tunel mám, rád bych ho používal ...
Předem díky
Update: jak na to teď tady koukám, došlo mi že 32.1.2.0 by se s trochou fuzzy logic dalo chápat jako 2001:200 což se podobá začátku IP6 adresy www.kame.net (a taky začátku většiny IP6 adres). Že by stopa?