Зошто traceroute умира во една насока низ VPN тунел
Трага што завршува во една насока и печати ѕвездички во другата обично е дијагностички проблем. Споредете методи на сонди, повратни патишта и вистинско барање.
Излезот на traceroute што завршува во една насока и печати редови ѕвездички во другата изгледа како асиметрично препраќање, а обично не е. Секој прикажан скок бара сондата да пристигне, рутерот да одлучи да одговори и одговорот да се врати и да се совпадне со сондата. Прекинете која било од овие алки и редот станува ѕвездичка, додека тунелот продолжува да пренесува податоци.
Трагата е доказ за дијагностиката пред да биде доказ за транспортот. Прашањето што вреди да се постави е која од трите алки не успеа, а одговорот доаѓа од пакетите, не од формата на излезот.
Ѕвездичка е отсутен одговор, не отсутен скок
Traceroute оди нанадвор испраќајќи сонди чиј TTL истекува еден рутер подалеку во секој круг. Рутерот што фрла истечена сонда треба да врати порака ICMP Time Exceeded што се именува себеси, и алатката го печати тоа име. Она што алатката всушност го чека е таа порака да пристигне во рок. Ако рутерот одговори од друга изворна адреса, го ограничи создавањето грешки или ја фрли сондата без збор, кругот не дава ништо за печатење.
Ниту еден од овие исходи не вели дека патот напред е скршен. Ѕвездичката е извештај за неодговорена пошта, не за празен пат.
Методот на сондата одлучува на кој филтер ќе наидете
Стандардниот метод на Linux обично е UDP одредишна порта со висок број, tracert на Windows испраќа ICMP ехо, а на Linux може да му се каже да користи ICMP или TCP наместо тоа. Секој од нив изгледа како различен вид сообраќај за огнено ѕид со состојба или за облачна безбедносна група. Споредувањето на UDP трага од едната страна со ICMP трага од другата споредува два различни експерименти. Фиксирајте го методот, фамилијата адреси, изворната адреса и рокот пред да ги наречете резултатите разлика.
За фер споредба, стартувајте ја трагата од домаќините што навистина го носат сообраќајот, а не од порта што препраќа во нивно име. Трагата генерирана од рутер ја користи сопствената изворна адреса и излезната политика на рутерот, кои можат да бидат построги од сите што гледа клиент. Запишете ја точната команда за следниот човек да може да ја повтори.
Вредноста на рокот е другата половина од експериментот и лесно се испушта од белешките. Чекањето две секунди на пренатоварен пат пријавува ѕвездички таму каде чекањето пет секунди пријавува скокови. Држете ја вредноста иста во сите извршувања за споредбата да остане за мрежата.
Повратниот пат е сопствена рута
ICMP грешка е обичен пакет со сопствен извор и одредиште и му треба рута назад до трагачот. Ако политиката на тунелот ги носи LAN префиксите, но не и адресата на рутерот што ја создал грешката, пораката излегува по пат што не може да ве достигне. Филтрирањето на одговори може да ја фрли дури и кога рутата постои, бидејќи пакетот пристигнува од неочекувана адреса на неочекуван интерфејс. Тоа е несовпаѓање во дијагностичката рамнина, не дефект на апликацијата.
Проширувањето на секој селектор додека трагата не заврши ја прави сликата поубава, а политиката полоша. Поправете ја конкретната дијагностичка адреса или прифатете ја ѕвездичката и тестирајте ја апликацијата на друг начин.
Потврдете го тунелот со вистинско барање
TCP ракувањето на сопствената порта на услугата го проверува препраќањето, повратното рутирање и филтрирањето во насоката што е важна. Командите подолу работат на двата краја и споредуваат што може да отвори секоја страна. Заменете ја портата на услугата и името на интерфејсот на тунелот со тие од вашето поставување.
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
Прво прочитајте ги двете извршувања на traceroute: ако ICMP извршувањето покажува скокови, а TCP извршувањето не, разликата е во методот, не во патот. Потоа земете го резултатот од curl како одговор на ниво на апликација, бидејќи завршена размена со разумен статусен код значи дека и напредниот и повратниот пат работат за вистински сообраќај. Списокот на сокети покажува дали врската воопшто е воспоставена, што ниту една трага не може да ви каже.
Тунел што носи интерактивна сесија во двете насоки додека еден traceroute печати ѕвездички е здрав и само нефотогеничен. Чувајте го излезот од командите од секоја страна како запис и третирајте ги скоковите што недостасуваат како отворено прашање за дијагностиката, а не како пресуда за VPN.