VPN партнер пингува други интерфејси затоа што тие се локални
Локалната табела за рутирање испраќа пакети до секоја адреса што ја поседува домаќинот, на кој и да е интерфејс да се наоѓа. Поставките за проследување никогаш не влегуваат на таа патека.
WireGuard клиент се поврзува и пингува адреса на сосема друг интерфејс, и одговорот пристигнува. Снимките покажуваат барање само на тунелот. Ништо не е расипано, а поставката за проследување што внимателно е исклучена нема никаква врска со тоа. Ова е споредба на две патеки што изгледаат слично на дијаграм и се сосема различни во јадрото.
Едната патека проследува пакети за некој друг; другата ги доставува до самиот домаќин.
Пакетот адресиран на домаќинот останува во домаќинот
Далечинскиот клиент испраќа IP пакет до адреса што ја поседува домаќинот. Рутирањето поставува едно прашање за тој пакет: дали оваа цел е локална? Секоја адреса што ја држи домаќинот се појавува во локалната табела за рутирање, и таа табела се разгледува пред главната, па пакетот оди во сопствениот стек на домаќинот наместо да излезе низ друг интерфејс. Одговорот се генерира локално, и се враќа низ тунелот затоа што барањето дојде оттаму.
Ова е целиот механизам. Не се случува проследување, не учествува промена на состојбата на интерфејсот, и адресата за која станува збор не мора да биде достапна од никаде друго.
Зошто ip_forward не се применува
Проследувањето управува со пакети што мора да излезат низ различен интерфејс од оној на кој пристигнале. Пингот до самиот домаќин никогаш не ја зема таа патека: пакетот се троши локално и одговорот се генерира локално. Затоа поставувањето на net.ipv4.ip_forward=0 овде не менува ништо, и правило во синџирот за проследување никогаш не го гледа тој сообраќај. Правилната контрола лежи на влезната патека, ограничена со влезниот интерфејс или изворот.
Затоа исклучувањето на проследувањето и претпоставката дека домаќинот е изолиран создаваат лажен чувство за безбедност.
Прочитајте ја локалната табела што одлучи
ip rule show обично пријавува правило со нулти приоритет што ги праќа сите пребарувања прво во локалната табела, а ip route show table local ги наведува сопствените адреси на домаќинот со локален опфат. Таа табела вклучува адреси на интерфејси што се административно исклучени но се уште конфигурирани. Статички доделените IPv4 адреси обично преживуваат прекин на врската, и токму така пингот до исклучен мост може се уште да успее и да го изненади операторот.
IPv6 се разликува токму во оваа точка. Неговите адреси обично се повлекуваат кога врската паѓа, освен ако не е поставено keep_addr_on_down. Споредете ги семејствата наместо да претпоставите дека едно правило ги покрива двете.
Што всушност достигнува партнерот
Одговор од сопствената адреса на рутерот на сегмент не кажува ништо за машините зад тој сегмент. Партнерот не може да достигне домаќин зад другиот интерфејс по оваа патска; тој достигнува само адреси што ги поседува самиот рутер. Тестирањето на услуга на одделен LAN домаќин, наместо пинг до адресата на рутерот, е тоа што утврдува дали проследувањето воопшто е дозволено.
Ограничувањето на партнерот на услуги врзани на адресата на тунелот е прашање на влезна политика. Дозволете ја саканата услуга на интерфејсот на тунелот и ограничете ги изворите што смеат да ја користат, затоа што пакетот навистина пристигнува таму.
Проверете ги и адресите што сте имале намера да ги повлечете. Отстранувањето на адреса од интерфејс е посигурно од натрупување на правила за огнена брана врз застарена адреса.