NAT арқылы L2TP/IPsec: шын мәнінде не бұзылады және неге
NAT traversal ESP-ді UDP ішіне көшіреді, ал карталау, firewall және оператор әрқайсысы әртүрлі сәтсіздікке ұшырайды. Клиентті кінәламас бұрын кезеңді анықтаңыз.
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 капсулалау спецификациясы бар ағындар үшін аудару мәселесін шешеді; оператор ұсынбаған жерде ол киру жолын жасамайды.
Сондықтан болжамай, желілерді салыстырыңыз. Сол құрылғы мен профильді рұқсат етілген басқа желіге апарып, онда қай кезең сәтсіз болатынын көріңіз. Басқа жерде жұмыс істесе, айырмашылық жолда, және бұл іздеуді бүкіл конфигурацияның орнына жоғарыдағы үш кезеңге тарылтады.