Adăugați ruta, tunelul urcă, și totuși ping-ul către cealaltă parte moare cu pierdere totală în loc de «network unreachable». Diferența contează, pentru că îndreaptă privirea de la tabelul de rutare către adresa însăși. O destinație 169.254 este link-local, iar aria ei se termină la primul hop prin proiectare, nu din cauza unei configurări greșite.

Decizia care urmează este îngustă și merită luată explicit: reparați subrețeaua din partea serverului sau extindeți segmentul de nivel 2 astfel încât adresa să aibă din nou sens local. Orice altceva, inclusiv o rută mai largă, face doar ca aceeași defecțiune să se aplice mai multor destinații.

Adresa nu este fără rută, este nerutabilă

Adresele IPv4 link-local se atribuie singure când nimic mai bun nu răspunde; de aici vine adresarea privată automată din Windows și echivalentul din alte sisteme. Intervalul este folosit pe fiecare legătură simultan, și exact de aceea funcționează: două gazde din același segment pot vorbi fără nicio coordonare.

Aceeași proprietate face ca un router să nu poată transmite astfel de pachete între rețele. Primirea unui pachet adresat către o destinație link-local și trimiterea lui pe altă interfață ar crea ambiguitate, pentru că «local» al expeditorului și «local» al destinatarului sunt locuri diferite. Nu există nicio căutare care să decidă care dintre cele două a fost vizat. Transmiterea nu este aici o opțiune de politică pe care administratorul ar putea-o activa; clasa de adrese o exclude.

Așadar o poartă care instalează 169.254.1.10 ca accesibilă prin tunel cere nucleului ceva ce formatul adresei interzice. Pachetul este aruncat mult înainte de a ajunge la gazda îndepărtată, iar precizia rutei nu schimbă acest rezultat.

De ce un tunel face vizibilă problema ariei

O interfață TUN transportă pachete IP între doi parteneri și nu are niciun segment partajat în spate. Nu există difuzare, nu există ARP pentru cealaltă parte și nici descoperire de vecini care să transforme o destinație link-local într-o adresă de nivel legătură.

Simptomele se potrivesc exact când știi ce să cauți. Ruta este în tabel, ping-ul raportează pierdere totală în loc de rețea inaccesibilă, iar tabelul de vecini arată o intrare incompletă sau eșuată. O captură pe tunel arată pachetul ieșind, ceea ce îi face pe oameni să privească spre capătul îndepărtat în loc de clasa de adrese.

În Windows există un al doilea simptom, aparent fără legătură, cu aceeași rădăcină: un adaptor rămas doar cu adresă link-local nu are poartă utilizabilă, așa că identificarea rețelei nu poate clasifica conexiunea și profilul firewall-ului ajunge pe public. Tunelul nu este cauza; adresa este.

Decideți cu trei întrebări

Alegerea între repararea subrețelei și punerea unui pod pe legătură depinde de trei condiții, și oricare dintre ele o poate decide înainte de a deschide un fișier de configurare.

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

Majoritatea cazurilor se opresc la prima întrebare. O gazdă cu adresă link-local înseamnă de obicei că DHCP nu a răspuns, că un cablu sau un VLAN sunt greșite ori că cineva a scris adresa manual. Repararea costă mai puțin decât orice lucru la tunel și elimină problema pentru fiecare client viitor, nu doar pentru acesta.

Verificați partea serverului înainte de a presupune ceva. Rulați ip addr show și ip route pe gazdă, iar arp -n sau route print -4 pe client, ca să vedeți dacă prefixul există cu adevărat sau doar o intrare veche pretinde asta.

Cât costă un pod când este răspunsul corect

Punerea unui pod între un adaptor fizic și un adaptor TAP face clientul îndepărtat parte din domeniul de difuzare local. Atunci difuzarea și descoperirea vecinilor funcționează, iar o adresă link-local capătă din nou sens pentru că clientul este într-adevăr local pe acea legătură.

Costurile sunt reale și trebuie spuse înainte ca cineva să accepte. Traficul de difuzare traversează tunelul, clientul este expus segmentului local pentru orice scop și nu doar serviciilor de care are nevoie, iar serverul trebuie acum să transmită cadre în loc să ruteze pachete. Este un schimb rezonabil pentru un banc de laborator sau un dispozitiv fără cale de configurare rutabilă, și o valoare implicită proastă pentru accesul de la distanță.

Când faceți podul, sunt necesare ambele jumătăți: podul pe server și o rută în profilul clientului care spune ce destinații sunt de partea cealaltă. Doar podul lasă clientul să ghicească, iar doar ruta nu poate repara o clasă de adrese.

Articole similare