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.