Comment puis-je Telnet vers un hôte IPv6 en utilisant Mac OS X?

11

Je teste IPv6 sur un réseau d'entreprise et j'ai des problèmes avec OS X. Avec la plupart des commandes IPv6, telles que telnet -6or traceroute6, j'obtiens l'erreur:

connect: No route to host

Par exemple, j'ai un serveur Web. Cela échoue:

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

Je sais que le serveur est accessible car ping6fonctionne (notez que je dois utiliser l' -Iargument):

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

Et je sais que le serveur Web fonctionne car je peux y telnet à partir de Windows:

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

Je soupçonne qu'il manque un indicateur de configuration ou un argument de ligne de commande.

Nate
la source
D'accord, je vais mordre. Pourquoi ne pas simplement utiliser IPv4? D'ailleurs, pourquoi telnet est-il même activé?
John Gardeniers
1
@John Nate essaie de telnet sur le port 80. Votre serveur Web deviendra solitaire et se flétrir si vous ne lui parlez pas périodiquement.
Gerald Combs
2
@John Gardeniers: J'expérimente avec IPv6 car je prévois que je devrai commencer à l'implémenter dans les 12-18 prochains mois. De plus, comme le dit Gerald, un telnet client est un outil utile pour tester la connectivité de base aux serveurs Web ou de messagerie. Je n'ai pas vu de serveur telnet depuis au moins 10 ans.
Nate
@Gerald et @Nate, j'ai vu "Comment puis-je telnet à un hôte IPv6", qui me dit le protocole telnet, à quel point je frissonne toujours et arrête de lire. Bien sûr, si le titre avait été quelque chose comme "Comment utiliser le programme telnet pour se connecter ..." J'aurais lu toute la question. Désolé.
John Gardeniers

Réponses:

11

Le préfixe fe80 :: / 16 est pour les adresses link-local, et elles sont spéciales. Essayez de courir

netstat -nr

sous OS X et

netsh int ipv6 show routes

sous Windows. Sur OS X, vous verrez très probablement une route fe80 :: distincte pour chaque interface, par exemple pour lo0 et en1. Windows (XP, au moins) ne semble pas le faire. Étant donné que OS X a plusieurs itinéraires vers le même préfixe, vous devez utiliser un index de zone pour pointer le trafic dans la bonne direction:

$ telnet -6 fe80::…%en1 80
Gerald Combs
la source
Merci, cela a fonctionné. Et merci d'avoir expliqué pourquoi cela fonctionnait sur Windows mais pas sur OS X.
Nate
4

Une interface peut et aura généralement plusieurs adresses IPv6. Une adresse de lien local est automatiquement créée à partir de la plage fe80 :: / 16 et n'est pas routée (connexion point à point). Comme le mentionne Gerald Combs , vous devrez spécifier un index de zone si vous ne pouvez pas spécifier quelle interface utiliser.

Pour une utilisation régulière et des connexions au-delà du lien local, vous devrez ajouter des adresses routables à l'interface. Cela peut être fait en obtenant votre propre plage IPv6 auprès de votre FAI (ou d'un fournisseur de tunnel tel que SixXS ou he.net), et en les distribuant à vos appareils via la publicité du routeur, DHCPv6 ou manuellement.

Si vous ne faites que tester, vous pouvez également utiliser la plage IP spéciale "Unique Unicast" de fc00 :: / 7 qui devrait être utilisée pour cela conformément à la RFC4193:

Ce document définit un format d'adresse de monodiffusion IPv6 unique au monde et destiné aux communications locales, généralement à l'intérieur d'un site. Ces adresses ne devraient pas être routables sur Internet mondial

Consultez ce site , qui vous permet de démarrer en générant une gamme pour vous.

Martijn Heemels
la source
Les adresses locales uniques seront ma prochaine étape. Merci pour l'excellent lien!
Nate
0

Je crois que vous avez trouvé un bug dans le lien local fe80 :: adresses. Cela fonctionne pour moi en utilisant mon adresse publique, même s'il s'agit d'un lien local.

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

Essayez d'obtenir de vraies adresses v6.

bahamat
la source
1
Une adresse de lien local n'est pas moins réelle , mais elle pourrait être moins utile selon votre cas d'utilisation.
Gerald Combs
Une adresse 2001 :: n'est pas un lien local. C'est une plage routable et ne doit pas être confondue avec la réservation link-local fe80 :: / 16. Veuillez ne pas abuser du terme, car cela déroutera les gens.
Martijn Heemels
Je voulais dire un lien local car physiquement l'hôte réside sur le même domaine de diffusion Ethernet.
bahamat