Gbígbé tunnel ró ni ìdajì tí ó rọrùn. Mo ti rí ìsopọ̀ ojú-ọ̀nà-sí-ojú-ọ̀nà tí ó dúró fún ọjọ́ púpọ̀ nígbà tí gbogbo ẹ̀rọ onílé nínú LAN tí ó jìnnà ń gba ìdákẹ́jẹ́ lásán padà, nítorí àkọ́kọ́ tí a fún tí ó wà lẹ́yìn gateway yẹn ni a ti ṣètò rẹ̀ lórí interface ṣùgbọ́n a kò tíì gbà á wọ inú tunnel rí. Àwọn àdírẹ́sì tunnel ń dáhùn ping ní gbogbo àkókò, ìdí náà sì ni kò sí ẹni tí ó wo àkọ́kọ́ náà. Èyí ni ìtòlẹ́sẹẹsẹ tí mo ń yẹ̀wò nígbà tí àkọ́kọ́ IPv6 tí a fún gbọ́dọ̀ kọjá VPN ojú-ọ̀nà: àwòrán àkọ́kọ́, àwọn yíyan ìrìn, gbígbé àti firewall, lẹ́yìn náà ọ̀nà ìpadà.

Kọ àwòrán àkọ́kọ́ kí o tó fọwọ́ kan tunnel

Ìfúnni àkọ́kọ́ ń fún ẹ̀rọ onílé tí ó béèrè rẹ̀ ní àkójọ kan. Kò fi ọ̀nà sórí peer, kò gbé àkójọ yẹn jáde gẹ́gẹ́ bí on-link, kò sì sọ fún gateway jíjìnnà ohun tí ó wà lẹ́yìn ẹ̀rọ onílé tí ń béèrè. Ìwọ̀nyí mẹ́ta ni ìwọ fúnra rẹ gbọ́dọ̀ ṣètò, wọ́n sì jẹ́ apá kan ètò àdírẹ́sì kí fáìlì ìṣètò kankan tó yípadà.

Fún ojú-ọ̀nà kọ̀ọ̀kan, kọ àkọ́kọ́ tí a fún, /64 tí a ń lò níti gidi lórí LAN, àwọn àdírẹ́sì tunnel àti ẹni tí ó ni ọ̀nà kọ̀ọ̀kan. Olùpèsè ń fún ojú-ọ̀nà A ní 2001:db8:a1::/56, tí ó ń pèsè 2001:db8:a1:10::/64 lórí LAN rẹ̀; ojú-ọ̀nà B ń pa 2001:db8:b2::/64 mọ́. Tí ojú-ọ̀nà A bá ń pèsè /64 kan náà nìkan, ẹ̀bùn méjèèjì gbọ́dọ̀ dárúkọ 2001:db8:a1:10::/64 dípò /56 gbogbo.

Ó fẹ́rẹ̀ jẹ́ nígbà gbogbo ni àṣìṣe méjì ń farahàn. Ọ̀kan ni kí a kà àkọ́kọ́ jíjìnnà sí on-link, kí a ṣe afárá rẹ̀ tàbí kí a gbé e sórí interface tunnel kí gateway lè dáhùn ìbéèrè aládùúgbò fún àwọn ẹ̀rọ onílé tí kò lè dé. Èkejì ni kí a polongo /56 gbogbo nígbà tí /64 kan ṣoṣo ni a ṣètò: tábìlì ọ̀nà ń sọ pé àkójọ náà dé, ọ̀pọ̀ àwọn àdírẹ́sì sì ń jábọ́ sínú ihò dúdú.

Mu àwọn yíyan ìrìn ẹ̀bùn méjèèjì bá àwọn ọ̀nà mu

IKEv2 àti WireGuard ẹ̀bùn méjèèjì ń kọ ìrìn tí kò bá mu, ní ìdákẹ́jẹ́ tó bẹ́ẹ̀ tí tunnel yóò ṣì dàbí aláílára.

Nínú strongSwan àwọn yíyan wà ní gbangba. Ní ojú-ọ̀nà A:

conn a-to-b
    left=2001:db8:ff::1
    leftsubnet=2001:db8:a1:10::/64
    right=2001:db8:ff::2
    rightsubnet=2001:db8:b2::/64
    auto=start

conn ojú-ọ̀nà B ń ṣàfihàn àwọn subnet méjì. Nígbà tí wọn kò bá mu, olùdáhùn ń kọ CHILD_SA pẹ̀lú TS_UNACCEPTABLE, nítorí náà child SA kò gbé ró rí bí ó tilẹ̀ jẹ́ pé IKE_SA gbé ró. Ní ẹ̀gbẹ́ méjèèjì subnet tí a ṣètò gbọ́dọ̀ dọ́gba pẹ̀lú ohun tí kernel àdúgbò ń gbà sí tunnel.

WireGuard ń gbé ìsọfúnni kan náà nínú AllowedIPs, pẹ̀lú ìyípadà kan: AllowedIPs jẹ́ àlẹ̀mọ́ orísun nígbà gbígba àti ọ̀nà nígbà fífi ránṣẹ́. Tí àkọsílẹ̀ peer ojú-ọ̀nà B fún ojú-ọ̀nà A bá fi 2001:db8:a1:10::/64 sílẹ̀, àwọn pákítì láti ojú-ọ̀nà A yóò dé pẹ̀lú handshake tí ó tọ́, a ó sì sọ wọ́n nù gẹ́gẹ́ bí aláìgbàláyè. Ìyẹn ń dá àpẹẹrẹ tí a mọ̀: handshake ń tún ara rẹ̀ ṣe nígbà gbogbo ṣùgbọ́n kò sí ìdáhùn tí ó jáde rí. Fi ẹ̀bùn méjèèjì wé wg show wg0 allowed-ips. Tún àkójọ yẹn yẹ̀wò nígbà gbogbo tí ìfúnni bá yípadà; /64 àtijọ́ ń pa ìpàdé mọ́ láàyè, ó sì ń jẹ́ kí àkọ́kọ́ tuntun má lè dé.

Kọ́kọ́ yọ gbígbé, firewall àti MTU kúrò

Kí o tó ka ìlà log mìíràn, jẹ́rìí pé àwọn gateway ń gbé nǹkan lọ gan-an. sysctl net.ipv6.conf.all.forwarding gbọ́dọ̀ dá 1 padà lórí méjèèjì, a ó sì lò ó lórí interface tunnel àti LAN pẹ̀lú. Ìdẹ̀kan wà pẹ̀lú: nígbà tí a bá tan gbígbé, interface tí ó ní accept_ra=1 yóò dáwọ́ gbígba ìkéde ẹ̀rọ onílé láti ọ̀dọ̀ olùpèsè, nítorí náà ẹ̀rọ náà lè pàdánù ọ̀nà àkọ́kọ́ òkè bí ó tilẹ̀ ń gbà dáadáa nínú tunnel. Ṣètò accept_ra=2 níbi tí a ṣì nílò RA olùpèsè.

Lẹ́yìn náà àwọn òfin firewall gbọ́dọ̀ gba àkọ́kọ́ láàyè ní ẹ̀gbẹ́ méjèèjì, ICMPv6 sì gbọ́dọ̀ yè, gan-an gẹ́gẹ́ bí wíwá aládùúgbò, packet-too-big àti destination-unreachable kì í ṣe àṣàyàn. Tí o bá sọ wọ́n nù, wíwá MTU ọ̀nà yóò bàjẹ́, ìwọ yóò sì ní àwọn ìsopọ̀ tí ó ṣí sílẹ̀ tí yóò sì dúró ní ìdáhùn ńlá àkọ́kọ́. Ẹ̀wẹ̀ àwọn òfin tí ó kéré jù ń rí báyìí:

nft add rule inet filter forward ip6 saddr 2001:db8:a1:10::/64 ip6 daddr 2001:db8:b2::/64 accept
nft add rule inet filter forward ip6 saddr 2001:db8:b2::/64 ip6 daddr 2001:db8:a1:10::/64 accept
nft add rule inet filter forward icmpv6 type { packet-too-big, nd-neighbor-solicit, nd-neighbor-advert } accept

MTU wà lẹ́yìn èyí. Tunnel ń dín MTU tí a lè lò kù sísàlẹ̀ 1500, IPv6 sì béèrè pé kí gbogbo ìsopọ̀ gbé ó kéré jù 1280. Àwọn ping kékeré ń kọjá, ìpàdé SSH ń dì nígbà ìgbóná ńlá, /proc/net/snmp6 sì ń fi àwọn ìfọ̀rọ̀ránṣẹ́ packet-too-big tí kò padà rí hàn. Ṣètò MTU tunnel ní gbangba, tàbí dín TCP MSS kù nínú tábìlì mangle, kí o sì jẹ́ kí ICMPv6 tí ó ń sọ MTU kékeré padà.

Dán ọ̀nà ìpadà wò, kì í ṣe àdírẹ́sì tunnel

Àkùnà tí ó ń gba àkókò jù ni gbígbé ọ̀nà ẹ̀gbẹ́ kan. Gateway kọ̀ọ̀kan ń gbé àkọ́kọ́ jíjìnnà lọ sínú tunnel, ṣùgbọ́n àwọn ẹ̀rọ onílé ń dáhùn nípasẹ̀ gateway àkọ́kọ́ tiwọn nítorí ibẹ̀ ni /64 wọn wà. Mímú pákítì dé ibi ìlò ni ìdajì ọ̀nà.

What you seeLikely causeFirst check
Tunnel up, every host silentremote prefix not routed into the tunnelip -6 route get on both gateways
Handshake renews, no repliessource prefix missing from selectors or AllowedIPsipsec statusall, wg show allowed-ips
Small pings pass, transfers stallMTU or ICMPv6 packet-too-big filtered/proc/net/snmp6 counters
Old prefix still worksstale /64 left in routes or selectorsdelegation lease and route table

Àṣẹ méjì ń yanjú ọ̀pọ̀. Ní ojú-ọ̀nà A ip -6 route get 2001:db8:b2::53 from 2001:db8:a1:10::5 ń fi hàn interface wo ni ìdáhùn láti orísun yẹn yóò lò; ṣe àyẹ̀wò dígí ní ojú-ọ̀nà B. Lẹ́yìn náà dá ìrìn jáde láti ẹ̀rọ onílé dípò gateway, kí o sì fi àwọn olùka wé ní ẹ̀bùn méjèèjì.

Tí ìbéèrè aládùúgbò fún àkọ́kọ́ jíjìnnà bá farahàn lórí tunnel, àkọ́kọ́ yẹn wà ní on-link níbi tí kò yẹ kí ó wà; tún un ṣe kí o tó ṣàtúnṣe àwọn ọ̀nà. Proxy NDP ń bo àwọn ìṣẹ̀lẹ̀ tí afárá fi ń ṣe pàtàkì gan-an, kì í ṣe àropò ọ̀nà.

Ṣètò fún ìyípadà àkọ́kọ́ lábẹ́ rẹ

Ìfúnni àkọ́kọ́ jẹ́ ìyáálé láàárín ẹ̀rọ onílé tí ń fúnni àti ẹni tí ń béèrè, àtúnṣe sì lè dá àkójọ mìíràn padà: /56 mìíràn lẹ́yìn ìṣíkiri olùpèsè, tàbí ìyáálé kúkúrú ju àkókò tí tunnel ti wà. Gbogbo ibi tí ó dárúkọ àkọ́kọ́ àtijọ́ yóò di àtijọ́ ní ẹ̀ẹ̀kan náà: àwọn ọ̀nà, àwọn yíyan, AllowedIPs, àwọn òfin firewall, àwọn àkọsílẹ̀ DNS àti ìṣọ́ mísìíràn tí ó fi àwọn àdírẹ́sì gbọ̀rọ̀ sílẹ̀. Ìṣàn ìfọ̀rọ̀ránṣẹ́ wà nínú RFC 8415.

Níbi tí a ti ń retí pé àkọ́kọ́ yóò ṣí, pa ètò àdírẹ́sì inú mọ́ tí kò sinmi lé e, kí o sì túmọ̀ ní ààlà. NPTv6 jẹ́ àṣàyàn aláìní-ipò, ó sì ń jẹ́ kí ìlànà inú lè kà; ṣùgbọ́n ìtúmọ̀ àkọ́kọ́ ni, kì í ṣe ìpele idán: àwọn ààlà /64 gbọ́dọ̀ bá ara wọn mu, a ó ṣàtúnṣe àwọn checksum, àwọn ohun èlò tí ó fi àdírẹ́sì gbọ̀rọ̀ sínú yóò sì ṣì bàjẹ́. Tí o bá pa àwọn àdírẹ́sì olùpèsè mọ́ láti orí dé orí, kọ ìhùwàsí ìyáálé àti ìlànà ìyípadà sínú ètò àdírẹ́sì.

Parí pẹ̀lú àyẹ̀wò tí ó fara da àkókò: ẹ̀rọ onílé tí a gbà láàyè lórí LAN kọ̀ọ̀kan yóò dé iṣẹ́ kan lórí LAN kejì, ìdáhùn yóò padà nípasẹ̀ tunnel, ẹ̀bùn kan náà yóò sì ṣì ṣiṣẹ́ lẹ́yìn àtúnbẹ̀rẹ̀ tunnel àti àtúnṣe ìfúnni. Tí apá ìkẹyìn bá kùnà, àpẹẹrẹ náà sinmi lé ipò tí kò ní yè já ọ̀sẹ̀ kan.

Àwọn àpilẹ̀kọ tó jọra