IPv6 VPN кардарыңыз жумуш жүктөмүнө жетет, жумуш жүктөмү туннелдин ичине жооп берет, бирок жооп эч качан келбейт. Биринчи инстинкт — файрволду же туннелди күнөөлөө, жана адатта экөө тең күнөөлүү эмес. OpenVPN берген дарек — туннелдин ичинде гана жашаган ички тармак; Google Cloud fd42:90::/64 белгилүү бир VMдин артында болушу керектигин сиз айтмайынча билбейт.

Бул фактыны эки өзүнчө система үйрөнүшү керек, жана алардын бирөө гана OpenVPN. VPC бир нерсени артка жиберүү үчүн маршрутка муктаж, ал эми VMге келгенди кайра жиберүүгө уруксат берилиши керек. Кайсы бир жарымында жаңылсаңыз, симптом бирдей көрүнөт.

Пул — ички тармак, субнет эмес

OpenVPN сиз тандаган диапазондон IPv6 даректерин бере алат, жана бул диапазон — туннелдин эки учу макулдашкан ойдон чыгарылма. Ал Google Cloud субнети эмес, VPC субнеттеринин тизмесинде көрүнбөйт жана VMдин тармактык интерфейси бул даректерди албайт. Ошондуктан кардарга жооп берген жумуш жүктөмү тармак маршрутталбайт деп эсептеген дарекке пакет жиберет.

Пулду VPC мурунтан колдонгон ар бир диапазондон тышкары кармаңыз. Аны башка туннелдериңиздин артындагы диапазондордон да тышкары кармаңыз. Каттоо таза маршруттоо катасын жүк астында гана көрүнгөн үзгүлтүктүү катага айландырат.

fd42:90::/64 сыяктуу уникалдуу жергиликтүү даректөө бул ички тармак үчүн акылга сыярлык тандоо. Префикс дизайндын табияты боюнча жеке экенин да эстетип турат. ULA пулундагы эч нерсе аны коомдук интернетте мыйзамдуу булак кылбайт.

VPCге барар жери жана кийинки кадам бериңиз

Жоопко барар жери пул, кийинки кадамы VPN VM болгон VPC маршруту керек. Учурдагы статикалык маршрут документтери IPv6 барар жери диапазондорун камтыйт жана кайсы кийинки кадам түрлөрү жарактуу экенин тизмелейт, ошондуктан эски IPv4 мисалын көчүрүүнүн ордуна топологияңыз үчүн колдоого алынган форманы текшериңиз.

Кийинки кадам дареги инстанстың булут интерфейсине чындап ыйгарылган болушу керек. VMдин ички туннель дареги ал дарек эмес. Аны баары бир колдонуу таза орнотулган жана эч качан пакетке дал келбеген маршрут жаратат. Маршрутту жазганга чейин интерфейстер тизмесин окуңуз.

Маршруттун артыкчылыгы жазуунун өзүндөй эле маанилүү. Субнет маршруттары сиз кошкон ыңгайлаштырылган маршруттарга караганда такыраак, ошондуктан бар субнет диапазонунан кесилип алынган пул ыңгайлаштырылган маршрут кандай жазылганына карабастан субнет маршрутуна жеңилет. Өзүнчө пул тандаңыз, анан маршрут инстансты кийинки кадам жана туура барар жери префикси катары көрсөтөрүн ырастаңыз:

gcloud compute routes create vpn6-return \
  --network=vpn-vpc \
  --destination-range=fd42:90::/64 \
  --next-hop-instance=openvpn-vm \
  --next-hop-instance-zone=europe-west1-b

Кайра жиберүү эки жолу күйгүзүлүшү керек

Маршрут пакетти инстансқа жеткирет. Ал инстансты өзүнө адрестелбеген нерсени кайра жиберүүгө даяр кылбайт, жана бул уруксат эки деңгээлде бар.

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

sysctl -w net.ipv6.conf.all.forwarding=1

Андан кийин файрвол эрежелери ички булак диапазонун эки багытта тең уруксат бериши керек. Google Cloud капсуладан чыгарылган пакетти баалайт, ошондуктан VPC субнетин гана камтыган эреже туннел ийгиликтүү болгондон кийин пулдун трафигин таштайт. Пулду кирүү эрежесине булак диапазону катары кошуңуз жана эч кандай ыңгайлаштырылган чыгуу саясаты жоопту бөгөттөбөй турганын текшериңиз. Жашыруун уруксат эрежеси демейки учурду камтыйт, кол менен жазылган чыгуу эрежеси камтыбайт.

OpenVPNге ким эмнени ээлегенин айтыңыз

OpenVPN кардарга, ал кардар барар жерин ээлегенин билгенде кайра жиберет. Пулдан келген кардар даректерин пулду аныктаган сервер директивасы башкарат, бирок кардардын артындагы субнет башка жайгашуу жана ал кардар үчүн ачык ээлик жазуусун талап кылат.

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

Интернет чыгымын бул дизайндан тышкары кармаңыз

Жеке кирүү жана интернетке кирүү өзүнчө пландар. ULA пулу маршруттоо жана кайра жиберүү макулдашкандан кийин туннел аркылуу VPC жумуш жүктөмдөрүнө жете алат, ал эми ошол эле пулдун VPC аркылуу коомдук интернетке жолу жок, анткени булут дарбазасы каалаган туннель булагын өзүнүкү катары кабыл албайт.

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

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