Dodavanje druge podmreže u VPN od lokacije do lokacije: dva puta
Tuneli zasnovani na politici traže odgovarajuće selektore na obje strane; oni zasnovani na ruti traže rutu. Odaberite pravi put i prvo popravite povratnu rutu.
Dodavanje druge podmreže u radni tunel od lokacije do lokacije traje pet minuta kod jednog dizajna i gotovo cijelo poslijepodne kod drugog. Kada tunel instalira rute za prefikse koje navedete, dodate rutu i promet je slijedi. Kada pregovara jedan fiksni par selektora, novi prefiks ostaje nezaštićen dok se obje strane ne dogovore o odgovarajućem paru. Tri stvari odlučuju o vašem slučaju: šta konfiguracija svake strane zaista opisuje, da li se pregovarani promet sužava na najmanji odgovarajući par i ko posjeduje povratni put za novi raspon.
Čitajte kernel, a ne oznaku stanja
Tunel koji prijavljuje vezu instalirao je barem jednu podređenu asocijaciju, ali ne nužno onu koju mislite. Na Linuxu kernel pokazuje šta se primjenjuje: ip xfrm policy navodi parove selektora, a swanctl --list-sas (ili stariji ipsec statusall) pokazuje šta su strane pregovarale, uključujući selektore prometa u svakom smjeru. Ako se novi prefiks ne pojavljuje ni u jednom, nezaštićen je bez obzira šta kaže konfiguracijska datoteka.
Uporedite to s tablicom ruta. U postavci zasnovanoj na ruti tunelski uređaj je sljedeći skok za zaštićene prefikse. Postavka zasnovana na politici često nema posebnu rutu za udaljenu podmrežu, samo zadanu rutu, jer promet bira politika, a ne tablica.
Tuneli zasnovani na politici: obje strane moraju navesti novi prefiks
U terminima strongSwan selektor živi u local_ts i remote_ts unutar podređene konfiguracije, nasljednicima leftsubnet i rightsubnet. Novi prefiks mora se pojaviti na obje strane zrcalno: što lokacija A zove lokalnim, lokacija B zove udaljenim. Nesklad rijetko daje čistu grešku. Strane se sužavaju na presjek, stari prefiks nastavlja raditi, 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 s novom udaljenom, a zatim primjenu. Zadržite stari unos; zamjena premješta izvornu podmrežu umjesto da je doda. Ako postojeći Phase 2 već pokriva supermrežu poput 0.0.0.0/0 ili sažeti raspon, ne dodajte uži unos pored njega: selektori koji se preklapaju instaliraju suprotstavljene politike, a redoslijed procjene odlučuje pobjednika.
IKEv1 čini svaki par podmreža vlastitim Phase 2, a strana koja uzima jedan par po razmjeni odbacuje ostale. IKEv2 može nositi nekoliko parova selektora u jednoj podređenoj asocijaciji, ali samo ako ih obje implementacije prihvate. Popis iz swanctl --list-sas je istina; ono što ste otipkali je zahtjev.
Tuneli zasnovani na ruti: ruta je politika
XFRM interfejs ili VTI uređaj nosi promet prema tablici ruta. Usmjerite novi prefiks na uređaj na obje lokacije i primjenjuje 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 prosljeđivanje detaljnije obrađuje kernel stranu.
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 tablici ruta. Dodajte prefiks samo na jednoj strani i dobijete rukovanje, odlazne pakete i tišinu, jer udaljena strana odbacuje pakete čiji izvor nije na njenoj listi. Oblik wg set zamjenjuje cijelu listu, zato ponovite prefikse koji su već radili ili ćete ih odsjeć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 opcionalna kada ste koristili wg set umjesto wg-quick. Kernel odmah prihvata novu listu dozvola, ali ništa joj ne dodaje rutu, pa lokalno generisani promet i dalje izlazi kroz zadanu kapiju. To je najčešći razlog zašto nova WireGuard podmreža radi s tunelskog hosta, a ne s laptopa.
Povratni put pada češće od tunela
Hostovi na novoj udaljenoj podmreži moraju slati odgovore natrag kroz VPN kapiju. Kada ta kapija nije njihov zadani ruter, odgovor ide na LAN ruter, koji ga odbacuje ili prosljeđuje na internet s privatnom izvornom adresom. Testirajte s hosta na udaljenoj strani, a ne s kapije: ip route get 10.30.20.15 na Linuxu ili Find-NetRoute -RemoteIPAddress 10.30.20.15 u PowerShellu pokazuje sljedeći skok koji će host zaista koristiti. Ako odgovor nije krajnja točka tunela, dodajte tamo statičnu rutu za novi prefiks.
Source NAT na lokaciji kojoj nedostaje povratna ruta legitimna je alternativa i način na koji mnoga hub-and-spoke postavljanja izbjegavaju diranje svakog servera. Primijenite ga na novi prefiks i na kapiji na strani odredišta:
iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE
Cijena je stvarna. Udaljeni dnevnici prestaju pokazivati pojedinačne izvorne adrese, a firewall pravila vezana za izvornu podmrežu stapaju se u jedno pravilo za kapiju. Odaberite to namjerno, a ne zato što je ruta nedostajala.
Firewalli su druga polovina povratnog puta. Uređaji zasnovani na zonama ne proširuju 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 smjera prije nego optužite IPsec.
Odlučite s tri pitanja, pa provjerite prometom
Kratka verzija: navodi li konfiguracija strane prefikse (zasnovano na politici) ili se promet rutira u interfejs (zasnovano na ruti)? Navode li oba kraja novi prefiks? Postoji li put natrag od nove podmreže do izvornog raspona?
| Tunnel style | Where the prefix goes | What breaks if you skip it |
|---|---|---|
| Policy-based IPsec | Selector pair on both peers | Old subnets work, the new one fails with no clear error |
| Route-based XFRM or VTI | Route into the device on both sites | Packets routed but not transformed, or the state never matches |
| WireGuard | AllowedIPs on both peers plus a route | Handshake succeeds, replies are dropped |
| Overlapping supernet | Adjust the existing entry instead | A shadowed policy wins or loses by evaluation order |
Provjera je mjesto gdje se većina promjena zatvara prerano. Ping s kapije dokazuje malo, jer kapija šalje sa sebe i često se poklapa s drugom politikom nego host. Pingajte s hosta na novoj podmreži, zatim pokrenite aplikaciju koja je potaknula promjenu i gledajte brojače, a 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 politici brojači ip xfrm state trebaju rasti u oba smjera; ravni brojači znače da je paket rutiran, ali nije odabran. Na WireGuardu wg show pokazuje prijenos po strani, a rukovanje s nula primljenih bajtova upućuje na listu dozvola udaljene strane ili njen povratni put.
Završite tako što ćete zabilježiti prefiks, selektor ili rutu strane, odluku o povratnom putu i firewall unos uz ostatak inventara tunela. Zatim ponovo pokrenite jednu kapiju i testirajte: ruta dodana ručno nestaje i sljedeća osoba to ne bi trebala ponovo otkrivati.