Упит који виси после TCP руковања није проблем рутирања. Грешке руте обарају руковање, па сесија која се успостави и затим утихне упућује на унутрашњост путање: инспекцију, 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-у, што је проблем слушаоца, а истек времена пре руковања је филтер или рута. Ни једно се не побољшава променом инкапсулације.

Прво упишите класификацију у тикет. То је најјефтинији корак и уклања већину простора претраге.

Три услова која одлучују између UDP-а и TCP-а

Инкапсулирани IPsec саобраћај иде преко UDP-а, а UDP даје путањи слободу да преређа и одбацује без да икоме каже. Када преређивање изгура пакете изван прозора против понављања тунела, они се тихо одбацују, а унутрашња TCP сесија једноставно чека. То је механизам иза успешног руковања и упита који се никад не враћа.

Поправка путање или повратак на TCP зависи од три ствари. Прво, постоји ли стварни губитак пакета на путањи или само преређивање? Друго, можете ли да промените где се обавља инспекција или да искључите овај тунел из компоненте која преређа? Треће, је ли оптерећење осетљиво на образац застоја, на пример много мултиплексираних сесија које деле једну везу?

Ако је први одговор губитак, а други не,TCP на 443 је прагматична замена. Ако је други одговор да, поправите путању и задржите UDP.

Читајте запис заштитног зида, а не грешку апликације

Апликација пријављује истек времена, што не говори ништа о узроку. Сопствени лог заштитног зида је место где се одбацивање или блокирање појављује, зато филтрирајте по адресама базе и апликације и тражите одбацивања као и прихватања.Модули за спречавање претњи могу да одбаце пакете без стварања грешке на нивоу апликације, а то је тачно облик упита који виси. Тишина у логу је такође податак: упућује на нешто што не логира, попут преређивања.

Проверите и кластер. Погрешно конфигурисан кластер може да држи сесију у табели стања на једном члану док пакети иду путањом другог члана, па одговори стижу тамо где стања нема. Такви застоји изгледају случајно и не корелирају са оптерећењем.

Упоредите оба краја пре било какве промене и упоредите редослед доласка, а не број пакета:

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

Шта вас TCP на 443 заиста кошта

Премештање тунела на TCP уклања симптом преређивања, јер посредник сада види уредан ток. Ствара и TCP преко TCP-а. Спољна веза поново шаље оно што је унутрашња већ послала, и један губитак може да заустави све мултиплексиране сесије одједном. На чистој путањи то је невидљиво. На путањи са губицима лек је гори од симптома.

Замена је прихватљива када је алтернатива никаква повезаност и треба је документовати као изузетак са одговорним лицем, а не прихватити као нормално.

Забележите транспорт, порт, пример упита и измерени резултат, плус датум. Без тог записа следећи инжењер понавља експеримент, а изузетак тихо постаје архитектура.

Држите одлуку прегледном

Дијагноза путање брзо стари. Посредник се замењује, конфигурација модула се мења, веза се надграђује, а разлог за TCP на 443 нестаје док конфигурација остаје. Ставите датум прегледа на изузетак и именујте услов који би вам омогућио повратак на UDP.

Тестирајте оба транспорта малим упитом и великим скупом резултата. Преређивање се показује као застоји зависни од величине, док квар слушаоца зауставља обе величине једнако.

Повезани чланци