کله چې تاسو د دوو سایټونو ترمنځ تونل ته IPv6 پریفکس اضافه کوئ، پیکټ هغسې سفر نه کوي لکه څنګه چې ډیاګرام وړاندیز کوي۔ سیمه ییز ګیټ وې پوره IPv6 پیکټ اخلي، کوډ یې کوي او مخې ته یې بهرنی IP سرلیک ږدي چې د پتې کورنۍ یې د پای نقطو پتو ته نه، بلکې دننه موادو ته اړوند نه ده۔ لرې ګیټ وې هغه بهرنی سرلیک لرې کوي او اصلي پیکټ خپل LAN ته لیږدوي چې هلته بیا عادي IPv6 پیکټ دی۔ بهرنی تونل او دننی ترافیک دوه جلا خبرې دي چې یو کیلي، یو د پای جوړه او نور هیڅ نه شریکوي۔

دوه سرلیکونه، دوه پتې کورنۍ

په IPsec د تونل حالت کې دننی IPv6 پیکټ د ESP سرلیک شاته بار شي۔ هغه بهرنی سرلیک چې دا ESP پیکټ وړي کېدای شي IPv4 یا IPv6 وي او local_addrs او remote_addrs تعقیبوي۔ WireGuard همدا کار په لږ مراسم کوي: دننی پیکټ د UDP ډیټاګرام بار دی چې د سیال پای نقطې ته ځي۔ دواړه دننی سرلیک نه لامسه پریږدي، له همدې امله لرې خوا کولای شي له کڅوړې ایستلو وروسته یې لارښونه وکړي۔

د سایټونو ترمنځ لاره یوازې UDP 4500 ویني کله چې IPsec د NAT تېرېدنه کاروي، یا د WireGuard ډیفالټ اورېدونکي لپاره UDP 51820۔ په لاره کې هر روټر کېدای شي یوازې IPv4 وي او IPv6 ترافیک بیا هم تېریږي، ځکه چې په هغه لاره کې هېڅکله د IPv6 پیکټ په بڼه نه ښکاري۔ دا یوه سالمه لومړنۍ وېش ورکوي: tcpdump -ni eth0 udp port 51820 کوډ شوې لاره ښيي، tcpdump -ni wg0 ip6 دننی ترافیک ښيي۔ بهرنی نیول بوخت او دننی خاموش وي، مانا دا ده چې کرنل IPv6 په تونل کې نه اېږدي؛ دا لارښونه یا تګلاره ده، د تړاو حالت نه۔

ګیټ وې د لیږد پر مهال دننی Hop Limit هم کموي، نو پای نقطې په IPv6 لاره کې روټر ګڼل کیږي۔ بهرنی د ټوپونو شمېر او دننی Hop Limit په خپلواکه توګه ځي، او هغه پیکټ چې په لرې ګیټ وې کې مري په لیږد کې مړ شو، په کوډ کولو کې نه۔

سلیکټرونه او AllowedIPs د اجازې لیست دي

IKEv2 په دې خبرې اترې کوي چې child SA کوم دنني پریفکسونه وړلی شي۔ په strongSwan 5.9 او وروسته کې یې په swanctl.conf کې لیکل داسې ښکاري:

children {
  net6 {
    local_ts  = 2001:db8:aa::/48
    remote_ts = 2001:db8:bb::/48
    mode = tunnel
    esp_proposals = aes256gcm16-prfsha384-ecp384
    start_action = trap
  }
}

که local_ts او remote_ts پرېږدئ، strongSwan یې د هغه انټرفېس فرعي شبکو څخه راوباسي چې غوره یې کوي۔ په دوه ګوني سټیک کوربه کې دا لنډه لاره ډېری یوازې IPv4 جوړه ورکوي: SA پورته کیږي او IPv6 د ESP کوډ ته رسېدو دمخه رد کیږي۔ دواړه پریفکسونه لیکل SA د هغوی وړلو وړ کوي، او start_action = trap په لومړي سم پیکټ کې پورته کوي۔

WireGuard یو لیست لري چې دوه کارونه کوي۔ په سیال بلاک کې AllowedIPs = 2001:db8:bb::/48, fd00:bb::/48 هماغه لار ده چې د لیږلو پر مهال نصب کیږي او هماغه فلټر چې د اخیستلو پر مهال تطبیق کیږي: هغه کوډ ایستل شوی پیکټ چې دننی سرچینه یې د هغه سیال له لیسته ووځي په خاموشۍ غورځول کیږي۔ wg-quick د هرې ننوتنې لپاره لاره اضافه کوي، نو لاندې سیال بلاک جلا ip -6 route کمانډ ته اړتیا نه لري۔

[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

دواړه لیستونه باید د عکس په څېر وي: سایټ B د سایټ A پریفکس د لرې سلیکټر په توګه مني او بیرته یې لارښونه کوي، او تونل یوازې هغه وخت کار کوي چې دواړه خواوې سره سمې وي۔ ناسم لیست هغه نښه ورکوي چې تر ټولو ډېر وخت اخلي — روغ لاس ورکول، یوې خوا ته روان شمېرونکي، او له A څخه B ته بریالی ping پداسې حال کې چې له B څخه هیڅ A ته نه رسېږي۔

لیږد، لارې او د بیرته راګرځېدو پریفکس

Linux تر هغه IPv6 نه لیږدوي چې تاسو یې ونه وایئ، او تنظیم د انټرفېس نه بلکې د namespace له مخې دی:

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

دویمه کرښه هغه ده چې خلک یې په لارې باندې ولاړو ډیزاینونو کې هېروي۔ د تګلارې پر بنسټ IPsec له پریفکسونو سره سمون خوړونکې XFRM تګلاره نصبوي، مګر vti6 یا WireGuard سره د لارې پر بنسټ ترتیب د هغه وسیلې ته ګوته نیونکې ریښتینې IPv6 لارې ته اړتیا لري۔ sysctl لاندې /etc/sysctl.d/ کې دوامداره وساتئ؛ که نه، بیا پیل کول لیږد په خاموشۍ بند حالت ته بېرته راګرځوي۔

لیږد یو اړخیز اغیز لري چې پېژندل یې ارزښت لري: کرنل بیا د روټر اعلانونه ناګاره بولي پرته لدې چې net.ipv6.conf.<wan>.accept_ra 2 وي، نو هغه ګیټ وې چې WAN پته یې د SLAAC له لارې راځي کېدای شي د لیږد د فعالولو په هغه شیبه خپله ډیفالټ لاره له لاسه ورکړي۔ په هماغه فایل کې پر هغه انټرفېس accept_ra = 2 وټاکئ او لاره ژوندې پاتې کیږي۔ د سایټ B زړه باید له تونل ګیټ وې څخه 2001:db8:aa::/48 هم زده کړي، د ثابتې لارې یا د تونل پرمخ د لارښونې پروتوکول له لارې، که نه ځواب د B په خپل شبکه کې مري۔

څلور مرحلېیزه څېړنه چې د ماتې ځای په ګوته کوي

په همدې ترتیب کار وکړئ او په لومړنۍ هغه مرحله ودروئ چې ناکامیږي، ځکه چې هر راتلونکی ګام پخوانیو ته تړلی دی۔

  1. سلیکټرونه: swanctl --list-sas باید پر child SA د IPv6 پریفکسونه جوړه وښيي، یا wg show wg0 allowed-ips لرې پریفکس د تازه latest-handshakes سره۔
  2. کرنل لاره: ip -6 route get 2001:db8:bb::10 باید د تونل وسیلې سره ځواب ووایي، د WAN انټرفېس سره نه۔
  3. دننی نیول: tcpdump -ni wg0 ip6 هغه مهال چې د ریښتینو LAN کوربه و ترمنځ ping کوئ۔ هغه پیکټونه چې وځي مګر هېڅ بیرته نه راځي د B لارې یا فایر وال ته ګوته نیسي؛ په بشپړه توګه د پیکټونو نه شتون 1 یا 2 مرحلې ته اشاره کوي۔
  4. مقصد: پر B کوربه ss -6 -ltn تاییدوي چې خدمت پر IPv6 اورېږي، او سیمه ییز د فایر وال شمېرونکي ښيي چې پیکټ ومنل شو که وغورځول شو۔

MTU په هماغه تېریدو کې راځي۔ IPv6 روټرونه ټوټې نه کوي، نو ډېر لوی پیکټ غورځول کیږي او Packet Too Big لیږونکي ته بیرته راځي۔ که لاس ورکول او کوچني ping کار وکړ مګر د فایل لیږد ودرېد، بار کم کړئ ترڅو تېر شي: ping -6 -s 1400 -c 3 2001:db8:bb::10۔ د WireGuard انټرفېسونو ډیفالټ MTU 1420 بایټ دی او پر IPv4 باندې IPsec ډېر کموي، نو دننی MTU ټاکل د ICMPv6 غورځوونکي فایر وال له لارې د لارې MTU کشف ته د هیلو څخه غوره دی۔

د ناکامۍ حالتونه چې د فایر وال ستونزو په څېر ښکاري

تر ټولو عام هېڅ فایر وال نه دی: خدمت :: پر ځای 0.0.0.0 ته تړل کیږي، AAAA ریکارډ شته، او مراجع له IPv6 له لارې ژر انکار اخلي چې دوه ګوني سټیک لرونکی براوزر یې IPv4 ته په بیرته تلو پټوي۔ که یوازې ځینې اپلیکیشنونه ناکام شي، د قاعدو له ټولګې مخکې اورېدونکې کورنۍ وګورئ۔

دویم د ICMPv6 فلټرول دی۔ Neighbor Discovery او Packet Too Big د عادي کار برخه دي، د تشخیص نه، او هغه تګلاره چې ټول ICMPv6 غورځوي هغه تونل جوړوي چې نښلوي، تصدیق کوي او بیا پر هر هغه څه ودرېږي چې له کوچني پیکټ څخه لوی وي۔ هغه ډولونه اجازه کړئ چې لاره ورته تړلې ده او شمېرونکي پرانیستي پرېږدئ ترڅو غورځول ښکاره شي۔

دریم هغه پریفکس دی چې تونل ته اضافه کیږي مګر هېڅکله د هغه سایټ د پتو پلان ته نه اضافه کیږي چې مالک یې دی، نو هېڅ روټر یې اعلان نه کوي او هېڅ کوربه ترې ځواب نه شي ویلای۔ له یو پریفکس او یوې کوربه جوړې سره پیل وکړئ، دواړه خواوې په څلورو مرحلو ثابتې کړئ، بیا پاتې اضافه کړئ؛ خراب پریفکس د بیا ډیزاین پر ځای په ترتیب کې یوه کرښه پاتې کیږي۔ یوازینی رسمي حواله چې خلاص ساتل یې ارزښت لري RFC 8200 ده، کومه چې هغه سرلیک تعریفوي چې تونل وړي۔

اړوندې مقالې