NAT L2TP/IPsecти бузат деген ырастоо жарым-жартылай туура жана ошондуктан пайдасыз. Даректи которуу кадимки нерсе, NAT traversal так ошондон аман калуу үчүн бар, жана күн сайын миллиондогон клиенттер маршрутизатордун артынан туташат. Бузулган нерсе — белгилүү алмашуунун белгилүү баскычы: IKE эч качан жооп албайт, капсулдалган туннель бир гана протоколго уруксат берген саясат менен ташталат, же туннель бош турганда которуу картасы бүтөт. Кайсы баскычта экениңизди билгенден кийин, оңдоо адатта бир эреже же keepalive, жаңы VPN дизайны эмес.

Миф — туура эмес суроо

Пайдалуу суроо «NAT муну бузабы» эмес, «алмашуунун кайсы бөлүгү которулат жана которгон түзмөк аны менен эмне кылат». L2TP/IPsec — катмарлуу протокол: IKE сүйлөшүү жүргүзөт, ESP коргойт, ал эми L2TP ошол коргоонун ичинде PPP алып жүрөт. Даректерди которуу ар бир катмарга башкача таасир этет, жана ката терезесин эмес, сүйлөшүү баскычын карасаңыз, бузулуу белгилерин ажыратууга болот.

Вебди ийгиликтүү серептеген маршрутизатор баштапкы портту которуу менен TCP иштээрин гана далилдейт. Ал UDP 500, UDP 4500 же 50 протоколу жөнүндө эч нерсе айтпайт, жана бул жайгаштыруу так ушул үч нерсеге көз каранды.

1-баскыч: IKE сөзсүз жооп алышы керек

Биринчи алмашуу UDP 500 аркылуу жооп берүүчүгө барат. Эгер жооп кайтпаса, калганынын баары маанисиз: алдын ала бөлүшүлгөн ачкыч, сунуш жана каттоо маалыматтары окулбай калат. Клиенттин тайм-аутунан божомолдоонун ордуна суроо менен жоопту байкаңыз:

sudo tcpdump -n -i any 'udp port 500 or udp port 4500 or proto 50'
swanctl --list-sas

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

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

2-баскыч: капсулдоо firewall көргөн нерсени өзгөртөт

ESP — IP протоколу, TCP же UDP порту эмес, жана кадимки порт дарегин которууда кайра жаза турган порт талаасы жок. Ошондуктан NAT traversal корголгон жүктү UDP 4500гө жылдырат: капсулдоо которуучу түзмөккө которууну билген нерсе берет. Бул болгондон кийин, UDP 500 үчүн гана жазылган firewall эрежеси сүйлөшүүгө уруксат берип, туннелди таштайт, бул журналда ийгиликтүү 1-фаза жана трафик жок деп көрсөткөн баш аламан натыйжа берет.

IKE алмашуусу да NAT аныкталгандан кийин UDP 4500гө өтүшү мүмкүн, бул 500гө гана уруксат бергендерди таң калтырат. Жолдо эки портту эки багытта тең уруксат кылыңыз, жана абалдуу firewall агымды трафикти көргөнчө гана кармай турганын унутпаңыз.

50 протоколу которуусуз жолдордо жана ортолук куту уруксат берүүгө конфигурацияланган жолдордо дагы эле маанилүү. Эгер жок кылуу менен диагностика жасасаңыз, эрежелерди үйүп кошуунун ордуна божомолду өчүрүңүз: 500, 4500 жана ESPге уруксат бериңиз, туннел көтөрүлөрүн текшериңиз, анан ашыкча болуп чыкканды алып салыңыз. Эч ким түшүндүрө албаган эреже — кийинки үзгүлтүктүн себеби болгондо эч ким алып салбаган эреже. Тартууну өзгөртүүлөр журналына оңдогон баскычы менен бирге жазыңыз, кийинки инженер ошол эле манжа эрежесинен эмес, сиздин далилдериңизден башташ үчүн.

3-баскыч: карталоо бүтүп, туннель өлөт

Которуучу түзмөк жиберген агымдар үчүн абалды сактайт, жана бул абалдын жашоо мөөнөтү бар. L2TP/IPsec туннели эч ким колдонбогондо аз трафик алып жүрөт, ошондуктан бош туннель өз картасынан узак жашап, кайтарылган трафикти кабыл алууну токтотушу мүмкүн. Клиент туташкан деп ишенип калат, сервер эч нерсе көрбөйт, жана биринчи белги адатта VPN катасы эмес, колдонмонун тайм-ауту.

Өлгөн өнөктөштү аныктоо жана NAT keepalive ушул үчүн бар, жана эки тарап тең аларды жөнөтүүгө даяр болушу керек. Эгер сервериңиз которуунун артында болсо, Windows тарабындагы талап — серверди өзүнүн чыгуучу пакеттери үчүн UDP капсулдоону божомолдоого мажбурлаган документтештирилген реестр параметри; ансыз жооп берүүчү которуучу түзмөк кайтара албаган ESP жиберет. Бул сервер конфигурациясынын маселеси, клиенттики эмес.

WAN дарегинин өзгөрүшү башка тараптан ушундай эле натыйжа берет: карталоо жаңы дарегдин айланасында кайра курулат, жана эски коопсуздук бирикмеси эми жок болгон жупка көрсөтөт. Кайра туташуу жүрүм-туруму клиенттин ишке ашырылышына таандык, ошондуктан «маршрутизатор кайра күйгүзүлгөндөн кийин кайра туташ» бир клиентте иштеп, экинчисинде кол менен которгуч талап кылынат.

Оператор деңгээлиндеги NAT артында хостинг — башка маселе

Үйдө L2TP/IPsec серверин хостингге алып, ага сырттан жетүүнү кааласаңыз, талап — суралбаган кирүү жеткиликтүүлүгү, жана бул NAT traversal сунуштаган нерсе эмес. Маршрутизаторуңуздун алдында оператор деңгээлиндеги NAT болсо, коомдук дарек бөлүшүлгөн жана карталоо чыгуучу гана болгондуктан, сизди жеткиликтүү кыла турган багыттай турган порт жок.

Эч бир IPsec pass-through белгиси муну өзгөртпөйт, жана эч бир клиент конфигурациясы анын ордун толтурбайт. Колдоого алынган жооптор — чындап жеткиликтүү дарек, хостингделген акыркы чекит, же ар бир катышуучу чыгуучу туташуу түзгөн архитектура. UDP капсулдоо спецификациясы бар агымдар үчүн которуу маселесин чечет; оператор сунуштабаган жерде кирүү жолун түзбөйт.

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

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