Význam MPLS v ICMP paketu (traceroute)

Hamparle

  • ****
  • 365
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Význam MPLS v ICMP paketu (traceroute)
« kdy: 07. 10. 2021, 18:26:26 »
Dělal jsem traceroute a zároveň záznam tcpdumpu (-v -n ). Proč ale některé zpáteční ICMP pakety mají nějaký MPLS přídomek? Kde se to používá a co to značí v ICMP? Je součástí i u jiných paketů?

Kód: [Vybrat]
normální request-response dvojice
IP (tos 0x0, ttl 10, id 14, offset 0, flags [none], proto ICMP (1), length 92)
    192.168.0.14 > XX.XX.XX.XX: ICMP echo request, id 0, seq 10, length 72
IP (tos 0x0, ttl 246, id 27715, offset 0, flags [none], proto ICMP (1), length 96)
    XX.XX.XX.XX > 192.168.0.14: ICMP time exceeded in-transit, length 76
IP (tos 0x0, ttl 1, id 14, offset 0, flags [none], proto ICMP (1), length 92)
    192.168.0.14 > XX.XX.XX.XX: ICMP echo request, id 0, seq 10, length 72

dvojice,kde odpověď má divnou strukturu

IP (tos 0x0, ttl 9, id 130, offset 0, flags [none], proto ICMP (1), length 92)
    192.168.0.14 > XX.XX.XX.XX: ICMP echo request, id 0, seq 157, length 72
IP (tos 0x0, ttl 245, id 26895, offset 0, flags [none], proto ICMP (1), length 168)
    XX.XX.XX.XX > 192.168.0.14: ICMP time exceeded in-transit, length 148
IP (tos 0x0, ttl 1, id 130, offset 0, flags [none], proto ICMP (1), length 92)
    192.168.0.14 > XX.XX.XX.XX: ICMP echo request, id 0, seq 157, length 72
MPLS extension v2, checksum 0x06e9 (correct), length 12
  MPLS Stack Entry Object (1), Class-Type: 1, length 8
    label 24845, exp 0, [S], ttl 253



M_D

  • ****
  • 335
    • Zobrazit profil
    • E-mail
Re:Význam MPLS v ICMP paketu (traceroute)
« Odpověď #1 kdy: 07. 10. 2021, 18:50:18 »
To se používá tam, kde ti transport dat v síti řeší přes MPLS akceleraci. Pokud se IP paket narve do MPLS, tak během cesty MPLS sítí se neaktualizulje TTL v IP záhlaví, ale dekrementuje se TTL v MPLS hlavičce. Takže když to dožije v MPLS cestě, tak se posílá pak zpět info, kde v MPLS cestě to chcíplo. :-)
Samozřejmě to chodí v případě, že je MPLS konfigurováno tak, aby se do MPLS vrstvy na entry bodě přeneslo TTL z IP záhlaví. Pokud se to nedělá, tak pak před tebou celá síť mezi vstupním a výstupním bodem MPLS sítě zmizí a jeví se to jako jeden hop.
Traceroute přes 3 krabice, MPLS nepřebírá TTL z IP:

 /tool traceroute 10.84.255.32 src-address=10.84.255.22
 # ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
 1 10.84.255.32                       0%    3   2.9ms     2.9     2.9     2.9       0

To stejné, pokud je do MPLS propagování TTL z IP (tskže je zpět hlášeno kudy to šlo, jakí to mělo MPLS značky na jednotlivých hopech):

/tool traceroute 10.84.255.32 src-address=10.84.255.22
 # ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
 1 10.84.0.137                        0%   10   2.9ms       3     2.9       3     0.1 <MPLS:L=189,E=0>
 2 10.84.0.10                         0%   10   2.9ms     2.8     2.8     2.9       0 <MPLS:L=51,E=0>
 3 10.84.255.32                       0%   10   2.8ms     2.8     2.8     2.8       0