Γιώργος Πάλλας wrote:
George Miliotis (Corfiot) wrote:Γιώργος Πάλλας wrote:Καλησπέρα σε όλους! Τις τελευταίες μέρες, σε ένα fully updated debian squeeze, πάνω σε siemens adsl router με forthnet ISP, έχω το πρόβλημα ότι προσπαθεί να μιλήσει με IPv6 σε IPv6 enabled sites. Ουσιαστικά δηλαδή, σε sites των οποίων το DNS επιστρέφει ΑΑΑΑ record. Φυσικά, ο ISP δεν δίνει IPv6, ούτε και ο routerάκος, και ενώ το interface μου είναι ως εξής: eth2 Link encap:Ethernet HWaddr 00:22:5f:6e:cc:63 inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::222:5fff:fe6e:cc63/64 Scope:Link παρόλα αυτά ο υπολογιστής προσπαθεί να μιλήσει με IPv6. Αρχικά το παρατήρησα με το security.debian.org κατά τη διάρκεια ενός aptitude update: 84% [Connecting to security.debian.org (2001:8d8:2:1:6564:a62:0:2)]Στο resolv.conf έχεις μήπως options inet6 ; --Γμπά... ένα μόνο nameserver που δείχνει στον dsl router: 192.168.1.1...Πάντως έκανα μερικά πειράματα.Έκανα ένα VPN και βρέθηκα bridged σε δίκτυο που διαθέτει και IPv6. Kάνοντας ένα strace το telnet, βλέπω ότι πρώτα γίνεται μια προ-σύνδεση και στην ipv4 και στην ipv6: socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("70.122.123.74")}, 16) = 0 getsockname(3, {sa_family=AF_INET, sin_port=htons(50799), sin_addr=inet_addr("myIPv4VPNaddress")}, [16]) = 0 close(3) = 0 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3 connect(3, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2001:6b0:1:ea:202:a5ff:fecd:13a6", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 getsockname(3, {sa_family=AF_INET6, sin6_port=htons(34891), inet_pton(AF_INET6, "myIPv6VPNaddress", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 close(3) = 0 και μετά, αφού πέτυχαν και οι δυο, παίρνει προτεραιότητα το IPv6 και συνδέεται με IPv6: connect(3, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2001:6b0:1:ea:202:a5ff:fecd:13a6", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 Ενδιαφέρον. Kόβωντας το VPN και επιστρέφοντας σε POv4, το αντίστοιχο πείραμα δίνει: socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) =3 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("130.237.234.40")}, 16) = 0 getsockname(3, {sa_family=AF_INET, sin_port=htons(34390), sin_addr=inet_addr("192.168.1.200")}, [16]) = 0 close(3) = 0socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) =3 connect(3, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6,"2001:6b0:1:ea:202:a5ff:fecd:13a6", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network isunreachable) close(3) = 0write(1, "Trying 130.237.234.40...\n", 25Trying 130.237.234.40... ) =25close(4294967295) = -1 EBADF (Bad filedescriptor) socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 setsockopt(3, SOL_IP, IP_TOS, [16], 4) = 0 connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("130.237.234.40")}, 16) = 0Δηλαδή είδε ότι απέτυχε η IPv6 σύνδεση και τελικά συνδέθηκε με IPv4. Άρα το πρόβλημα δεν εμφανίστηκε. Θα επαναλάβω το strace κατά τη στιγμή που συμβαίνει το πρόβλημα για να συγκρίνω...
Σήμερα το πρωί πάλι την είχε δει IPv6, οπότε έκανα το ίδιο strace και είδα, ότι την ώρα που γίνονται οι δυο προ-συνδέσεις, πάει και κάνει πρώτα την IPv6 η οποία του μοιάζει να πετυχάινει:
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3connect(3, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2001:6b0:1:ea:202:a5ff:fecd:13a6", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 getsockname(3, {sa_family=AF_INET6, sin6_port=htons(41331), inet_pton(AF_INET6, "fe80::222:5fff:fe6e:cc63", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 connect(3, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
μετά κάνει και την IPv4:connect(3, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("130.237.234.40")}, 16) = 0 getsockname(3, {sa_family=AF_INET6, sin6_port=htons(47679), inet_pton(AF_INET6, "::ffff:192.168.1.200", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
close(3) = 0Προσπάθησα να συγκρίνω πριν την IPv6 προσύνδεση να δω γιατί οδηγείται να την κάνει, αλλά ντεν καταλαβαίνει... Επίσης, την IPv6 διεύθυνση του site (www.ipv6.org) που τη βρίσκει;
Eπισυνάπτω και το strace με το πρόβλημα για όποιον θέλει να κάνει βουτιά... Γ.
Attachment:
telnet_wrong_ipv6.txt.bz2
Description: Binary data
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature