Pagpaplano ng IPv6 para sa WireGuard hub na may dalawang site: prefix, peer, ruta
Trabahuhin ang isang pribadong IPv6 hub para sa dalawang LAN: pumili ng prefix, magreserba ng mga address ng tunnel, pagkatapos ay hayaan ang AllowedIPs na ipahayag kung aling peer ang may-ari ng bawat subnet.
Dalawang LAN, isang WireGuard hub at isang plano ng address na IPv6 na dapat sumagot sa tatlong magkakahiwalay na tanong: aling prefix, aling address ang pag-aari ng bawat router, at aling peer ang may-ari ng aling subnet. Ang isang pagkakamali sa alinman sa mga ito ay gumagawa ng tunnel na nakikipagkamay at walang niruruta. Ang plano sa ibaba ay dumadaan sa isang pribadong disenyo ng dalawang site sa ganoong pagkakasunod-sunod. Sadyang hindi ito nagbibigay ng internet access sa IPv6.
Magpasya kung para saan ang prefix
Ang natatanging lokal na prefix mula sa fd00::/8 ang natural na pagpipilian kapag ang layunin ay pribadong maabot sa pagitan ng mga site. Nananatili itong matatag anuman ang ISP na naglilingkod sa bawat lokasyon, at hindi ito inaanunsyo sa pandaigdigang talahanayan ng ruta, kaya hindi ito makakapag-leak ng iyong panloob na pag-numero sa internet.
Ang parehong katangian ang limitasyon. Ang ULA ay walang pampublikong daan pabalik, dahil walang upstream provider na nakakaalam na dapat itong iruta sa iyong gateway. Kung kasama sa pangangailangan ang paglabas sa internet sa IPv6, kailangan mo ng isang alokasyon mula sa provider na nagruruta nito papunta sa iyo, at ito ay hiwalay na desisyon sa disenyo na may sariling sukat ng prefix.
Huwag ipagpalagay na bawat deployment ay nangangailangan ng /48. RFC 6177 lumayo mula sa isang sapilitang sukat para sa huling site, at ang tamang sukat ay sumusunod sa bilang ng mga network na iyong papamahalaan. Bumuo ng ULA gamit ang pamamaraan ng RFC 4193 sa halip na mag-imbento ng prefix na maaaring gamitin din ng ibang organisasyon. Isulat ang resulta sa plano ng address bago i-configure ang anumang device, dahil ang prefix na walang naitala ay prefix na muling gagamitin ng iba.
Hatiin ang prefix sa mga tungkulin
Ginagamit ng halimbawa sa ibaba ang fd7c:2e91:4a00::/48, at ang talahanayan ay nakaayos ayon sa kung saan isinusulat ang bawat bloke, hindi ayon sa site. Ituring ang mga halaga bilang halimbawa at buuin ang sarili mo bago mag-deploy ng anuman.
| Where it is written | What appears there | Block used | What it establishes |
|---|---|---|---|
| Hub wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::1/128 | The hub's own tunnel identity |
| Hub wg0.conf, Site A peer | Two ranges in one AllowedIPs line | ::2/128 and :10::/64 | That A owns its tunnel address and its LAN |
| Hub wg0.conf, Site B peer | Two ranges in one AllowedIPs line | ::3/128 and :20::/64 | That B owns its tunnel address and its LAN |
| Site A wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::2/128 | A's identity as the hub sees it |
| Site B wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::3/128 | B's identity as the hub sees it |
Ang mga bloke ng LAN ay /64 dahil inaasahan ng ordinaryong SLAAC ang 64-bit na identifier ng interface. Ang paghahati ng LAN sa mas maliit na bloke ay sumisira sa palagay na iyon sa karamihan ng host, at ang gastos sa operasyon ay hindi katumbas ng pagtitipid sa address sa isang pribadong plano. Ang dalawang bloke ng LAN ay mula sa gitna ng /48, na iniiwan ang mababang hanay na malaya para sa mga susunod na site.
Ang mga address ng tunnel ay reserbang administratibo, hindi network sa link. Bawat interface ay tumatanggap ng isang /128 mula rito, kaya walang host na nagpapalagay ng pinagsasaluhang subnet sa tunnel at hindi tumatakbo ang pagtuklas ng kapitbahay kung saan hindi kailangan. Panatilihing hiwalay ang mga tungkulin at itala ang mga ito sa plano ng address ng organisasyon upang ang susunod na site ay hindi muling gumamit ng bloke.
Bigyan ang bawat router ng isang address ng tunnel
Maglaan ng isang /128 kada router at panatilihin ang mga umiiral na key at endpoint ng gumaganang hub. Ang tatlong halaga sa ibaba ay nagkakaiba lamang sa bahagi ng host.
Hub: Address = fd7c:2e91:4a00:ff00::1/128
Site A: Address = fd7c:2e91:4a00:ff00::2/128
Site B: Address = fd7c:2e91:4a00:ff00::3/128
Inilalarawan ng /128 na ito ang nag-iisang address na inilaan sa interface na iyon. Wala itong sinasabi tungkol sa kung ilang destinasyon ang maaaring iruta ng peer, dahil ang maabot ay ipinapahayag sa AllowedIPs at hindi sa prefix ng interface.
Ang bawat router ng site ay nangangailangan din ng address sa sarili nitong bloke ng LAN at paraan upang ipamahagi ito, karaniwang mga anunsyo ng router para sa SLAAC. Hindi ipinapadala ng WireGuard ang mga anunsyong iyon para sa iyo, at hindi nito pinag-uugnay ang dalawang LAN. Ang router ng site ay router sa dalawang direksyon.
Ilagay ang pagmamay-ari ng subnet sa AllowedIPs
Ang entry ng peer ng hub para sa Site A ay nagmamay-ari ng address ng tunnel ng A at ng LAN ng A, at ang pares na iyon ang buong pahayag ng pagmamay-ari. Wala nang iba sa seksyong iyon ng peer ang kailangang ilarawan ang site.
AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64
Ang entry ng peer para sa Site B ay nagmamay-ari ng tumutugmang pares, at ang simetriya dito ay mas mahalaga kaysa sa ikli. Basahin ang dalawang linya nang magkasama at ang paghahati ng pagmamay-ari ay makikita sa isang sulyap.
AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64
Ito ay dalawang magkahiwalay na seksyon ng peer, hindi dalawang listahan na nag-aagawan sa isang peer. Ginagamit ng WireGuard ang AllowedIPs sa dalawang direksyon: pinipili nito ang peer para sa papalabas na destinasyon, at tinatanggihan nito ang papasok na packet na ang pinagmulan ay hindi tumutugma sa hanay na inilaan sa peer na nag-decrypt nito. Ang pagbibigay ng buong /48 sa dalawang peer ay magpapawalang-bisa sa pangalawang pagsusuring iyon at magpapalabo kung aling site ang may-ari ng aling bloke. Ang pagkakaibang iyon ang dahilan kung bakit ang maling address ng pinagmulan ay nakikita sa halip na tahimik na tinatanggap.
Ang bawat site ay nangangailangan lamang ng mga destinasyong maabot sa pamamagitan ng peer ng hub nito: inililista ng Site A ang address ng hub, ang address ng tunnel ng Site B at ang LAN ng B, at inililista ng Site B ang kabaligtarang set. Ang mga listahan ay sadyang asimetriko, dahil nakikita ng bawat router ang ibang panig ng topolohiya. Isulat ang pareho mula sa plano ng address at hindi mula sa configuration ng kabilang site, dahil ganoon ang paraan ng pagkaligtas ng lumang hanay sa muling pag-numero.
Sa wg-quick, ang mga hanay na ito ay gumagawa rin ng ruta. Sa systemd-networkd o manu-manong setup, idagdag mo mismo ang katumbas na ruta; kung hindi, dinadala ng tunnel ang mga packet na hindi kailanman ipinapadala ng kernel papasok dito.
Kumpletuhin ang pagpapasa at subukan ang dalawang direksyon
Paganahin ang pagpapasa ng IPv6 sa hub at sa dalawang router ng site, at payagan ang mga kinakailangang serbisyo sa pagitan ng mga site sa patakaran ng pagpapasa. Panatilihing magagamit ang mga mensaheng ICMPv6 Packet Too Big, dahil ang pagtatapon sa mga ito ay sumisira sa pagtuklas ng MTU ng landas at nagdudulot ng paghinto sa malalaking paglilipat na mukhang mga depekto ng aplikasyon. Ang hub na nagpapasa nang walang pahintulot ng firewall ay nagtatapon ng packet sa pagitan ng pagruruta at ng tunnel. Ang ganitong paraan ng pagkabigo ay dapat malaman, dahil nananatiling bukas ang tunnel at ilang daloy lamang ang namamatay.
sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1
Subukan mula sa host sa Site A papunta sa host sa Site B at pagkatapos ay sa kabaligtarang direksyon. Ang ping sa address ng tunnel ng hub ay nagsasanay lamang sa unang hop at magtatagumpay kahit mali ang mga ruta ng LAN. Ang daloy ng host-sa-host ang nagpapatunay ng plano.
Ang panlabas na koneksyon ng WireGuard ay maaaring tumakbo sa IPv4 habang ang panloob na trapiko ay IPv6, at ang kalayaan na iyon ay kapaki-pakinabang sa panahon ng paglipat. Kung idaragdag mamaya ang pandaigdigang paglabas ng IPv6, suriin muli ang alokasyon ng provider, ang pagpili ng address ng pinagmulan at ang pagruruta pabalik bilang bagong hakbang sa disenyo; ang pribadong plano sa itaas ay nananatiling wasto para sa trapiko sa pagitan ng mga site.