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


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

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.


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.