Jak mogę telnet do hosta IPv6 za pomocą Mac OS X?

11

Testuję IPv6 w sieci firmowej i mam problemy z OS X. Z większością poleceń IPv6, takich jak telnet -6lub traceroute6, pojawia się błąd:

connect: No route to host

Na przykład mam serwer WWW. To się nie udaje:

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

Wiem, że serwer jest osiągalny, ponieważ ping6działa (zauważ, że muszę użyć -Iargumentu):

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

Wiem, że serwer WWW działa, ponieważ mogę połączyć się z nim za pomocą telnet z systemu Windows:

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

Podejrzewam, że brakuje mi flagi konfiguracji lub argumentu wiersza poleceń.

Nate
źródło
Ok, ugryzę. Dlaczego nie skorzystać z IPv4? Jeśli o to chodzi, dlaczego w ogóle włączono telnet?
John Gardeniers,
1
@John Nate próbuje telnet na port 80. Twój serwer internetowy poczuje się samotny i uschnie, jeśli nie będziesz z nim okresowo rozmawiać.
Gerald Combs,
2
@John Gardeniers: Eksperymentuję z IPv6, ponieważ przewiduję, że będę musiał go wdrożyć w ciągu najbliższych 12-18 miesięcy. Ponadto, jak mówi Gerald, telnet klient jest przydatnym narzędziem do testowania podstawowej łączności z serwerami internetowymi lub e-mail. Nie widziałem serwera Telnet od co najmniej 10 lat.
Nate
@Gerald i @Nate, widziałem „Jak mogę telnet do hosta IPv6”, co według mnie mówi protokół telnet, w którym to momencie zawsze drżę i przestaję czytać. Oczywiście, gdyby tytuł brzmiał: „Jak korzystać z programu telnet, aby się połączyć ...” Przeczytałbym całe pytanie. Przepraszam.
John Gardeniers,

Odpowiedzi:

11

Prefiks fe80 :: / 16 dotyczy adresów lokalnych i są one wyjątkowe. Spróbuj uruchomić

netstat -nr

w systemie OS X i

netsh int ipv6 show routes

w systemie Windows. W OS X najprawdopodobniej zobaczysz osobną trasę fe80 :: dla każdego interfejsu, np. Dla lo0 i en1. Windows (przynajmniej XP) wydaje się tego nie robić. Ponieważ OS X ma wiele tras do tego samego prefiksu, musisz użyć indeksu stref, aby skierować ruch we właściwym kierunku:

$ telnet -6 fe80::…%en1 80
Gerald Combs
źródło
Dziękuję, zadziałało. I dzięki za wyjaśnienie, dlaczego działało na Windowsie, a nie na OS X.
Nate
4

Interfejs może i zwykle będzie posiadał wiele adresów IPv6. Adres lokalny dla łącza jest tworzony automatycznie z zakresu fe80 :: / 16 i nie jest routowany (połączenie punkt-punkt). Jak wspomina Gerald Combs , musisz określić indeks strefy, jeśli nie możesz określić, którego interfejsu użyć.

Do regularnego użytku i połączeń poza linkiem lokalnym musisz dodać do interfejsu adresy routowalne. Można to zrobić, pobierając własny zakres IPv6 od usługodawcy internetowego (lub od dostawcy tunelu, takiego jak SixXS lub he.net), i dystrybuując je na urządzenia za pośrednictwem ogłoszenia routera, DHCPv6 lub ręcznie.

Jeśli tylko testujesz, możesz również użyć specjalnego zakresu adresów IP „Unicast Unicast” fc00 :: / 7, który powinien być używany do tego zgodnie z RFC4193:

Ten dokument definiuje format adresu emisji pojedynczej IPv6, który jest globalnie unikalny i jest przeznaczony do komunikacji lokalnej, zwykle wewnątrz witryny. Adresy te nie powinny być routowalne w globalnym Internecie

Sprawdź tę stronę , od której możesz zacząć, generując dla siebie zakres.

Martijn Heemels
źródło
Unikalne adresy lokalne będą moim następnym krokiem. Dzięki za doskonały link!
Nate
0

Wydaje mi się, że znalazłeś błąd w linku lokalne adresy fe80 ::. Działa dla mnie przy użyciu mojego adresu publicznego, nawet jeśli są to linki lokalne.

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

Spróbuj uzyskać prawdziwe adresy v6.

bahamat
źródło
1
Adres lokalny dla łącza nie jest mniej rzeczywisty , ale może być mniej przydatny w zależności od przypadku użycia.
Gerald Combs,
Adres :: 2001 nie jest linkiem lokalnym. Jest to zasięg z możliwością routingu i nie należy go mylić z lokalną rezerwacją łącza fe80 :: / 16. Nie używaj tego terminu niewłaściwie, ponieważ spowoduje to zamieszanie.
Martijn Heemels,
Miałem na myśli link lokalny, ponieważ fizycznie host znajduje się w tej samej domenie transmisji Ethernet.
bahamat