Як я можу передати телнет на хост IPv6 за допомогою Mac OS X?


11

Я тестую 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

І я знаю, що веб-сервер працює, тому що я можу до нього звертатись із Windows:

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

Я підозрюю, що є якийсь прапор конфігурації або аргумент командного рядка, який я відсутній.


Гаразд, я кусаю. Чому б не просто використовувати IPv4? З цього питання, чому telnet навіть увімкнено?
Джон Гарденєр

1
@John Nate намагається перенести telnet до порту 80. Ваш веб-сервер стане самотнім і в'яне, якщо ви не будете з ним періодично спілкуватися.
Джеральд Гребінь

2
@John Gardeniers: Я експериментую з IPv6, оскільки, напевно, мені потрібно буде почати його впроваджувати у найближчі 12-18 місяців. Також, як каже Джеральд, telnet клієнт є корисним інструментом для тестування базового підключення до веб-серверів або серверів електронної пошти. Я не бачив сервер telnet принаймні 10 років.
Нейт

@Gerald та @Nate я побачив "Як я можу передати телнет до хоста IPv6", який мені каже протокол telnet, і тоді я завжди здригаюся і перестаю читати. Звичайно, якби назва була чимось на кшталт "Як я можу використовувати програму telnet для підключення ...", я прочитав би все питання. Вибачте.
Джон Гарденєр

Відповіді:


11

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

netstat -nr

на ОС X і

netsh int ipv6 show routes

на Windows. В OS X ви, швидше за все, побачите окремий маршрут fe80 :: для кожного інтерфейсу, наприклад, для lo0 та en1. Windows (як мінімум, XP), схоже, не робить цього. Оскільки в OS X є кілька маршрутів до одного префікса, ви повинні використовувати індекс зони, щоб вказати трафік у правильному напрямку:

$ telnet -6 fe80::…%en1 80

Дякую, це спрацювало. І дякую за пояснення, чому він працював на Windows, але не на OS X.
Нейт

4

Інтерфейс може і, як правило, матиме декілька IPv6 адрес. Локальна адреса посилань автоматично створюється з діапазону fe80 :: / 16 і не здійснюється маршрутизацією (з'єднання "точка-точка"). Як згадує Gerald Combs , вам потрібно буде вказати індекс зони, якщо ви не можете вказати, який інтерфейс використовувати.

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

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

Цей документ визначає формат одноадресної адреси IPv6, який є унікальним у всьому світі та призначений для локальної комунікації, як правило, всередині сайту. Очікується, що ці адреси не будуть маршрутизовані в глобальному Інтернеті

Ознайомтесь із цим сайтом , який розпочинає, генеруючи діапазон для вас.


Унікальні місцеві адреси стануть моїм наступним кроком. Дякуємо за чудове посилання!
Нейт

0

Я вважаю, ви знайшли помилку у посиланні локальних fe80 :: адреси. Він працює для мене, використовуючи мою публічну адресу, хоча вони є локальними посиланнями.

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


1
Локальна адреса посилання не менш реальна , але може бути менш корисною, залежно від вашого випадку використання.
Джеральд Гребінь

2001 :: адреса не є локальною посиланням. Це діапазон маршрутизації, і його не слід плутати з локальним бронюванням посилання fe80 :: / 16. Будь ласка, не зловживайте цим терміном, оскільки це заплутає людей.
Martijn Heemels

Я мав на увазі локальне посилання, як фізично хост знаходиться в тому ж домені ефірної трансляції.
Багамат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.