Teise alavõrgu lisamine saidi-vahelisele VPN-ile: kaks teed
Poliitikapõhised tunnelid vajavad mõlemal pool sobivaid selektoreid; marsruudipõhised vajavad marsruuti. Valige õige tee ja parandage kõigepealt tagasitee.
Teise alavõrgu lisamine töötavale saidi-vahelisele tunnelile võtab ühes lahenduses viis minutit ja teises peaaegu kogu pärastlõuna. Kui tunnel paigaldab marsruudid nimetatud prefiksitele, lisate marsruudi ja liiklus järgib seda. Kui see läbiräägib ühe fikseeritud selektoripaari, jääb uus prefiks kaitsmata, kuni mõlemad pooled lepivad kokku sobivas paaris. Kolm asja otsustavad juhtumi: mida kummagi poole konfiguratsioon tegelikult kirjeldab, kas läbiräägitud liiklus kitseneb väikseima sobiva paarini ja kellele kuulub uue vahemiku tagasitee.
Lugege tuuma, mitte oleku silti
Tunnel, mis teatab ühendusest, on paigaldanud vähemalt ühe alamassotsiatsiooni, kuid mitte tingimata selle, mida arvate. Linuxis näitab tuum, mida rakendatakse: ip xfrm policy loetleb selektoripaarid ja swanctl --list-sas (või vanem ipsec statusall) näitab, milles pooled kokku leppisid, sealhulgas liiklusselektorid kummaski suunas. Kui uut prefiksit kummaski pole, on see kaitsmata, ükskõik mida konfiguratsioonifail ütleb.
Võrrelge seda marsruuditabeliga. Marsruudipõhises lahenduses on tunnelseade kaitstud prefiksite järgmine hüpe. Poliitikapõhises lahenduses pole sageli kaugvõrgu jaoks eraldi marsruuti, ainult vaikemarsruut, sest liiklust valib poliitika, mitte tabel.
Poliitikapõhised tunnelid: mõlemad pooled peavad uue prefiksi loetlema
strongSwan terminites elab selektor alamkonfiguratsioonis local_ts ja remote_ts all, leftsubnet ja rightsubnet järeltulijates. Uus prefiks peab mõlemal pool peegelduma: mida sait A nimetab kohalikuks, seda sait B nimetab kauged. Erinevus annab harva puhta vea. Pooled kitsenevad lõikumiseni, vana prefiks töötab edasi ja ainult uus ebaõnnestub vaikselt.
swanctl --load-conns
swanctl --initiate --child <child-name>
swanctl --list-sas
ip xfrm policy
pfSense või OPNsense puhul tähendab see teist Phase 2 kirjet, mis seob uue kohaliku alavõrgu uue kaugvõrguga, ja seejärel rakendamist. Jätke vana kirje alles; asendamine liigutab algse alavõrgu selle asemel, et seda lisada. Kui olemasolev Phase 2 katab juba supervõrku nagu 0.0.0.0/0 või kokkuvõetud vahemikku, ärge lisage kõrvale kitsamat kirjet: kattuvad selektorid paigaldavad võistlevad poliitikad ja hindamisjärjekord otsustab võitja.
IKEv1 teeb igast alavõrgupaarist oma Phase 2 ja pool, mis võtab ühe paari vahetuse kohta, jätab ülejäänud kõrvale. IKEv2 suudab ühes alamosas kanda mitut selektoripaari, kuid ainult siis, kui mõlemad rakendused need vastu võtavad. Loend swanctl --list-sas juurest on tõde; see, mille te trükkisite, on palve.
Marsruudipõhised tunnelid: marsruut on poliitika
XFRM-liides või VTI-seade kannab liiklust marsruuditabeli järgi. Suunate uue prefiksi mõlemas saidis seadmele ja rakendub liidese teisendusega seotud olek. Sünkroonida pole ühtki selektoripaari, seepärast skaleerub see lahendus alavõrkude kasvades paremini. strongSwani edastusjuhend käsitleb tuuma poolt üksikasjalikumalt.
ip route add 192.168.60.0/24 dev xfrm0
ip route get 192.168.60.10
WireGuard läheb kaugemale. AllowedIPs on korraga krüpto lubatud loend ja wg-quick kaudu marsruuditabeli kirje. Lisage prefiks ainult ühele poolele ja saate käepigistuse, väljuvad paketid ja vaikuse, sest kaugpool viskab paketid, mille allikas pole selle loendis. Vorm wg set asendab kogu loendi, seega korrake prefiksid, mis juba töötasid, muidu lõikate need maha:
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
See teine käsk pole valikuline, kui kasutasite wg set asemel wg-quick. Tuum võtab uue loendi kohe vastu, kuid miski ei lisa sellele marsruuti, seega kohalikult loodud liiklus väljub endiselt vaikelüüsist. See on kõige levinum põhjus, miks uus WireGuard-alavõrk töötab tunneli hostist, mitte sülearvutist.
Tagasitee ebaõnnestub sagedamini kui tunnel
Uue kaugvõrgu hostid peavad vastused tagasi saatma VPN-lüüsi kaudu. Kui see lüüs pole nende vaikemarsruuter, läheb vastus LAN-marsruuterile, mis selle kas viskab ära või edastab internetti privaatse lähteaadressiga. Testige kaugpoolse hosti pealt, mitte lüüsist: ip route get 10.30.20.15 Linuxis või Find-NetRoute -RemoteIPAddress 10.30.20.15 PowerShellis näitab järgmist hüpet, mida host tegelikult kasutab. Kui vastus pole tunneli lõpp-punkt, lisage sinna uue prefiksi jaoks staatiline marsruut.
Lähteaadressi NAT saidil, millel tagasitee puudub, on seaduslik alternatiiv ja viis, kuidas paljud hub-and-spoke lahendused iga serveri puutumist väldivad. Rakendage seda ka uuele prefiksile sihtkohapoolses lüüsis:
iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE
Hind on tegelik. Kauglogid lakkavad näitamast üksikuid lähteaadresse ja algse alavõrgu külge seotud tulemüürireeglid taanduvad lüüsi jaoks üheks reegliks. Valige see teadlikult, mitte sellepärast, et marsruut puudus.
Tulemüürid on tagasitee teine pool. Tsoonipõhised seadmed ei laienda olemasoleva tunneliliidese tsooni automaatselt uuele alavõrgule ja vana prefiksi jaoks kirjutatud reegel ei sobi. Lisage uus alavõrk tsooni või reeglipaari mõlemas suunas, enne kui IPsec-i süüdistate.
Otsustage kolme küsimusega, seejärel kontrollige liiklusega
Lühiversioon: kas poole konfiguratsioon nimetab prefikseid (poliitikapõhine) või marsruuditakse liiklus liidesesse (marsruudipõhine)? Kas mõlemad otsad loetlevad uue prefiksi? Kas uuest alavõrgust on tee tagasi algse lähtevahemikuni?
| 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 |
Kontrollimine on koht, kus enamik muudatusi suletakse liiga vara. Ping lüüsist tõestab vähe, sest lüüs saadab iseendast ja sobib sageli teise poliitikaga kui host. Pingige uue alavõrgu hostist, käivitage siis rakendus, mis muudatuse põhjustas, ja jälgige loendureid, mitte olekuikooni.
tcpdump -ni any host 192.168.60.10 and (esp or udp port 4500)
ip xfrm state
wg show
Poliitikapõhises tunnelis peaksid ip xfrm state loendurid kasvama mõlemas suunas; lamedad loendurid tähendavad, et pakett marsruuditakse, kuid ei valita. WireGuardis näitab wg show ülekannet poole kohta ja null vastuvõetud baidiga käepigistus osutab kaugpoolse loendile või selle tagasiteele.
Lõpetage, registreerides prefiksi, poole selektori või marsruudi, tagasitee otsuse ja tulemüüri kirje koos ülejäänud tunneloendiga. Seejärel taaskäivitage üks lüüs ja testige uuesti: käsitsi lisatud marsruut kaob ja järgmine inimene ei peaks seda uuesti avastama.