Назад | Перейти на главную страницу

Как я могу подключиться к хосту IPv6 через Telnet с Mac OS X?

Я тестирую IPv6 в корпоративной сети и у меня проблемы с OS X. С большинством команд IPv6, таких как telnet -6 или traceroute6, Я получаю сообщение об ошибке:

connect: No route to host

Например, у меня есть веб-сервер. Это не удается:

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

Я знаю, что сервер доступен, потому что ping6 работает (обратите внимание, что я должен использовать -I аргумент):

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

И я знаю, что веб-сервер запущен, потому что я могу подключиться к нему через telnet из Windows:

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

Я подозреваю, что мне не хватает какого-то флага конфигурации или аргумента командной строки.

Префикс fe80 :: / 16 предназначен для локальных адресов, и они особенные. Попробуйте бежать

netstat -nr

в OS X и

netsh int ipv6 show routes

в Windows. В OS X вы, скорее всего, увидите отдельный fe80 :: route для каждого интерфейса, например для lo0 и en1. Windows (по крайней мере, XP) этого не делает. Поскольку OS X имеет несколько маршрутов к одному и тому же префиксу, вы должны использовать индекс зоны направить движение в нужном направлении:

$ telnet -6 fe80::…%en1 80

Интерфейс может иметь и обычно имеет несколько адресов IPv6. Локальный для канала адрес автоматически создается из диапазона fe80 :: / 16 и не маршрутизируется (соединение точка-точка). Так как Джеральд Комбс упоминает, вам нужно будет указать индекс зоны, если вы не можете указать, какой интерфейс использовать.

Для регулярного использования и соединений за пределами локальной ссылки вам необходимо добавить в интерфейс маршрутизируемые адреса. Это можно сделать, получив собственный диапазон IPv6 от вашего интернет-провайдера (или от провайдера туннелей, например SixXS или he.net), и распространив их на ваши устройства через Router Advertisement, DHCPv6 или вручную.

Если вы просто тестируете, вы также можете использовать специальный диапазон IP-адресов "Unique Unicast" fc00 :: / 7, который следует использовать для этого в соответствии с RFC4193:

В этом документе определяется формат одноадресного адреса IPv6, который является глобально уникальным и предназначен для локальной связи, обычно внутри сайта. Ожидается, что эти адреса не будут маршрутизироваться в глобальном Интернете.

Проверять, выписываться этот сайт, который поможет вам начать работу с создания диапазона.

Я полагаю, вы нашли ошибку в ссылке local fe80 :: addresses. У меня это работает с использованием моего публичного адреса, даже если они являются локальными ссылками.

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

Попробуйте получить реальные адреса v6.