traceroute - jak vlastně funguje, proč pomalé

traceroute - jak vlastně funguje, proč pomalé
« kdy: 13. 04. 2020, 10:54:21 »
Když zadám traceroute, občas se hodně načekám. Hlavně se to třeba na 10 s zasekne někde (samozřejmě k cíli se normálně připojím). To se děje proč (jiný důvod než neodpovídání na ping)? Ono to není extrarychlé (například po půl sekundě) i na řádcích u kterých to ukazuje 30ms. Za další, ty hodnoty jsou ekvivalent pingu  a jsou vždy inkrementální(součet předchozích) a nebo jen pro daný hop ?

Jak vlastně funguje tracert? je to ICMP? Jak se můj PC dozví IP adresy meziuzlů? Pokud bych si pustil wireshark, to co uvidím, je vše (veškeré kroky vycházejí z mého PC) a nebo součástí "Trasování" je i komunikace mezi ostatními uzly (že třetí hop v cestě sám  až dostane impuls, sám začne komunikovat s pátým, čvtrým, posledním(cíl) nebo mnou)?


Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #1 kdy: 13. 04. 2020, 11:17:19 »
Když zadám traceroute, občas se hodně načekám. Hlavně se to třeba na 10 s zasekne někde (samozřejmě k cíli se normálně připojím). To se děje proč (jiný důvod než neodpovídání na ping)? Ono to není extrarychlé (například po půl sekundě) i na řádcích u kterých to ukazuje 30ms. Za další, ty hodnoty jsou ekvivalent pingu  a jsou vždy inkrementální(součet předchozích) a nebo jen pro daný hop ?
Zkuste MTR

Citace
Jak vlastně funguje tracert? je to ICMP?
z hlavy nevim, ale zjistite to sniffnutim par packetu

Citace
Jak se můj PC dozví IP adresy meziuzlů?
Tipuju ze to zvysuje TTL a kouka od jakeho stroje prisla chybova hlaska, jelikoz pruchod kazdym routerem zvysuje TTL packetu o 1. Posle packet s TTL=0 a hned prvni router vrati error "Time exceeded" (nebo tak neco) z cehoz si traceroute vezme jeho IP adresu a ukaze ji jako prvni hop. Pak posle packet s TTL=1 atd...

Citace
Pokud bych si pustil wireshark, to co uvidím, je vše (veškeré kroky vycházejí z mého PC) a nebo součástí "Trasování" je i komunikace mezi ostatními uzly (že třetí hop v cestě sám  až dostane impuls, sám začne komunikovat s pátým, čvtrým, posledním(cíl) nebo mnou)?
tak to zkuste a uvidite, podle me zalezi na implementaci traceroutu

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #2 kdy: 13. 04. 2020, 12:37:13 »
Citace
Citace
Jak se můj PC dozví IP adresy meziuzlů?
Tipuju ze to zvysuje TTL a kouka od jakeho stroje prisla chybova hlaska, jelikoz pruchod kazdym routerem zvysuje TTL packetu o 1. Posle packet s TTL=0 a hned prvni router vrati error "Time exceeded" (nebo tak neco) z cehoz si traceroute vezme jeho IP adresu a ukaze ji jako prvni hop. Pak posle packet s TTL=1 atd...
Přesně tak funguje. Navíc každý takový packet pošle několikrát aby nebyl výsledek ovlivněný náhodnou chubou na síti - pak může pro každý hop vypsat minimální, maximální a průměrnou dobu odezvy.
Z běžného provozu se není jak dozvědět kudy packet chodí, nezapisuje se to do něj, router si jen z packetu přečte cílovou IP adresu a dle své routovací tabulky ho pošle nejbližšímu dalšímu routeru s TTL sníženým o 1.

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #3 kdy: 13. 04. 2020, 13:38:44 »
Jeden priklad jsem pro vas uplacal, kdyz jsou ty velikonoce. Ulozte do souboru s priponou .cmd na W10©®™ a cil dejte jako parametr.

Kód: [Vybrat]
@echo off
set "E=["
REM == Provide hostname or IP address as an only parameter
if not "%~1"=="" (set "host=%~1") else (echo Parameter missing & exit /B)
echo.
echo Trivial Traceroute - Powered by %E%31;1;4mMS Windows%E%m(r)(c)(tm)
echo.
for /l %%a in (1,1,10) do (
for /f "tokens=3 delims=: " %%A in ('
ping -n 1 -i %%a %host% ^| findstr /C:"Reply from" /C:"Odpověď od"
') do (
if not "%%A"=="%host%" (
echo %%A
) else (
echo %%A
exit /B
)
)
)

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #4 kdy: 13. 04. 2020, 14:14:28 »
Jeste jsem to trosku poladil, ted to ma nastavitelny timout a melo by to chodit na jakekoliv jazykove verzi W10.

Kód: [Vybrat]
@echo off
set "E=["
set "timeout=300"
REM == Provide hostname or IP address as an only parameter
if not "%~1"=="" (set "host=%~1") else (echo Parameter missing & exit /B)
echo.
echo Trivial Traceroute - Powered by %E%31;1;4mMS Windows%E%m(r)(c)
echo.
for /l %%a in (1,1,10) do (
for /f "tokens=3 delims=: " %%A in ('
ping -w %timeout% -n 1 -i %%a %host% ^| findstr /R "\<TTL\>"
') do (
if not "%%A"=="%host%" (
echo %%A
) else (
echo %%A
exit /B
)
)
)


Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #5 kdy: 13. 04. 2020, 14:21:24 »
Když zadám traceroute, občas se hodně načekám. Hlavně se to třeba na 10 s zasekne někde (samozřejmě k cíli se normálně připojím). To se děje proč (jiný důvod než neodpovídání na ping)? Ono to není extrarychlé (například po půl sekundě) i na řádcích u kterých to ukazuje 30ms.

Spusť traceroute s parametrem -n aby ti vypisoval jen IP adresy a ne hostname (většina čekání je způsobena čekáním na DNS)

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #6 kdy: 13. 04. 2020, 14:33:06 »
Spusť traceroute s parametrem -n aby ti vypisoval jen IP adresy a ne hostname (většina čekání je způsobena čekáním na DNS)

A já bych ještě doporučil přidat parametr -I, protože traceroute jinak používá UDP pakety a některé routery po cestě na to mají firewall...

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #7 kdy: 13. 04. 2020, 14:37:36 »
Tak princip už jsem se dozvěděl. Routery po cest (uzly) spolu nijak nekooperují, vše jde ode mně. Pomocí -d jsem měl vyplé DNS vyzvídání.

Dál jsem se dozvěděl, že některé uzly neodpovídají, protože prostě mají  ICMP vyplé (ale může být i UDP/TCP tracert na unixu) a hlavně z důvodu obavy o prozrazení topologie.infrastruktury. Mohou i některé sítě či routery s TTL  manipulovat jinak než dekremenatcí (to zní jak defekací) že nějak budou švindlovat? Například na základě cíle/zdroje/zátěže nebo jiné situace? Děje se to? Z jakých důvodů?

Citace
Některé směrovače zobrazují chybovou zprávu „timeout“, protože je pravděpodobné, že budou mít na svých počítačích omezený dohled, protože je součástí vnitřní sítě operátora.
To jsem se dočetl na nějakém špatně přelozeném webu.
To je něco jiného, než to předtím? Jestli tomu kvazipřekladu rozumím, tak tím myslí, že v síti nějaké organizace (operátora,datacentra atd)  jsou  pro okolní svět "routery uvnitř schované", tzn. že nejenže neodpovídají na pingECHO, ale ani nesnižují TTL kolikrát by odpovídalo reálnému počtu  routerů tam (ale třeba jen 2x). To se také děje? (Z důvodu výše - vyzrazení nebo optimalizace)
« Poslední změna: 13. 04. 2020, 14:39:18 od Pivotal »

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #8 kdy: 13. 04. 2020, 14:56:04 »
nesnižují TTL kolikrát by odpovídalo reálnému počtu  routerů tam (ale třeba jen 2x). To se také děje?

Snizovani TTL pri pruchodu packetu je primarne ochrana proti pretizeni site pri jejich zacykleni (vyuziti tohoto chovani traceroutem je IMHO jen side effect). Aby v pripade spatne nastaveneho routingu nelitaly pakety donekonecna mezi dvema routery, ale byly zahozeny kdyz se jim TTL snizi na 0. Tohle podle me nikdo kvuli utajeni topologie nebude riskovat a nejsem si jist ze to na HW routerech vubec jde nastavit.

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #9 kdy: 14. 04. 2020, 04:58:39 »
Když se podíváte do administrace Mikrotiku (třeba zde http://demo.mt.lv/), v „Mangle“ IPv4 najdete „change TTL“, v „Mangle“ IPv6 najdete „change hop limit“, oboje je možno libovolně nastavit. Předpokládám, že další routery to budou mít taky.

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #10 kdy: 14. 04. 2020, 08:26:42 »
Ale to se týká úvodní hodnoty TTL pro odchozí pakety, ne změny TTL pro routované pakety z jiných zdrojů.

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #11 kdy: 14. 04. 2020, 08:33:14 »
Tak beru zpět, ono to jde nastavovat pro jakýkoliv packet.  :D

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #12 kdy: 14. 04. 2020, 09:21:11 »
Když se podíváte do administrace Mikrotiku (třeba zde http://demo.mt.lv/), v „Mangle“ IPv4 najdete „change TTL“, v „Mangle“ IPv6 najdete „change hop limit“, oboje je možno libovolně nastavit. Předpokládám, že další routery to budou mít taky.

Necetl jsem pozorne otazku, pochopil jsem to jako vypnout snizovani TTL. Hodnoty upravuje nejak jinak nez "snizit o 1" kdejaka cinska krabicka. Pouzivalo se to drive kvuli zatajeni sdileni internetu dalsim osobam.

Re:traceroute - jak vlastně funguje, proč pomalé
« Odpověď #13 kdy: 21. 04. 2020, 01:40:59 »
Nahodou jsem prace narazil na to, jak traceroute vznikl:

"I was insanely jealous when Van Jacobson of LBL used my kernel ICMP support to write TRACEROUTE, by realizing that he could get ICMP Time-to-Live Exceeded messages when pinging by modulating the IP time to life (TTL) field."

https://ftp.arl.army.mil/~mike/ping.html