169.254 преку VPN: адресата никогаш не била рутабилна
Дестинација од link-local тип се отфрла пред да стигне до тунелот, така што додавањето рути само го шири дефектот. Изберете помеѓу поправка на подмрежата и мост.
Додавате рута, тунелот се крева, а ping кон другата страна сепак умира со целосен губиток наместо «network unreachable». Таа разлика е важна, зашто го пренасочува погледот од табелата за рутирање кон самата адреса. Дестинација 169.254 е link-local, а нејзиниот опсег по дизајн завршува на првиот хоп, не поради лоша конфигурација.
Одлуката што следи е тесна и вреди да се донесе експлицитно: поправете ја подмрежата на страната на серверот или проширете го сегментот од слој 2 за адресата повторно да добие локално значење. Сè друго, вклучително поширока рута, само го применува истиот дефект на повеќе дестинации.
Адресата не е без рута, таа е нерутабилна
IPv4 link-local адресите сами си се доделуваат кога ништо подобро не одговара; оттука доаѓа автоматското приватно адресирање во Windows и соодветниот резервен начин во други системи. Опсегот се користи на секоја врска истовремено и токму затоа функционира: два хоста во ист сегмент можат да разговараат без никаква координација.
Поради истото својство рутерот не смее да ги препраќа овие пакети меѓу мрежи. Примање пакет адресиран до link-local дестинација и испраќање низ друг интерфејс би создало двосмисленост, бидејќи «локалното» кај испраќачот и «локалното» кај примачот се различни места. Нема пребарување што би одлучило кое од двете го мислел испраќачот. Препраќањето овде не е политичка опција што администраторот може да ја вклучи; класата на адреси го исклучува.
Затоа порта што 169.254.1.10 го поставува како достапно преку тунелот бара од јадрото нешто што форматот на адресата го забранува. Пакетот се отфрла многу пред да го достигне далечниот хост, и никаква прецизност на рутата тоа не го менува.
Зошто тунелот го прави проблемот со опсег видлив
Интерфејс TUN пренесува IP пакети меѓу два партнера и нема заеднички сегмент зад себе. Нема емитување, нема ARP за другата страна и нема откривање соседи што би претворило link-local дестинација во адреса од слојот на врска.
Симптомите совпаѓаат точно кога знаете што да барате. Рутата е во табелата, ping известува целосен губиток наместо недостапна мрежа, а табелата на соседи покажува нецелосен или неуспешен запис. Снимка на тунелот го покажува пакетот како излегува, што ги насочува луѓето кон далечниот крај наместо кон класата на адресата.
Во Windows има втор, навидум неповрзан симптом со истиот корен: адаптер на кој му останала само link-local адреса нема употреблива порта, па идентификацијата на мрежата не може да ја класифицира врската и профилот на огнениот ѕид паѓа на јавен. Тунелот не е причината; адресата е.
Одлучете со три прашања
Изборот меѓу поправка на подмрежата и премостување на врската зависи од три услови, и секој од нив може да го реши пред да отворите конфигурациска датотека.
| Question | If yes | If no |
|---|---|---|
| Can the far-side host be given a routable address? | Change the host or fix DHCP and route normally | Continue to the next question |
| Does the device accept a static address at all? | Assign one from the site's real prefix | Bridging is the only remaining option |
| Can you accept broadcast crossing the tunnel? | A bridge is viable for a small segment | Replace the device or accept no remote access |
Повеќето случаи застануваат на првото прашање. Хост со link-local адреса обично значи дека DHCP не одговорил, дека кабелот или VLAN се погрешни или дека некој ја внел адресата рачно. Тоа да се поправи е поевтино од секаква работа на тунелот и го отстранува проблемот за секој иден клиент, не само за овој.
Проверете ја страната на серверот пред да претпоставите нешто. Извршете ip addr show и ip route на хостот и arp -n или route print -4 на клиентот, за да видите дали префиксот навистина постои или само стар запис тврди така.
Што чини мостот кога е точниот одговор
Премостување на физички адаптер со TAP адаптер го прави далечниот клиент дел од локалниот домен на емитување. Тогаш емитувањето и откривањето соседи работат, и link-local адресата повторно добива смисла бидејќи клиентот навистина е локален на таа врска.
Трошоците се реални и треба да се кажат пред некој да се согласи. Сообраќајот на емитување го преминува тунелот, клиентот е изложен на локалниот сегмент за секоја цел, не само за услугите што му требаат, а серверот сега мора да препраќа рамки наместо да рутира пакети. Тоа е разумна размена за лабораториска маса или уред без рутабилна конфигурациска патека, и лоша стандардна поставка за далечински пристап.
Кога правите мост, потребни се двете половини: мостот на серверот и рута во профилот на клиентот што кажува кои дестинации се на другата страна. Самиот мост го остава клиентот да гаѓа, а самата рута не може да поправи класа на адреса.