TCP handshake-ынан кейін ілініп қалған сұрау маршруттау мәселесі емес. Маршрут ақаулары handshake-ты сәтсіз етеді, сондықтан орнаған соң үнсіз қалған сессия жолдың ішіне нұсқайды: инспекция, MTU немесе туннельдің UDP пакеттерінің жету тәсілі. Алдыңыздағы шешім — сол жолды түзету немесе туннельді TCP-ге көшіру. Үш шарт мұны шешеді және олардың ешқайсысы дерекқор туралы емес.

Туннельді кінәламас бұрын тоқырауды жіктеңіз

Төрт нәтиже пайдаланушыға бірдей көрінеді, ал инженер үшін мүлдем басқа мағына береді.

What the client seesWhat it rules out
Connection refusedNothing is listening on the address and port the client reached
Timeout before the handshakeA filter, a missing route, or the wrong address
Handshake completes, query hangsThe session exists, so look at inspection, MTU and packet order
Stalls that recover on retryOften reordering, or a state table entry expiring

Туннельге уақыт жұмсауды тек соңғы екі жол ақтайды. VPN арқылы қабылданбаған қосылым әдетте дерекқордың тек loopback-те тыңдауы, бұл тыңдаушы мәселесі, ал handshake алдындағы таймаут сүзгі немесе маршрут. Екеуі де инкапсуляцияны өзгертуден жақсармайды.

Жіктеуді алдымен тикетке жазыңыз. Бұл ең арзан қадам және іздеу кеңістігінің көп бөлігін жояды.

UDP мен TCP арасында шешетін үш шарт

Инкапсуляцияланған IPsec трафигі UDP арқылы жүреді, ал UDP жолға ешкімге айтпай қайта реттеу және тастау еркіндігін береді. Қайта реттеу пакеттерді туннельдің қайталауға қарсы терезесінің сыртына итергенде, олар үнсіз жойылады және ішкі TCP сессиясы жай ғана күтеді. Сәтті handshake пен ешқашан қайтпайтын сұраудың артындағы механизм осы.

Жолды түзету немесе TCP-ге қайту үш нәрсеге байланысты. Біріншіден, жолда нақты пакет жоғалтуы бар ма, әлде тек қайта реттеу ме? Екіншіден, инспекция қайда жүретінін өзгерте аласыз ба, әлде бұл туннельді қайта реттейтін компоненттен шығара аласыз ба? Үшіншіден, жүктеме тоқырау үлгісіне сезімтал ма, мысалы бір байланысты бөлісетін көп мультиплексті сессиялар?

Егер бірінші жауап жоғалту болса, ал екіншісі жоқ болса,443-тегі TCP прагматикалық балама. Егер екінші жауап иә болса, жолды түзетіп, UDP-де қалыңыз.

Қолданба қатесін емес, firewall жазбасын оқыңыз

Қолданба таймаут туралы хабарлайды, бұл себеп туралы ештеңе айтпайды. Firewall-дың өз журналы — тастау немесе бұғаттау көрінетін жер, сондықтан дерекқор мен қолданба мекенжайлары бойынша сүзіп, қабылдаулармен қатар тастауларды да іздеңіз.Қауіптің алдын алу модульдері қолданба деңгейінде қате жасамай-ақ пакеттерді тастай алады, және бұл ілініп қалған сұраудың дәл пішіні. Журналдағы үнсіздік те дерек: ол журнал жүргізбейтін нәрсеге, мысалы қайта реттеуге нұсқайды.

Кластерді де тексеріңіз. Дұрыс конфигурацияланбаған кластер сессияны бір мүшенің күй кестесінде ұстап, пакеттер басқа мүшенің жолымен жүруі мүмкін, сондықтан жауаптар күй жоқ жерге келеді. Мұндай тоқыраулар кездейсоқ көрінеді және жүктемемен байланыспайды.

Бірдеңені өзгерту алдында екі ұшты салыстырыңыз және пакет санын емес, келу ретін салыстырыңыз:

tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcap

443-тегі TCP сізге шынымен қанша тұрады

Туннельді TCP-ге көшіру қайта реттеу симптомынан арылтады, өйткені аралық қорап енді реттелген ағынды көреді. Ол сонымен қатар TCP-over-TCP жасайды. Сыртқы қосылым ішкі қосылым қайта жіберген нәрсені қайта жібереді, ал бір жоғалту барлық мультиплексті сессияларды бірден тоқтатуы мүмкін. Таза жолда бұл көрінбейді. Жоғалтуы бар жолда емдеу симптомнан нашар.

Айырбас балама мүлде байланыс жоқ болғанда қолайлы және оны қалыпты деп қабылдаудың орнына жауаптысы бар ерекшелік ретінде құжаттау керек.

Тасымалдауды, портты, үлгі сұрауды және өлшенген нәтижені, сондай-ақ күнді жазып қойыңыз. Бұл жазбасыз келесі инженер тәжірибені қайталайды, ал ерекшелік үнсіз архитектураға айналады.

Шешімді қайта қарауға болатындай ұстаңыз

Жол диагностикасы тез ескіреді. Аралық қорап ауыстырылады, модуль конфигурациясы өзгереді, байланыс жаңартылады, ал 443-тегі TCP себебі жоғалады, конфигурация қалады. Ерекшелікке қайта қарау күнін қойып, UDP-ге қайтуға мүмкіндік беретін шартты атаңыз.

Екі тасымалдауды кіші сұраумен және үлкен нәтиже жиынтығымен сынап көріңіз. Қайта реттеу өлшемге тәуелді тоқырау ретінде көрінеді, ал тыңдаушы ақауы екі өлшемді де бірдей тоқтатады.

Қатысты мақалалар