[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: προσπάθεια σύνδεσης με IPv6



Γιώργος Πάλλας 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) = 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) = -1 ENETUNREACH (Network is
unreachable) close(3) = 0
write(1, "Trying 130.237.234.40...\n", 25Trying
130.237.234.40...                                                   ) =
25
close(4294967295)                       = -1 EBADF (Bad file
descriptor) 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) = 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(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


Reply to: