VPN partneris pingina kitas sąsajas, nes jos yra vietinės
Vietinė maršrutų lentelė siunčia paketus į bet kurį adresą, kurį turi serveris, nesvarbu, kurioje sąsajoje jis yra. Persiuntimo nustatymai niekada neįeina į šį kelią.
WireGuard klientas prisijungia ir pingina adresą visiškai kitoje sąsajoje, ir atsakymas ateina. Įrašai rodo užklausą tik tunelyje. Niekas nesugedę, o kruopščiai išjungtas persiuntimo nustatymas tam neturi jokios įtakos. Tai dviejų kelių palyginimas: diagramoje jie atrodo panašiai, o branduolyje yra visiškai skirtingi.
Vienas kelias persiunčia paketus už ką nors kitą; kitas juos pristato pačiam serveriui.
Serveriui adresuotas paketas lieka serverio
Nuotolinis klientas siunčia IP paketą į adresą, kurį turi serveris. Maršrutizavimas užduoda vieną klausimą apie tą paketą: ar šis tikslas yra vietinis? Kiekvienas serverio turimas adresas rodomas vietinėje maršrutų lentelėje, ir ši lentelė tikrinama prieš pagrindinę, todėl paketas patenka į paties serverio tinklo krūvą, o ne išeina per kitą sąsają. Atsakymas sugeneruojamas vietiškai, ir jis grįžta per tunelį, nes užklausa atėjo iš ten.
Tai visas mechanizmas. Persiuntimas nevyksta, sąsajos būsenos pokytis nedalyvauja, o aptariamam adresui nereikia būti pasiekiamam iš niekur kitur.
Kodėl ip_forward netaikomas
Persiuntimas valdo paketus, kurie turi išeiti per kitą sąsają, nei ta, kuria atėjo. Ping į patį serverį niekada neina tuo keliu: paketas sunaudojamas vietiškai, o atsakymas sugeneruojamas vietiškai. Todėl nustatymas net.ipv4.ip_forward=0 čia nieko nekeičia, o persiuntimo grandinės taisyklė šio srauto niekada nemato. Teisinga kontrolė yra įvesties kelyje, apribota įeinančios sąsajos arba šaltinio.
Štai kodėl persiuntimo išjungimas ir prielaida, kad serveris yra izoliuotas, sukuria klaidingą saugumo jausmą.
Perskaitykite vietinę lentelę, kuri nusprendė
ip rule show paprastai praneša apie nulio prioriteto taisyklę, kuri visus ieškojimus pirmiausia siunčia į vietinę lentelę, o ip route show table local išvardija pačio serverio adresus vietine apimtimi. Šioje lentelėje yra adresai sąsajų, kurios administraciškai išjungtos, bet dar sukonfigūruotos. Statiškai priskirti IPv4 adresai paprastai išlieka nutrūkus ryšiui, ir būtent todėl ping į išjungtą tiltą gali vis dar pavykti ir nustebinti operatorių.
IPv6 šiuo klausimu nesutinka. Jo adresai paprastai atšaukiami, kai ryšys nutrūksta, nebent nustatytas keep_addr_on_down. Palyginkite šeimas, o ne manykite, kad viena taisyklė apima abi.
Ką partneris iš tikrųjų pasiekia
Atsakymas iš paties maršrutizatoriaus adreso segmente nieko nesako apie mašinas už to segmento. Partneris negali pasiekti serverio už kitos sąsajos šiuo keliu; jis pasiekia tik adresus, kuriuos turi pats maršrutizatorius. Paslaugos testavimas atskirame LAN serveryje, o ne ping į maršrutizatoriaus adresą, yra tai, kas nustato, ar persiuntimas apskritai leidžiamas.
Partnerio apribojimas paslaugomis, susietomis su tunelio adresu, yra įvesties politikos klausimas. Leiskite norimą paslaugą tunelio sąsajoje ir apribokite šaltinius, kuriems leidžiama ja naudotis, nes paketas tikrai ten atvyksta.
Patikrinkite ir adresus, kuriuos ketinote išimti. Adreso pašalinimas iš sąsajos yra patikimesnis nei ugniasienės taisyklių krūvos ant pasenusio adreso.