Эки LAN, бир WireGuard хабы жана үч өзүнчө суроого жооп бериши керек болгон IPv6 дарек планы: кайсы префикс, кайсы дарек кайсы маршрутизаторго таандык жана кайсы теңдеш кайсы субнетке ээ. Алардын бири ката болсо, кол алыша турган, бирок эч нерсени маршруттабаган туннель пайда болот. Төмөнкү план ушул тартипте жеке эки сайттуу долбоорду карайт. Ал атайын IPv6 интернет кирүүсүн бербейт.

Префикстин эмне үчүн экенин чечиңиз

Максат сайттар ортосунда жеке жеткиликтүүлүк болсо, fd00::/8ден алынган уникалдуу жергиликтүү префикс табигый тандоо. Ал ар бир жерге кайсы ISP кызмат көрсөтөрүнөн көз карандысыз туруктуу бойдон калат жана глобалдык маршруттоо таблицасында жарыяланбайт, ошондуктан ички номериңизди интернетке чыгара албайт.

Ошол эле касиет чектөө болуп саналат. ULA жарыя кайтуу жолун бербейт, анткени эч бир жогорку агым аны сиздин шлюзга маршруттоону билбейт. Талап IPv6 интернет чыгуусун камтыса, сизге керек аны сизге маршруттаган провайдерден бөлүү, жана бул өзүнүн префикс өлчөмү бар өзүнчө долбоор чечими.

Ар бир орнотууга /48 керек деп ойлобоңуз. RFC 6177 акыркы сайттын бирдиктүү милдеттүү өлчөмүнөн алыстады, ал эми туура өлчөм сиз башкара турган тармактардын санына көз каранды. ULAны RFC 4193 жол-жобосу менен түзүңүз, башка уюм да колдоно ала турган префиксти ойлоп таппаңыз. Жыйынтыкты кандайдыр бир түзмөк конфигурацияланганга чейин дарек планына жазыңыз, анткени эч ким жазбаган префикс — бирөө кайра колдоно турган префикс.

Префиксти ролдорго бөлүңүз

Төмөнкү мисал fd7c:2e91:4a00::/48ди колдонот, ал эми таблица сайт боюнча эмес, ар бир блоктун кайда жазылаары боюнча уюштурулган. Маанилерди үлгү катары кабыл алып, бир нерсени орнотуудан мурун өзүңүздүкүн түзүңүз.

Where it is writtenWhat appears thereBlock usedWhat it establishes
Hub wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::1/128The hub's own tunnel identity
Hub wg0.conf, Site A peerTwo ranges in one AllowedIPs line::2/128 and :10::/64That A owns its tunnel address and its LAN
Hub wg0.conf, Site B peerTwo ranges in one AllowedIPs line::3/128 and :20::/64That B owns its tunnel address and its LAN
Site A wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::2/128A's identity as the hub sees it
Site B wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::3/128B's identity as the hub sees it

LAN блоктору /64, анткени кадимки SLAAC 64 биттик интерфейс идентификаторун күтөт. LANды кичинерек блокко бөлүү көпчүлүк хосттордо бул божомолду бузат, ал эми жеке планда дарек үнөмдөөгө операциялык чыгым татыбайт. Эки LAN блогу тең /48дин ортосунан алынат, төмөнкү диапазон кийинки сайттар үчүн бош калат.

Туннель даректери административдик кампа, байланыштагы тармак эмес. Ар бир интерфейс андан бир /128 алат, ошондуктан эч бир хост туннелде жалпы субнетти божомолдобойт жана керек эмес жерде кошуналарды табуу иштебейт. Ролдорду өзүнчө кармап, уюмдун дарек планына жазыңыз, кийинки сайт блокту кайра колдонбосун.

Ар бир маршрутизаторго бир туннель дарегин бериңиз

Ар бир маршрутизаторго бир /128 бөлүп, иштеп жаткан хабдын учурдагы ачкычтарын жана акыркы чекиттерин сактаңыз. Төмөнкү үч маани хост бөлүгүндө гана айырмаланат.

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

Бул /128 ошол интерфейске берилген жалгыз даректи сүрөттөйт. Ал теңдеш канча даректи маршруттай алаарын айтпайт, анткени жеткиликтүүлүк интерфейс префиксинде эмес, AllowedIPs ичинде билдирилет.

Ар бир сайт маршрутизаторуна өз LAN блогунда дарек жана аны таратуу жолу керек, адатта SLAAC үчүн маршрутизатор жарнамалары. WireGuard бул жарнамаларды сиздин ордуңузга жибербейт жана эки LANды көпүрөлөбөйт. Сайт маршрутизатору эки багытта тең маршрутизатор.

Субнет ээлигин AllowedIPs ичине салыңыз

A сайты үчүн хабдын теңдеш жазуусу Aнын туннель дарегине жана Aнын LANына ээ, жана ошол жуп — бүткүл ээлик билдирүүсү. Ошол теңдеш бөлүмүндө башка эч нерсе сайтты сүрөттөшү керек эмес.

AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64

B сайтынын теңдеш жазуусу тиешелүү жупка ээ, жана бул жерде симметрия кыскалыктан маанилүүрөөк. Эки сапты чогуу окусаңыз, ээлик бөлүнүшү бир караштан көрүнөт.

AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64

Булар бир теңдеш үчүн атаандашкан эки тизме эмес, эки өзүнчө теңдеш бөлүмү. WireGuard AllowedIPsди эки багытта тең колдонот: чыгуучу багыт үчүн теңдешти тандайт жана аны чечкен теңдешке берилген диапазонго булагы туура келбеген кирүүчү пакетти четке кагат. Бүткүл /48ди эки теңдешке берүү ошол экинчи текшерүүнү өчүрөт жана кайсы сайт кайсы блокко ээ экенин бүдәңгир кылат. Ушул айырмачылык ката булак дарегин үнсүз кабыл алуунун ордуна көрүнүктүү кылат.

Ар бир сайтка өз хабынын теңдеши аркылуу жеткиликтүү багыттар гана керек: A сайты хабдын дарегин, B сайтынын туннель дарегин жана Bнин LANын тизет, ал эми B сайты карама-каршы топтомду тизет. Тизмелер атайын асимметриялуу, анткени ар бир маршрутизатор топологиянын башка жагын көрөт. Экөөнү тең башка сайттын конфигурациясынан эмес, дарек планынан жазыңыз, ошентип эски диапазон кайра номерирлөөдөн аман калат.

wg-quick менен бул диапазондор маршруттарды да түзөт. systemd-networkd же кол менен жөндөө кезнде барабар маршруттарды өзүңүз кошуңуз; болбосо туннель ядро эч качан жибербеген пакеттерди ташыйт.

Жиберүүнү бүткөрүп, эки багытты тең текшериңиз

Хабда жана эки сайт маршрутизаторунда IPv6 жиберүүнү иштетиңиз, жана жиберүү саясатында керектүү сайтаралык кызматтарга уруксат бериңиз. ICMPv6 Packet Too Big билдирүүлөрүн колдонууга жарактуу кармаңыз, анткени аларды таштоо жолдун MTU аныктоосун бузат жана колдонмо катасындай көрүнгөн чоң өткөрүүлөрдүн токтоп калышын пайда кылат. Өрт дубалынын уруксатысыз жиберген хаб пакетти маршруттоо менен туннелдин ортосунда таштайт. Бул ката режимин билген жөн, анткени туннель иштеп турат жана агымдардын бир бөлүгү гана өлөт.

sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1

A сайтындагы хосттон B сайтындагы хостко, анан карама-каршы багытта текшериңиз. Хабдын туннель дарегине ping биринчи секирүүнү гана текшерет жана LAN маршруттары туура эмес болсо да өтөт. Планды далилдеген нерсе — хосттон хостко агым.

Сырткы WireGuard байланышы IPv4 үстүндө иштеп, ички трафик IPv6 болушу мүмкүн, жана бул көз карандысыздык көчүү учурунда пайдалуу. Кийинчерээк глобалдык IPv6 чыгуу кошулса, провайдердин бөлүүсүн, булак дарегин тандоону жана кайтаруу маршруттоосун жаңы долбоор кадамы катары кайра карап чыгыңыз; жогорудагы жеке план сайтаралык трафик үчүн күчүндө калат.

Тектеш макалалар