Dodajesz trasę, tunel wstaje, a ping na drugą stronę nadal ginie całkowicie, zamiast zwrócić «network unreachable». Ta różnica ma znaczenie, bo odwraca wzrok od tablicy tras w stronę samego adresu. Cel 169.254 jest link-local, a jego zasięg kończy się na pierwszym hopie z założenia, nie z powodu złej konfiguracji.

Decyzja, która z tego wynika, jest wąska i warto ją podjąć wprost: naprawić podsieć po stronie serwera albo rozszerzyć segment warstwy 2, aby adres znów miał sens lokalny. Wszystko inne, łącznie z szerszą trasą, tylko sprawia, że ta sama awaria dotyczy większej liczby celów.

Adres nie jest bez trasy, jest nietrasowalny

Adresy IPv4 link-local same sobie przypisują adres, gdy nic lepszego nie odpowie; stąd bierze się automatyczne adresowanie prywatne w Windows i odpowiednik w innych systemach. Zakres jest używany na każdym łączu jednocześnie i właśnie dlatego działa: dwa hosty w tym samym segmencie mogą rozmawiać bez żadnej koordynacji.

Ta sama właściwość sprawia, że router nie może przekazywać takich pakietów między sieciami. Odebranie pakietu zaadresowanego do celu link-local i wysłanie go innym interfejsem tworzyłoby niejednoznaczność, bo «lokalne» nadawcy i «lokalne» odbiorcy to różne miejsca. Nie ma wyszukiwania, które rozstrzygnęłoby, o które z nich chodziło. Przekazywanie nie jest tu opcją polityki, którą administrator może włączyć; klasa adresów to wyklucza.

Brama, która wpisuje 169.254.1.10 jako osiągalny przez tunel, prosi więc jądro o coś, czego format adresu zabrania. Pakiet jest odrzucany długo przed dotarciem do zdalnego hosta, a żadna precyzja trasy tego nie zmienia.

Dlaczego tunel ujawnia problem zasięgu

Interfejs TUN przenosi pakiety IP między dwoma równorzędnymi punktami i nie ma za sobą wspólnego segmentu. Nie ma rozgłaszania, nie ma ARP dla drugiej strony ani wykrywania sąsiadów, które zamieniłoby cel link-local na adres warstwy łącza.

Objawy pasują dokładnie, gdy wiadomo, czego szukać. Trasa jest w tablicy, ping zgłasza całkowitą utratę zamiast sieci nieosiągalnej, a tablica sąsiadów pokazuje niepełny lub nieudany wpis. Zapis na tunelu pokazuje pakiet wychodzący, co kieruje ludzi na drugi koniec zamiast na klasę adresu.

W Windows jest drugi, pozornie niezwiązany objaw o tym samym źródle: karta, której został tylko adres link-local, nie ma użytecznej bramy, więc identyfikacja sieci nie potrafi zaklasyfikować połączenia i profil zapory trafia na publiczny. Tunel nie jest przyczyną; przyczyną jest adres.

Zdecyduj trzema pytaniami

Wybór między naprawą podsieci a mostkowaniem łącza zależy od trzech warunków i każdy z nich może go rozstrzygnąć, zanim otworzysz plik konfiguracji.

QuestionIf yesIf no
Can the far-side host be given a routable address?Change the host or fix DHCP and route normallyContinue to the next question
Does the device accept a static address at all?Assign one from the site's real prefixBridging is the only remaining option
Can you accept broadcast crossing the tunnel?A bridge is viable for a small segmentReplace the device or accept no remote access

Większość przypadków zatrzymuje się na pierwszym pytaniu. Host z adresem link-local zwykle oznacza, że DHCP nie odpowiedział, kabel lub VLAN są złe albo ktoś wpisał adres ręcznie. Naprawa jest tańsza niż jakakolwiek praca z tunelem i usuwa problem u każdego przyszłego klienta, nie tylko u tego.

Sprawdź stronę serwera, zanim cokolwiek założysz. Uruchom ip addr show i ip route na hoście oraz arp -n lub route print -4 na kliencie, aby zobaczyć, czy prefiks naprawdę istnieje, czy twierdzi to tylko stary wpis.

Ile kosztuje most, gdy jest właściwą odpowiedzią

Mostkowanie fizycznej karty z kartą TAP czyni zdalnego klienta częścią lokalnej domeny rozgłaszania. Wtedy rozgłaszanie i wykrywanie sąsiadów działają, a adres link-local znów ma sens, bo klient jest naprawdę lokalny na tym łączu.

Koszty są realne i trzeba je podać, zanim ktokolwiek się zgodzi. Ruch rozgłoszeniowy przechodzi przez tunel, klient jest wystawiony na segment lokalny w każdym celu, nie tylko w tych usługach, których potrzebuje, a serwer musi teraz przekazywać ramki zamiast trasować pakiety. To rozsądna wymiana dla stanowiska laboratoryjnego lub urządzenia bez trasowalnej ścieżki konfiguracji, a złe ustawienie domyślne dla dostępu zdalnego.

Gdy mostkujesz, potrzebne są obie połowy: most na serwerze i trasa w profilu klienta mówiąca, które cele są po drugiej stronie. Sam most pozostawia klienta w domysłach, a sama trasa nie naprawi klasy adresu.

Powiązane artykuły