Ir-rotot ta’ IPv6 bejn żewġ siti fuq VPN eżistenti
WAN b’IPv4 biss xorta tista’ ġġorr IPv6 intern. Segwi s-seletturi, ir-rotot tal-kernel, it-tqassim u l-prefiss tar-ritorn li jwarrab it-tweġibiet bil-moħbi.
Meta żżid prefiss IPv6 ma’ mina sit għal sit, il-pakkett ma jivvjaġġax kif tissuġġerixxi d-dijagramma. Il-gateway lokali jieħu l-pakkett IPv6 kollu, jikkriptah u jqiegħed quddiemu header IP ta’ barra li l-familja tal-indirizzi tiegħu hija deċiża mill-indirizzi tal-punti tat-tarf, mhux minn dak li hemm ġewwa. Il-gateway ’l bogħod ineħħi dak il-header ta’ barra u jgħaddi l-pakkett oriġinali lejn il-LAN tiegħu, fejn jerġa’ jkun pakkett IPv6 ordinarju. Mina ta’ barra u traffiku intern huma żewġ konversazzjonijiet separati li jaqsmu ċavetta, par ta’ punti tat-tarf u xejn ieħor.
Żewġ headers, żewġ familji ta’ indirizzi
Fil-modalità ta’ mina IPsec, il-pakkett IPv6 intern isir il-payload wara header ESP. Il-header ta’ barra li jġorr dak il-pakkett ESP jista’ jkun IPv4 jew IPv6, u jsegwi local_addrs u remote_addrs. WireGuard jagħmel l-istess b’inqas ċerimonja: il-pakkett intern huwa l-payload ta’ datagram UDP lejn il-punt tat-tarf tal-peer. It-tnejn iħallu l-header intern mhux mimsus, u għalhekk in-naħa l-oħra tista’ trotah wara d-dekapsulazzjoni.
It-triq bejn is-siti tara biss UDP 4500 meta IPsec juża t-traversija NAT, jew UDP 51820 għal listener WireGuard default. Kull router fit-triq jista’ jkun IPv4 biss u t-traffiku IPv6 jaqsam xorta, għax qatt ma jidher bħala pakkett IPv6 fuq dik it-triq. Dan jagħti l-ewwel qsim nadif: tcpdump -ni eth0 udp port 51820 juri t-triq kriptata, tcpdump -ni wg0 ip6 juri t-traffiku intern. Qabda ta’ barra mimlija b’waħda interna siekta tfisser li l-kernel mhux qed ipoġġi IPv6 fil-mina; dan huwa rotot jew politika, mhux stat tal-link.
Il-gateway ukoll inaqqas il-Hop Limit intern meta jgħaddi, allura l-punti tat-tarf jgħoddu bħala routers fit-triq IPv6. L-għadd ta’ hops ta’ barra u l-Hop Limit intern jiċċaqilqu indipendentement, u pakkett li jmut fil-gateway ’l bogħod miet fit-tqassim, mhux fil-kriptaġġ.
Is-seletturi u AllowedIPs huma l-lista tal-permessi
IKEv2 jinnegozja liema prefissi interni child SA tista’ ġġorr. Fuq strongSwan 5.9 u wara, li tiktebhom f’swanctl.conf jidher hekk:
children {
net6 {
local_ts = 2001:db8:aa::/48
remote_ts = 2001:db8:bb::/48
mode = tunnel
esp_proposals = aes256gcm16-prfsha384-ecp384
start_action = trap
}
}
Ħalli barra local_ts u remote_ts u strongSwan jiddeduċihom mis-subnets tal-interface li jgħodd. Fuq host dual-stack dik is-shortcut spiss tagħti par IPv4 biss: is-SA tinżel u IPv6 jiġi rrifjutat qabel ma jasal għall-kodiċi ESP. Li tikteb iż-żewġ prefissi jagħmel is-SA eliġibbli biex iġġorrhom, u start_action = trap iqajjimha mal-ewwel pakkett li jaqbel.
WireGuard għandu lista waħda li tagħmel żewġ xogħlijiet. Fil-blokka tal-peer, AllowedIPs = 2001:db8:bb::/48, fd00:bb::/48 hija kemm ir-rotta installata meta tibgħat kif ukoll il-filter applikat meta tirċievi: pakkett dekriptat li s-sors intern tiegħu jaqa’ barra mil-lista ta’ dak il-peer jintrema bil-moħbi. wg-quick iżżid rotta għal kull entrata, allura l-blokka tal-peer hawn taħt m’għandhiex bżonn kmand ip -6 route separat.
[Interface]
Address = 2001:db8:aa:ff::1/64, fd00:aa:ff::1/64
ListenPort = 51820
[Peer]
PublicKey = <site-b-public-key>
Endpoint = 203.0.113.20:51820
AllowedIPs = 2001:db8:bb::/48, fd00:bb::/48
Iż-żewġ listi jridu jkunu f’mira: sit B jaċċetta l-prefiss ta’ sit A bħala selettur remot u jrota lura, u l-mina taħdem biss meta ż-żewġ direzzjonijiet jaqblu. Lista asimmetrika tagħti s-sintomu li jqatta’ l-aktar ħin — handshake f’saħħtu, counters li jiċċaqilqu fuq naħa waħda, u ping minn A għal B li jirnexxi waqt li xejn minn B ma jasal għand A.
It-tqassim, ir-rotot u l-prefiss tar-ritorn
Linux mhux se jgħaddi IPv6 sakemm ma tgħidlux, u s-setting hija għal kull namespace mhux għal kull interface:
sysctl -w net.ipv6.conf.all.forwarding=1
ip -6 route add 2001:db8:bb::/48 dev wg0
ip -6 route get 2001:db8:bb::10 from 2001:db8:aa::10
It-tieni linja hi dik li n-nies jinsa fil-proġetti bbażati fuq rotot. IPsec ibbażat fuq politika jinstalla policy XFRM li taqbel mal-prefissi, imma setup ibbażat fuq rotot b’vti6 jew WireGuard għandu bżonn rotta IPv6 vera li tindika lejn dak id-dispożittiv. Żomm is-sysctl b’mod persistenti taħt /etc/sysctl.d/; inkella reboot jerġa’ jpatti t-tqassim għal mitfi bil-moħbi.
It-tqassim għandu effet sekondarju li jiswa li tkun taf: il-kernel imbagħad jinjora r-router advertisements sakemm net.ipv6.conf.<wan>.accept_ra mhux 2, allura gateway li l-indirizz WAN tiegħu jasal permezz ta’ SLAAC jista’ jitlef ir-rotta default fil-mument li tattiva t-tqassim. Issettja accept_ra = 2 fuq dik l-interface fl-istess fajl u r-rotta tibqa’ ħajja. Il-qalba ta’ sit B trid titgħallem ukoll 2001:db8:aa::/48 mill-gateway tal-mina, permezz ta’ rotta statika jew protokoll ta’ rotot fuq il-mina, inkella r-risposta tmut ġewwa n-netwerk ta’ B stess.
Verifika f’erba’ passi li tillokalizza l-ksur
Aħdem f’din l-ordni u waqaf fl-ewwel pass li jfalli, għax kull pass wara jiddependi mill-preċedenti.
- Seletturi:
swanctl --list-sasgħandu juri l-par ta’ prefissi IPv6 fuq il-child SA, jewwg show wg0 allowed-ipsil-prefiss remot bilatest-handshakesriċenti. - Rotta tal-kernel:
ip -6 route get 2001:db8:bb::10trid twieġeb bl-apparat tal-mina, mhux bl-interface WAN. - Qabda interna:
tcpdump -ni wg0 ip6waqt li tagħmel ping bejn hosts LAN veri. Pakketti li joħorġu imma ħadd li jiġi lura jindikaw ir-rotta jew il-firewall ta’ B; l-ebda pakkett ma jindika lura lejn il-pass 1 jew 2. - Destinazzjoni: fuq il-host B,
ss -6 -ltnjikkonferma li s-servizz jisma’ fuq IPv6, u l-counters lokali tal-firewall juru jekk il-pakkett ġiex aċċettat jew skartat.
L-MTU tidħol fl-istess passa. Ir-routers IPv6 ma jfarrgux, allura pakkett kbir wisq jiġi skartat u Packet Too Big jerġa’ lura għall-mittent. Jekk il-handshakes u l-pings żgħar jaħdmu imma trasferiment ta’ fajl jieqaf, naqqas il-payload sakemm jgħaddi: ping -6 -s 1400 -c 3 2001:db8:bb::10. L-interfaces WireGuard għandhom default MTU ta’ 1420 bytes u IPsec fuq IPv4 inaqqas aktar, allura li tiffissa l-MTU interna jiswa aktar milli tittama għal skoperta tal-MTU tal-passaġġ minn firewall li jwarrab ICMPv6.
Modalitajiet ta’ falliment li jidhru bħal problemi ta’ firewall
L-aktar komuni mhix firewall xejn: is-servizz jingħaqad ma’ 0.0.0.0 minflok ::, ir-rekord AAAA jeżisti, u l-klijent jirċievi rifjut mgħaġġel fuq IPv6 li browser dual-stack jaħbi billi jerġa’ lura għal IPv4. Jekk jonqsu biss xi applikazzjonijiet, iċċekkja l-familja li qed tisma’ qabel ma tmiss sett ta’ regoli.
It-tieni hu l-filtraġġ ICMPv6. Neighbor Discovery u Packet Too Big huma parti mill-operat normali, mhux mid-dijanjosi, u politika li tarmi l-ICMPv6 kollu tipproduċi mina li tikkonnettja, tawtentika u mbagħad tieqaf fuq kull ħaġa akbar minn pakkett żgħir. Ippermetti t-tipi li t-triq tiddependi minnhom u ħalli l-counters mixgħula biex skart ikun jidher.
It-tielet hu prefiss miżjud mal-mina imma qatt mal-pjan tal-indirizzi tas-sit li jippossjedih, allura l-ebda router ma jħabbar u l-ebda host ma jista’ jwieġeb minnu. Ibda bi prefiss wieħed u par ta’ hosts, ipprova ż-żewġ direzzjonijiet bl-erba’ passi, imbagħad żid il-bqija; prefiss miksur jibqa’ linja waħda f’konfigurazzjoni minflok redesign. L-unika referenza uffiċjali li tiswa li tibqa’ miftuħa hija RFC 8200, li tiddefinixxi l-header li l-mina ġġorr.