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

Траг је доказ о дијагностици пре него доказ о преносу. Питање које вреди поставити јесте која од три везе није успела, а одговор долази из пакета, а не из облика излаза.

Звездица је одговор који недостаје, а не скок који недостаје

Traceroute иде према споља шаљући сонде чији TTL истиче један рутер даље у сваком кругу. Рутер који одбаци истеклу сонду требало би да врати поруку ICMP Time Exceeded са сопственим именом, и алат исписује то име. Алат заправо чека да та порука стигне у року. Ако рутер одговори са друге изворне адресе, ограничи колико често ствара грешке или одбаци сонду без речи, круг не даје ништа за испис.

Ниједан од тих исхода не каже да је предња путања покварена. Звездица је извештај о неодговореној пошти, а не о празном путу.

Метод сонде одлучује на који филтер наилазите

Подразумевани метод на Linux-у обично је UDP одредишни порт са високим бројем, Windows tracert шаље ICMP одјеке, а Linux-у се може рећи да уместо тога користи ICMP или TCP. Сваки од њих изгледа као друга врста саобраћаја за stateful firewall или безбедносну групу у облаку. Поређење 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-у.

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