Dvojni sklad VPN bazeni: naslavljanje obeh družin v strongSwan
Notranji bazeni IPv4 in IPv6, zaščiteni prefiksi in družina zunanjega tunela so tri ločene odločitve. Načrtujte vsako, preden to imenujete dvojni sklad.
Prehod lahko potujočemu uporabniku dodeli tako navidezni naslov IPv4 kot IPv6, medtem ko zunanji tunel še vedno potuje po IPv4. To so neodvisne odločitve, in prav obravnavanje teh kot ene je mesto, kjer se načrti dvojnega sklada običajno sesujejo. Notranje družine odjemalca, zaščiteni prefiksi, do katerih lahko doseže, in transport, ki nosi enkapsulacijo, so tri ločene izbire.
Največ zmede nastane, ker se beseda dvojni sklad uporabi za zasnovo, ki je dvojni sklad le na enem mestu. Storitev je lahko znotraj dvojnega sklada, na svojem zunanjem naslovu enojnega sklada, in še vedno povsem dobro deluje za odjemalce. Česar ne more, je delovati po naključju.
Dve družini znotraj, ena pot zunaj
Zunanja povezava je IKE prek UDP in potrebuje eno dosegljivo naslovno družino od tam, kjer je odjemalec. Notranji naslov IPv6 ne zahteva ponudnika s podporo IPv6, ker je notranji paket koristni tovor znotraj zunanjega. Številne delujoče namestitve prenašajo prefikse IPv6 prek povezave navzgor, ki podpira samo IPv4.
Kar zunanja pot zares omejuje, sta dosegljivost in prehod skozi NAT. Če prehod oglašuje samo naslov IPv4, se odjemalec v omrežju samo z IPv6 sploh ne more povezati, ne glede na to, katere bazene ste nastavili. Družino zunanje poti izberite glede na svojo populacijo odjemalcev, ne glede na notranji načrt naslovov.
Dajte odjemalcu naslov v vsaki družini
Zahteva za obe družini je ena vrstica na strani odjemalca, če ima prehod kaj razdeliti. Imenovani bazeni držijo vire ločene od storitvenih omrežij, in prav ta lastnost naredi pravila požarnega zidu berljiva tudi šest mesecev pozneje.
pools {
pool4 { addrs = 10.90.0.0/24 }
pool6 { addrs = fd42:90::/64 }
}
connections {
private-access {
version = 2
pools = pool4, pool6
local { auth = pubkey certs = gateway.pem id = vpn.example.com }
remote { auth = pubkey cacerts = ca.pem vips = 0.0.0.0, :: }
children {
private { local_ts = 10.60.0.0/16, fd42:60::/48 remote_ts = dynamic }
}
}
}
Vrednost vips zahteva naslov iz vsake družine, seznam bazenov pa odloči, od kod prihajajo ti naslovi. Dokumentacija strongSwan o navideznih IP naslovih pokriva več zahtev in dodeljevanje bazenov, vključno s tem, da odjemalec, ki zahteva določen naslov, izraža le preferenco, ki jo lahko odgovarjajoča stran razveljavi. Ne gradite pravila dostopa, ki predpostavlja, da odjemalec vedno prejme isto vrednost.
Ustvarite svoj edinstveni lokalni prefiks, namesto da kopirate primer. Dve organizaciji, ki obe fd42::/16 to uvedeta, bosta trčenje odkrili ob prvem medsebojnem povezovanju, diagnosticiranje tega pa ni prijetno.
Izbirniki opisujejo cilje, ne virov
Lokalni izbirniki prometa podrejenega SA povedo, katera zaščitena omrežja stojijo za prehodom, oddaljeni izbirniki pa opisujejo, kaj lahko odjemalec uporabi kot vir. Naslov navideznega bazena spada na izvorno stran te politike; njegova uvrstitev na seznam ciljev je pogosto napačno branje konfiguracije.
Obe družini potrebujeta povratne poti in dovoljeno posredovanje na prehodu. Dodajanje prefiksa izbirniku brez poti nazaj v bazen ustvari tunel, ki se vzpostavi, prepusti eno smer prometa in tiho zavrže odgovor. Izbirnik je politika, ne usmerjanje.
Držite bazene in storitvene prefikse v ločenih blokih svojega načrta naslovov. Ko se prekrijejo, se lahko pot, ki bi morala doseči zaščitenega gostitelja, ujema z naslovom bazena in izgine v tunelu.
DNS in povratna pot odločata, ali je videti dokončano
Odgovori razreševalnika so neodvisni od transporta, uporabljenega za dosego razreševalnika. Ime lahko vrne zapis A, zapis AAAA ali oba, odjemalec pa izbere po svojih preferenčnih pravilih. Če notranja storitev objavi zapis AAAA, a nihče ne usmerja tega prefiksa, bodo odjemalci v omrežjih dvojnega sklada najprej poskusili pot IPv6 in tam ostali, dokler ne spodleti. V konfiguraciji tunela medtem nič ne izgleda narobe.
Zato se odločite za vsako ime, katere družine naj bodo uporabne, nato preverite, ali je ustrezni prefiks v izbirniku in ima povratno pot. To je odločitev za vsako storitev posebej. Objavljanje obeh vrst zapisov brez razlike je način, kako delujoča storitev samo z IPv4 začne polovici uporabnikov prekoračevati čas.
Preverite obe družini, preden to razglasite za končano
Konfiguracija, ki se naloži, ni konfiguracija, ki deluje. Preberite stanje, ki ga poroča demon, potrdite dodelitve bazenov in si nato oglejte poti, ki jih je odjemalec dejansko namestil.
swanctl --list-sas
swanctl --list-pools
ip -6 addr show scope global
ip -6 route get fd42:60::10
Prva dva ukaza pokažeta vzpostavljene podrejene SA in kateri bazeni imajo še proste naslove, tako da načrt, ki deluje pri prvem odjemalcu in spodleti pri desetem, postane viden. Zadnja dva pokažeta, ali je odjemalec prejel globalni naslov IPv6 iz bazena in kam bi promet do zaščitenega prefiksa v resnici šel. Primerjajte dodeljeni naslov z bazenom, ki ste ga nastavili, ne z naslovom, na katerega ste upali. Če je odgovarjajoča stran po svoji politiki izbrala drugo vrednost, morajo poti in pravila požarnega zidu še vedno ustrezati njeni izbiri.
Nato preizkusite enega zaščitenega gostitelja na družino in ime, ki se razreši v obe. Preizkus ene družine vam ne pove nič o tisti polovici načrta, ki je niste vadili, in tam običajno živi manjkajoča pot.