¿Cómo puedo hacer telnet a un host IPv6 usando Mac OS X?

10

Estoy probando IPv6 en una red corporativa y tengo problemas con OS X. Con la mayoría de los comandos de IPv6, como telnet -6o traceroute6, aparece el error:

connect: No route to host

Por ejemplo, tengo un servidor web. Esto falla:

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

Sé que el servidor es accesible porque ping6funciona (tenga en cuenta que tengo que usar el -Iargumento):

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

Y sé que el servidor web se está ejecutando porque puedo hacer telnet desde Windows:

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

Sospecho que me falta algún indicador de configuración o argumento de línea de comandos.

Nate
fuente
Ok, voy a morder. ¿Por qué no solo usar IPv4? Para el caso, ¿por qué está habilitado Telnet?
John Gardeniers
1
@John Nate está intentando hacer telnet al puerto 80. Su servidor web se sentirá solo y se marchitará si no habla con él periódicamente.
Gerald Combs
2
@John Gardeniers: estoy experimentando con IPv6 ya que preveo que tendré que comenzar a implementarlo en los próximos 12-18 meses. Además, como dice Gerald, un telnet cliente es una herramienta útil para probar la conectividad básica a servidores web o de correo electrónico. No he visto un servidor telnet en al menos 10 años.
Nate
@Gerald y @Nate, vi "Cómo puedo hacer telnet a un host IPv6", que para mí dice el protocolo telnet, en ese punto siempre me estremezco y dejo de leer. Por supuesto, si el título hubiera sido algo así como "¿Cómo uso el programa telnet para conectarme?", Habría leído toda la pregunta. Lo siento.
John Gardeniers

Respuestas:

11

El prefijo fe80 :: / 16 es para direcciones locales de enlace, y son especiales. Intenta correr

netstat -nr

en OS X y

netsh int ipv6 show routes

en Windows En OS X, lo más probable es que vea una ruta fe80 :: separada para cada interfaz, por ejemplo, para lo0 y en1. Windows (XP, al menos) no parece hacer eso. Dado que OS X tiene múltiples rutas al mismo prefijo, debe usar un índice de zona para apuntar el tráfico en la dirección correcta:

$ telnet -6 fe80::…%en1 80
Gerald Peines
fuente
Gracias, esto funcionó. Y gracias por explicar por qué funcionó en Windows pero no en OS X.
Nate
4

Una interfaz puede y generalmente tendrá múltiples direcciones IPv6. Se crea automáticamente una dirección de enlace local desde el rango fe80 :: / 16 y no se enruta (conexión punto a punto). Como menciona Gerald Combs , deberá especificar un índice de zona si no puede especificar qué interfaz usar.

Para uso regular y conexiones más allá del enlace local, deberá agregar direcciones enrutables a la interfaz. Esto se puede hacer obteniendo su propio rango de IPv6 de su ISP (o de un proveedor de túnel como SixXS o he.net), y distribuyéndolos a sus dispositivos a través de Router Advertisement, DHCPv6 o manualmente.

Si solo está probando, también puede usar el rango especial de IP "Unicast único" de fc00 :: / 7 que se debe usar para esto según RFC4193:

Este documento define un formato de dirección de unidifusión IPv6 que es globalmente único y está destinado a las comunicaciones locales, generalmente dentro de un sitio. No se espera que estas direcciones sean enrutables en Internet global

Echa un vistazo a este sitio , que te ayuda a comenzar generando un rango para ti.

Martijn Heemels
fuente
Direcciones locales únicas serán mi próximo paso. Gracias por el excelente enlace!
Nate
0

Creo que ha encontrado un error en el enlace local fe80 :: direcciones. Funciona para mí usando mi dirección pública, a pesar de que son enlaces locales.

$ 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.

Intenta obtener direcciones reales de v6.

bahamat
fuente
1
Una dirección de enlace local no es menos real , pero podría ser menos útil dependiendo de su caso de uso.
Gerald Combs
Una dirección 2001 :: no es local de enlace. Es un rango enrutable y no debe confundirse con la reserva de enlace local fe80 :: / 16. Por favor, no use mal el término, ya que esto confundirá a las personas.
Martijn Heemels
Me refería al enlace local, ya que físicamente el host reside en el mismo dominio de transmisión de Ethernet.
bahamat