Dodavanje druge podmreže u tunel između lokacija koji radi traje pet minuta u jednom dizajnu i skoro celo popodne u drugom. Kada tunel instalira rute za prefikse koje navedete, dodate rutu i saobraćaj je prati. Kada pregovara jedan fiksni par selektora, novi prefiks ostaje nezaštićen dok se obe strane ne dogovore o odgovarajućem paru. Tri stvari odlučuju: šta konfiguracija svake strane zaista opisuje, da li se pregovarani saobraćaj sužava na najmanji odgovarajući par i kome pripada povratni put za novi opseg.

Čitajte kernel, ne oznaku stanja

Tunel koji prijavljuje vezu instalirao je bar jednu podređenu asocijaciju, ali ne nužno onu koju mislite. Na Linuxu kernel pokazuje šta se primenjuje: ip xfrm policy navodi parove selektora, a swanctl --list-sas (ili stariji ipsec statusall) pokazuje šta su strane pregovarale, uključujući selektore saobraćaja u svakom smeru. Ako novi prefiks nema ni u jednom, nezaštićen je, šta god govorio konfiguracioni fajl.

Uporedite sa tabelom ruta. U postavci zasnovanoj na rutama tunelski uređaj je sledeći skok za zaštićene prefikse. Postavka zasnovana na pravilima često nema posebnu rutu za udaljenu podmrežu, samo podrazumevanu rutu, jer saobraćaj bira pravilo, a ne tabela.

Zasnovano na pravilima: obe strane moraju navesti novi prefiks

U terminima strongSwan selektor živi u local_ts i remote_ts unutar podređene konfiguracije, naslednicima leftsubnet i rightsubnet. Novi prefiks mora se pojaviti na obe strane ogledalski: što lokacija A zove lokalnim, lokacija B zove udaljenim. Nesklad retko daje čistu grešku. Strane se sužavaju na presek, stari prefiks nastavlja da radi, a novi tiho pada.

swanctl --load-conns
swanctl --initiate --child <child-name>
swanctl --list-sas
ip xfrm policy

Na pfSense ili OPNsense to znači drugi unos Phase 2 koji spaja novu lokalnu podmrežu sa novom udaljenom, a zatim primenu. Zadržite stari unos; zamena premešta izvornu podmrežu umesto da je doda. Ako postojeći Phase 2 već pokriva supermrežu kao 0.0.0.0/0 ili sažeti opseg, ne dodajte uži unos pored njega: selektori koji se preklapaju instaliraju suprotstavljena pravila, a redosled procene odlučuje pobednika.

IKEv1 čini svaki par podmreža sopstvenim Phase 2, a strana koja uzima jedan par po razmeni odbacuje ostale. IKEv2 može nositi nekoliko parova selektora u jednoj podređenoj asocijaciji, ali samo ako ih obe implementacije prihvate. Lista iz swanctl --list-sas je istina; ono što ste otkucali je zahtev.

Zasnovano na rutama: ruta je pravilo

XFRM interfejs ili VTI uređaj nosi saobraćaj prema tabeli ruta. Usmerite novi prefiks na uređaj na obe lokacije i primenjuje se stanje vezano za transformaciju interfejsa. Nema para selektora za sinhronizaciju, zato se ovaj dizajn bolje skalira kako se podmreže množe. strongSwan vodič za prosleđivanje detaljnije obrađuje stranu kernela.

ip route add 192.168.60.0/24 dev xfrm0
ip route get 192.168.60.10

WireGuard ide dalje. AllowedIPs je istovremeno kripto lista dozvola i, preko wg-quick, unos u tabeli ruta. Dodajte prefiks samo na jednoj strani i dobijate rukovanje, odlazne pakete i tišinu, jer udaljena strana odbacuje pakete čiji izvor nije na njenoj listi. Oblik wg set zamenjuje celu listu, zato ponovite prefikse koji su već radili ili ćete ih odseći:

wg set wg0 peer <PUBKEY> allowed-ips 192.168.10.0/24,192.168.60.0/24
ip route add 192.168.60.0/24 dev wg0

Ta druga komanda nije opciona kada ste koristili wg set umesto wg-quick. Kernel odmah prihvata novu listu, ali ništa joj ne dodaje rutu, pa lokalno stvoren saobraćaj i dalje izlazi kroz podrazumevani gejtvej. To je najčešći razlog zašto nova WireGuard podmreža radi sa tunelskog hosta, a ne sa laptopa.

Povratni put pada češće od tunela

Hostovi na novoj udaljenoj podmreži moraju da šalju odgovore nazad kroz VPN gejtvej. Kada taj gejtvej nije njihov podrazumevani ruter, odgovor ide na LAN ruter, koji ga odbacuje ili prosleđuje na internet sa privatnom izvornom adresom. Testirajte sa hosta na udaljenoj strani, ne sa gejtveja: ip route get 10.30.20.15 na Linuxu ili Find-NetRoute -RemoteIPAddress 10.30.20.15 u PowerShellu pokazuje sledeći skok koji host zaista koristi. Ako odgovor nije krajnja tačka tunela, dodajte tamo statičnu rutu za novi prefiks.

Izvorni NAT na lokaciji kojoj nedostaje povratna ruta je legitimna alternativa i način na koji mnoga hub-and-spoke postavljanja izbegavaju da diraju svaki server. Primenite ga i na novi prefiks na gejtveju na strani odredišta:

iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE

Cena je stvarna. Udaljeni dnevnici prestaju da prikazuju pojedinačne izvorne adrese, a pravila firewall-a vezana za izvornu podmrežu stapaju se u jedno pravilo za gejtvej. Izaberite to namerno, ne zato što je ruta nedostajala.

Firewall-ovi su druga polovina povratnog puta. Uređaji zasnovani na zonama ne šire zonu postojećeg tunelskog interfejsa na novu podmrežu automatski, a pravilo napisano za stari prefiks neće se poklopiti. Dodajte novu podmrežu u zonu ili u par pravila u oba smera pre nego što optužite IPsec.

Odlučite sa tri pitanja, pa proverite saobraćajem

Kratka verzija: navodi li konfiguracija strane prefikse (zasnovano na pravilima) ili se saobraćaj rutira u interfejs (zasnovano na rutama)? Navode li oba kraja novi prefiks? Postoji li put nazad od nove podmreže do izvornog opsega?

Tunnel styleWhere the prefix goesWhat breaks if you skip it
Policy-based IPsecSelector pair on both peersOld subnets work, the new one fails with no clear error
Route-based XFRM or VTIRoute into the device on both sitesPackets routed but not transformed, or the state never matches
WireGuardAllowedIPs on both peers plus a routeHandshake succeeds, replies are dropped
Overlapping supernetAdjust the existing entry insteadA shadowed policy wins or loses by evaluation order

Provera je mesto gde se većina promena zatvara prerano. Ping sa gejtveja dokazuje malo, jer gejtvej šalje sa sebe i često se poklapa sa drugim pravilom nego host. Pingujte sa hosta na novoj podmreži, zatim pokrenite aplikaciju koja je izazvala promenu i gledajte brojače, ne ikonu stanja.

tcpdump -ni any host 192.168.60.10 and (esp or udp port 4500)
ip xfrm state
wg show

Na tunelu zasnovanom na pravilima brojači ip xfrm state treba da rastu u oba smera; ravni brojači znače da je paket rutiran, ali nije izabran. Na WireGuard-u wg show prikazuje prenos po strani, a rukovanje sa nula primljenih bajtova ukazuje na listu udaljene strane ili njenu povratnu rutu.

Završite zapisivanjem prefiksa, selektora ili rute strane, odluke o povratnom putu i unosa u firewall-u zajedno sa ostatkom inventara tunela. Zatim restartujte jedan gejtvej i testirajte ponovo: ruta dodata ručno nestaje i sledeća osoba ne bi trebalo to ponovo da otkriva.

Povezani članci