Come posso telnet a un host IPv6 usando Mac OS X?


11

Sto testando IPv6 su una rete aziendale e ho problemi con OS X. Con la maggior parte dei comandi IPv6, come telnet -6o traceroute6, ottengo l'errore:

connect: No route to host

Ad esempio, ho un server web. Questo fallisce:

$ telnet -6 fe80::… 80    # this fails

So che il server è raggiungibile perché ping6funziona (nota che devo usare l' -Iargomento):

$ ping6 -I en1 fe80::…    # this works

E so che il web server è in esecuzione perché posso telnet da esso da Windows:

C:\> telnet fe80::… 80  # this works

Ho il sospetto che ci sia qualche flag di configurazione o argomento della riga di comando che mi manca.


Ok, mordo. Perché non usare solo IPv4? Del resto, perché Telnet è abilitato?
John Gardeniers,

1
@John Nate sta provando a telnetare alla porta 80. Il tuo server web diventerà solo e appassirà se non ci parli periodicamente.
Gerald Combs,

2
@ John Gardeniers: sto sperimentando IPv6 poiché prevedo che dovrò iniziare a implementarlo nei prossimi 12-18 mesi. Inoltre, come afferma Gerald, un telnet client è uno strumento utile per testare la connettività di base ai server Web o e-mail. Non vedo un server Telnet da almeno 10 anni.
Nate,

@Gerald e @Nate, ho visto "Come posso telnet a un host IPv6", che per me dice il protocollo telnet, a quel punto rabbrividisco sempre e smetto di leggere. Naturalmente il titolo era stato qualcosa del tipo "Come posso usare il programma Telnet per connettermi ..." Avrei letto l'intera domanda. Scusate.
John Gardeniers,

Risposte:


11

Il prefisso fe80 :: / 16 è per gli indirizzi link-local e sono speciali. Prova a correre

netstat -nr

su OS X e

netsh int ipv6 show routes

Su Windows. Su OS X molto probabilmente vedrai una route fe80 :: separata per ogni interfaccia, ad esempio per lo0 e en1. Windows (almeno XP) non sembra farlo. Poiché OS X ha più percorsi verso lo stesso prefisso, devi utilizzare un indice di zona per indirizzare il traffico nella giusta direzione:

$ telnet -6 fe80::…%en1 80

Grazie, ha funzionato. E grazie per aver spiegato perché ha funzionato su Windows ma non su OS X.
Nate

4

Un'interfaccia può e di solito avrà più indirizzi IPv6. Un indirizzo locale di collegamento viene creato automaticamente dall'intervallo fe80 :: / 16 e non viene instradato (connessione punto a punto). Come menziona Gerald Combs , dovrai specificare un indice di zona se non puoi specificare quale interfaccia usare.

Per un uso regolare e connessioni oltre il collegamento locale, è necessario aggiungere indirizzi instradabili all'interfaccia. Questo può essere fatto ottenendo la tua gamma IPv6 dal tuo ISP (o da un fornitore di tunnel come SixXS o he.net) e distribuendoli ai tuoi dispositivi tramite Router Advertisement, DHCPv6 o manualmente.

Se stai solo testando puoi anche usare la speciale gamma IP "Unique Unicast" di fc00 :: / 7 che dovrebbe essere usata per questo secondo RFC4193:

Questo documento definisce un formato di indirizzo unicast IPv6 univoco a livello globale ed è destinato alle comunicazioni locali, generalmente all'interno di un sito. Non si prevede che questi indirizzi siano instradabili su Internet globale

Dai un'occhiata a questo sito , che ti inizia generando un intervallo per te.


Indirizzi locali unici saranno il mio prossimo passo. Grazie per l'ottimo link!
Nate,

0

Credo che tu abbia trovato un bug nel collegamento locale fe80 :: indirizzi. Funziona per me usando il mio indirizzo pubblico, anche se sono link locali.

$ telnet -6 2001::xxx:: 80
Trying 2001::xxx::...
Connected to 2001::xxx::
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 30 Dec 2010 01:18:00 GMT
Server: Apache
Last-Modified: Sun, 30 May 2010 20:11:06 GMT
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html

Connection closed by foreign host.

Prova a ottenere indirizzi v6 reali.


1
Un indirizzo locale di collegamento non è meno reale , ma potrebbe essere meno utile a seconda del caso d'uso.
Gerald Combs,

Un indirizzo 2001 :: non è link-local. È un intervallo instradabile e non deve essere confuso con la prenotazione link-local fe80 :: / 16. Si prega di non abusare del termine, poiché ciò confonderà le persone.
Martijn Heemels,

Intendevo collegamento locale come fisicamente l'host risiede sullo stesso dominio di trasmissione Ethernet.
bahamat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.