Kāpēc traceroute mirst vienā virzienā caur VPN tuneli
Trase, kas pabeidzas vienā virzienā un otrā izdrukā zvaigznītes, parasti ir diagnostikas problēma. Salīdziniet zondes metodes, atgriešanās ceļus un reālu pieprasījumu.
Traceroute izvade, kas pabeidzas vienā virzienā un otrā izdrukā zvaigznīšu rindas, izskatās pēc asimetriskas pārsūtīšanas, un parasti tā nav. Katram parādītajam lēcienam ir vajadzīgs, lai zonde ierastos, lai maršrutētājs izlemtu atbildēt un lai atbilde atgrieztos un tiktu saskaņota ar zondi. Pārtrauciet jebkuru no šiem posmiem, un rinda kļūst par zvaigznīti, kamēr tunelis turpina pārvadāt datus.
Trase ir pierādījums par diagnostiku pirms tā ir pierādījums par transportu. Jautājums, ko ir vērts uzdot, ir kurš no trim posmiem neizdevās, un atbilde nāk no paketēm, nevis no izvades formas.
Zvaigznīte ir trūkstoša atbilde, nevis trūkstošs lēciens
Traceroute virzās uz āru, sūtot zondes, kuru TTL katrā kārtā beidzas vienu maršrutētāju tālāk. Maršrutētājam, kas izmet nokavētu zondi, būtu jāatgriež ICMP Time Exceeded ziņa ar savu nosaukumu, un rīks izdrukā šo nosaukumu. Tas, ko rīks faktiski gaida, ir šīs ziņas ierašanās termiņa laikā. Ja maršrutētājs atbild no citas avota adreses, ierobežo kļūdu ģenerēšanas biežumu vai izmet zondi bez vārda, kārta neko iespiežamu nedod.
Neviens no šiem rezultātiem nesaka, ka uz priekšu ejošais ceļš ir salauzts. Zvaigznīte ir ziņojums par neatbildētu pastu, nevis par tukšu ceļu.
Zondes metode nosaka, kādam filtram jūs uzdursieties
Noklusējuma metode Linux sistēmā parasti ir augsta numura UDP galamērķa ports, Windows tracert sūta ICMP atbalsis, un Linux var likt izmantot ICMP vai TCP tā vietā. Katrs no tiem izskatās kā cita veida trafiks stāvokļa ugunsmūrim vai mākoņa drošības grupai. UDP trases salīdzināšana no vienas puses ar ICMP trasi no otras puses salīdzina divus dažādus eksperimentus. Nofiksējiet metodi, adrešu saimi, avota adresi un termiņu, pirms saucat rezultātus par atšķirību.
Taisnīgam salīdzinājumam palaidiet trasi no tiem resursdatoriem, kuri patiešām pārvadā trafiku, nevis no vārtejas, kas to pārsūta viņu vārdā. Maršrutētāja ģenerēta trase izmanto paša maršrutētāja avota adresi un izejas politiku, kas var būt stingrākas par jebko, ko redz klients. Pierakstiet precīzo komandu, lai nākamā persona varētu to atkārtot.
Termiņa vērtība ir eksperimenta otrā puse, un to ir viegli izlaist piezīmēs. Divu sekunžu gaidīšana pārslogotā ceļā ziņo zvaigznītes tur, kur piecu sekunžu gaidīšana ziņo lēcienus. Saglabājiet vērtību identisku visos palaišanas gadījumos, lai salīdzinājums paliktu par tīklu.
Atgriešanās ceļš ir savs maršruts
ICMP kļūda ir parasts pakets ar savu avotu un galamērķi, un tai ir vajadzīgs maršruts atpakaļ pie sekotāja. Ja tuneļa politika pārvadā LAN prefiksus, bet ne maršrutētāja adresi, kas ģenerēja kļūdu, ziņa iziet pa ceļu, kas jūs nevar sasniegt. Atbilžu filtrēšana to var izmest arī tad, kad maršruts pastāv, jo pakets ierodas no negaidītas adreses negaidītā saskarnē. Tā ir neatbilstība diagnostikas plaknē, nevis lietojumprogrammas kļūme.
Katra selektora paplašināšana, līdz trase pabeidzas, padara attēlu skaistāku un politiku sliktāku. Salabojiet konkrēto diagnostikas adresi, vai pieņemiet zvaigznīti un pārbaudiet lietojumprogrammu citā veidā.
Apstipriniet tuneli ar reālu pieprasījumu
TCP rokas paspiešana pakalpojuma pašā portā pārbauda pārsūtīšanu, atgriešanās maršrutēšanu un filtrēšanu virzienā, kuram ir nozīme. Tālāk dotās komandas darbojas abos galos un salīdzina, ko katra puse var atvērt. Aizstājiet pakalpojuma portu un tuneļa saskarnes nosaukumu ar savas konfigurācijas vērtībām.
traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established
Vispirms izlasiet divus traceroute palaišanas gadījumus: ja ICMP palaišana rāda lēcienus un TCP palaišana ne, atšķirība ir metodē, ne ceļā. Pēc tam ņemiet curl rezultātu kā lietojumprogrammas līmeņa atbildi, jo pabeigta apmaiņa ar saprātīgu statusa kodu nozīmē, ka gan uz priekšu, gan atpakaļ ejošie ceļi strādā reālam trafikam. Ligzdu saraksts rāda, vai savienojums vispār ir izveidots, ko neviena trase nevar pateikt.
Tunelis, kas abos virzienos pārvadā interaktīvu sesiju, kamēr viens traceroute izdrukā zvaigznītes, ir veselīgs un vienkārši nefotogēnisks. Saglabājiet katras puses komandu izvadi kā ierakstu, un iztrūkstošos lēcienus uzskatiet par atklātu jautājumu par diagnostiku, nevis spriedumu par VPN.