Oväntat kort traceroute i stadsnät, hur fungerar detta?

Permalänk
Hedersmedlem

Oväntat kort traceroute i stadsnät, hur fungerar detta?

Jag frågar av rent intresse, det var länge sedan jag gjorde något mer avancerat med nätverk än att koppla in en hemmarouter eller switch. Pluggade dock en del för bra många år sedan.

Föräldrarnas uppkoppling strular ganska rejält (mestadels nere, i övrigt hög packet loss) just nu, så jag håller lite koll på den hemifrån mig. Felet är hos Tele2 eller stadsnätet, och det är felanmält.
Jag tänkte köra en traceroute nu när uppkopplingen just nu fungerar, och se var någonstans på vägen felet verkar ligga, men blev väldigt förvånad när jag såg resultatet:

Tracing route to c90-142-x-x.bredband.tele2.se [90.142.x.x] over a maximum of 30 hops: 1 <1 ms <1 ms <1 ms 192.168.0.1 2 3 ms 2 ms 2 ms h-5-150-y-y.A980.priv.bahnhof.se [5.150.y.y] 3 74 ms 10 ms 10 ms c90-142-x-x.bredband.tele2.se [90.142.x.x]

Jag visste inte ens att det där var möjligt, med olika operatörer och allt. Vi bor dock nära varandra, med typ 2 km avstånd, och båda lägenheterna har fiber. Jag trodde det var olika nät, men jag antar att det är samma i grunden då, trots att de ansluter via annan tjänsteportal och så.

Är det verkligen ingen router mellan alls, eller döljer de hopp i tracerouten? Och hur fungerar det oavsett vilket av de två?
Om det inte är några routrar, hur är det egentligen sammankopplat?

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem

Med tanke på hur pass stor tidsskillnad det är mellan hopp "2" och "3" så ligger det nog ytterligare ett hopp eller två däremellan som inte syns på tracen.

Permalänk
Medlem

Många gånger sitter dom två operatörernas utrustning en halv meter ifrån varandra. Dels har du samfinansierade tele-stationer där många operatörer har sin utrustning, sen har du andra utbytes punkter där operatörer är direkt sammanlänkade. Bahnhof och Tele2 har definitivt några fiberlänkar mellan sig.

Men i ditt fall har du några hopp som inte syns

Visa signatur

Ryzen 5800x @ 32gb 3200mhz @ 7tb ssd @ 3060ti Fractal r5 @ Arch
i5 4670k @ 24gb 1600mhz @ Fractal r3 @ 12tb ZFS @ Truenas Scale
Thinkpad T450 @ i5 5300u @ 16gb @ 512gb ssd @ 24+48wh batteri @ Debian

Permalänk
Medlem
Skrivet av sleepyoh:

Många gånger sitter dom två operatörernas utrustning en halv meter ifrån varandra. Dels har du samfinansierade tele-stationer där många operatörer har sin utrustning, sen har du andra utbytes punkter där operatörer är direkt sammanlänkade. Bahnhof och Tele2 har definitivt några fiberlänkar mellan sig.

Men i ditt fall har du några hopp som inte syns

Jo, men då förväntar jag ändå mig att se minst 1 tele2-router innan slutdestination?

Hur kan en router dölja sig från traceroute? Ignorerar vissa routrar TTL?

EDIT: ett annat alternativ är att tele2 kör CGNAT och du därför bara når dit.

Permalänk
Medlem

Är ganska trivialt att blockera att TTL expired skall skickas i en router. Även när andra transporter används såsom MPLS är det oerhört vanligt att man döljer hela MPLS molnet ifrån en traceroute då IP paketets TTL går oförändrat ingress/egress igenom molnet (eller annan overlay transport). Det är nog mest troligt att detta är vad som sker i ditt fall då latency hoppet är såpass stort, att det bör vara en hel del routrar som passeras på vägen.

Visa signatur

Networking geek, #28735

Permalänk
Medlem
Skrivet av dlq84:

Jo, men då förväntar jag ändå mig att se minst 1 tele2-router innan slutdestination?

Hur kan en router dölja sig från traceroute? Ignorerar vissa routrar TTL?

EDIT: ett annat alternativ är att tele2 kör CGNAT och du därför bara når dit.

Ja givetvis har du flera hopp till slutdestination, ville mest visa exempel på att alla operatörer är ihopkopplade på flera olika typer av platser, eller att dom har utrustning på flera olika platser utan att behöva peera med varandra där.

Visa signatur

Ryzen 5800x @ 32gb 3200mhz @ 7tb ssd @ 3060ti Fractal r5 @ Arch
i5 4670k @ 24gb 1600mhz @ Fractal r3 @ 12tb ZFS @ Truenas Scale
Thinkpad T450 @ i5 5300u @ 16gb @ 512gb ssd @ 24+48wh batteri @ Debian

Permalänk
Medlem

Går det att tracerouta över IPv6?

Det skulle kunna vara så att operatörerna bara har v6 mellan varandra och tunnlar v4 över v6?

Förutom adressrymden så var ett av designmisstagen i v4 att CRC måste räknas om i varje hopp när TTL minskar. Det vore intressant att veta om det finns urtustning som medvetet snålar på det.

Permalänk
Medlem

Det har inte med vilken kommunikationsoperatör som tillhandahåller dem olika tjänsterna?
Vi hade ViaEuropa som KO innan och då kunde man se alla hopp genom hela tex Bahnhof kedja från start till slutdestinationen. Men när vi bytte till Telia som KO, så blev det precis som TS beskriver.

Visa signatur

Intel i5 12600K | 128 GB DDR4 3600 Mhz
ASUS TUF Z690-PLUS D4 | ASUS TUF VG32VQ 32" 1440p
XFX 6900 XT Merc 319 Black Limited
HP ProLiant DL380p Gen8 | HP MicroServer Gen 8 |
Mikrotik 10 GbE Networking

Permalänk
Medlem
Skrivet av dlq84:

Jo, men då förväntar jag ändå mig att se minst 1 tele2-router innan slutdestination?

Hur kan en router dölja sig från traceroute? Ignorerar vissa routrar TTL?

EDIT: ett annat alternativ är att tele2 kör CGNAT och du därför bara når dit.

Det görs via iptables (xtables), som står för de avancerade funktionerna inom ipfilter, såsom automatisk bannlysning vid repeat offenders (brute och slow force).
Traceroute dödas på följande vis av ett system ("DPI", TTL-filtrering av traceroute):
"-m ttl --ttl-lt 4" (laddar TTL-modulen, inspekterar efter TTL-fönster som är 3 eller mindre (traceroutes)).

Regeln ser ut som följande för en iptablesbaserad firewall (ungefär):
"iptables -A INPUT -m ttl --ttl-lt 4 -j DROP"

Använd ej denne, denne släpper helt enkelt paketet utan att logga, och kommer hamna i fel ordning, det är bara ett exempel på hur filtrering i en firewall görs emot traceroute.
Förklaring nedan för de olika direktiven:
-A = append, dvs lägg sist i regelverket, i INPUT-kedjan (ett alternativ), -m laddar en modul (teknikstödet) och sedan inspekteras paketens TTL-fönster och vid matchning på lågt TTL-värde jordas paketet, utan loggning eller svar (släpps fysiskt/ignoreras), berör inte normal trafik och bör hanteras separat, i rätt ordningsföljd (mycket viktigt..) i filtret.

För att inte synas, krävs det att ICMP timeout-exceeded inte skickas som svar eller jordning direkt vid inkommande paket som TTL-metoden ger, men det går även att filtrera på att blockera utgående ICMP-pakettyp (inget svar således, men det skapar nätverksprestandaproblem istället i viss mån). Någr andra metoder finns med, men dessa orsakar systemfel i regel.
Inte det enklaste området, men jag hoppas det är halvförståbart iaf.

Edit, Googlesvar:
"traceroute sends UDP packets with ttl=1 to get first layer3 device on route ttl=2 to get second and and so one to the target, because of ttl=0 on device device will send back ICMP message time exceeded.."

Jag hoppas detta besvarar din fråga i detalj kring just filtrering av traceroutes.