IPv4 VPN сервери аркылуу IPv6 дагы эле чыныгы IPv6 чыгуусун талап кылат
IPv6-ны IPv4 туннелинин ичинде ташуу — жеңил жарымы. Чыгууга дагы эле чыныгы IPv6 upstream, колдонууга жарактуу булак префикси жана пул үчүн кайтаруу маршруту керек.
Туннель көтөрүлөт, кардар пулдан IPv6 дарегин алат, бирок ар бир IPv6 багытынын убактысы баары бир бүтөт. Туннелде эч нерсе сынган эмес: IPv6 IPv4 транспортунун ичинде таптакыр жакшы жүрөт, жана бул эч качан кыйын бөлүк болгон эмес. Сен берген дарек — сервер аткара албаган убада, анткени чыгууда аны жөнөтө турган IPv6 upstream жок. Оңдоо чыгууда болушу керек, кардар профилинде эмес.
Симптом: дарек бар, жол жок
Кардар тараптагы текшерүү туннель түзмөгүндө дүйнөлүк көрүнгөн IPv6 дарегин жана ага багытталган маршрутту көрсөтөт, ошондуктан бул жаңылыштык менен кардардын бузулушу деп окулат. Трафик туннелге кирет, сервер аны декапсуляциялайт, андан соң пакет маршруттоо таблицасында реалдуу эч бир жерге IPv6 демейки маршруту жок хостко түшөт. Стекке жараша дароо жеткиликсиздик же үнсүз таштоо аласың, эки учурда тең кардар коргоо дубалына окшош убакыт чегин көрөт.
Кардарга тийүүдөн мурун сервердин өз маршруттоо таблицасын оку, анткени жолдун жетишпеген жарымы ошол жерде жашайт. Бир IPv4 демейки маршруту бар сервер сага жоопту эчак берген.
Декапсуляциядан кийин пакетти ээрчи
Туннелдин ичинде пакет кадимки IPv6, ал эми анын булагы кардардын дареги. Сервер транспорттук каптаманы чечет жана андан кийин кийинки IPv6 секирикке өткөрүлүшү керек болгон жергиликтүү IPv6 пакетин кармап турат. IPv4 демейки маршруту аны көтөрө албайт, ал эми аны IPv4-к которуу эч ким жайгаштырбаган башка функция. Бүткүл ийгиликсиздик ушул, жана анын VPN угуучусунун IPv4 аркылуу жооп бергенине эч кандай тиешеси жок.
IPv6-нын IPv4 үстүндөгү инкапсуляция механизми RFC 4213-тө сүрөттөлгөн, жана ал жердеги маанилүү деталь — учтарга туннелдин наркы жагында дагы эле чыныгы IPv6 байланышы керек. Аталышты ороп, upstream-ды жоктон жаратпайт.
Эки туннель катмары, эки көз карандысыз текшерүү
Ар бир катмарды өз-өзүнчө текшер, анткени иштеп жаткан сырткы туннель сынган ички туннелди жашырат. Сырткы жолду кардардан серверге IPv4 ping аркылуу текшер жана колдонуп жаткан портту ыраста. Андан кийин серверде ички жолду текшер, ал жерде ip -6 route демейки же чыныгы upstream-дан үйрөнгөн конкреттүү маршрутту көрсөтүүгө тийиш, жана ip -6 addr upstream кабыл алган булак префиксин көрсөтүүгө тийиш. Андан аз нерсе интерфейстеги жасалга гана.
Уникалдуу-жергиликтүү дарек, же дүйнөлүк көрүнгөн префикс, ага эч нерсе кайра маршрутталбаса, интерфейсте кубаныч менен пайда болуп, эч жакка барбайт. Коомдук жеткиликтүүлүктү upstream берет, даректин формасы эмес.
Ошол эле кардарга да тиешелүү: ip -6 route get 2001:4860:4860::8888 туннель түзмөгүн аташы керек, ал эми физикалык түзмөктү атаса, кардар IPv6 үчүн VPN-ды такыр колдонбойт.
Булак префикси, өлчөм жана ICMPv6
Upstream-дан өткөрүү үчүн кайсы булак префикстерин кабыл аларын сура, жана алардын бирин кардар пулу үчүн колдон. Сервердин өз интерфейси үчүн сага /64 берген провайдер сага экинчи /64 же чоңураак блокту сөзсүз маршруттабайт, ал эми айырма — бир түштөн кийинки оңдоо, аны колдоо билети бир суроо менен чечет. Жазуу түрүндө сура жана жоопту конфигурация менен бирге сакта.
Стекиң чындап колдонгон кошумча инкапсуляцияга бюджет коюп, ICMPv6-ны иштөөгө жөндөмдүү карма, Packet Too Big-ти кошкондо. Экинчи аталыш пайдалуу жүктү кичирейтет, ошондуктан кичине ping-дерге жооп берген жол файл өткөрүүдө баары бир ийгиликсиз болушу мүмкүн, ал эми бардык ICMPv6-ны таштаган коргоо дубалы оңдосо боло турган өлчөм маселесин кара көңдөйгө айландырат. Кызматты жарыялоодон мурун бир чоң өткөрүүнү сынап көр.
Кайсы нерсе таптакыр башка маселе
Бир гана IPv4 иштеген колдонмого бир гана IPv6 иштеген кардардан жетүү — бул туннелдөө эмес, котормо, жана атайын жайгаштырылган NAT64 сыяктуу нерсени талап кылат. Багыт сен бир кошумча туннель аталышын кошконуң үчүн гана аны түшүнбөйт. Тарыхый өтүү кызматтары да ошондой камкордукка татыктуу: RFC 7526 6to4 anycast реле моделин жокко чыгарды, ошондуктан анын айланасында жазылган колдонмо эми тейленүүчү коомдук релеси жок нерсени сүрөттөйт.
Эгер серверде колдонууга жарактуу IPv6 upstream жок болсо, тандоо — колдоого алынган upstream, башка чыгуу, же IPv6 туннелден тышкары калат деген документтелген чечим. Кабыл алынгыс нерсе — кардарларга IPv6 кызматы бар деп айтуу, ал эми ошол эле учурда алардын кадимки IPv6 байланышы VPN-ды үнсүз айланып өтөт.