Puncte:1

De ce un sistem trimite mesaje „timpul ICMP depășit în tranzit” atunci când redirecționează pachete?

drapel ch
WoJ

Am urmatoarea configuratie

| laptop A conectat prin Wireguard la un server - 192.168.20.3 |
  
| server B cu Wireguard (192.168.20.0) și conectat la o rețea LAN (192.168.10.2). Redirecționarea este activată |
  
| server C conectat la LAN (192.168.10.3) | 

Tabelul de rutare este activat B este:

# ip r
implicit prin 192.168.10.1 dev enp3s0 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-4f4174b6b888 proto kernel scope link src 172.18.0.1
192.168.10.0/24 dev enp3s0 proto kernel scope link src 192.168.10.2
192.168.20.0/24 dev wg0 proto kernel scope link src 192.168.20.0
192.168.20.3 dev wg0 proto static

Încerc să pun ping C din A (A ping B este in regula). Ping-ul eșuează.

Când urmăriți traficul B, Înțeleg

# tcpdump -i orice -nn icmp
tcpdump: tip de legătură de date LINUX_SLL2
tcpdump: ieșire verbosă suprimată, utilizați -v[v]... pentru decodarea completă a protocolului
ascultare pe orice tip de legătură LINUX_SLL2 (Linux cooked v2), lungimea instantaneului 262144 octeți
14:10:39.232603 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 157, lungime 72
14:10:39.232658 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: timpul ICMP a fost depășit în tranzit, lungime 100
14:10:39.240944 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 158, lungime 72
14:10:39.240983 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: timpul ICMP a fost depășit în tranzit, lungime 100
14:10:39.248667 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 159, lungime 72

Primul pachet (în) este Solicitare ecou ICMP trimis de la A la C (prin intermediul B) Al doilea pachet (out) ar trebui să fie B redirecționarea către C

Ce face Timpul ICMP a fost depășit în tranzit adică în acest caz?


EDITAȚI | ×

Am repornit serverul B iar acum ping-ul este bine. Este încă foarte ciudat, totuși. Mai jos este o singură sesiune a unui ping de la A la C, așa cum se vede pe B:

PS C:\Utilizatori\X> tracert -d 192.168.10.3

Urmărirea rutei către 192.168.10.3 pe maximum 30 de hop

  1 6 ms 6 ms 8 ms 192.168.20.0
  2 6 ms 6 ms 6 ms 192.168.10.3



root@srv ~# tcpdump -i orice -nn icmp
tcpdump: tip de legătură de date LINUX_SLL2
tcpdump: ieșire verbosă suprimată, utilizați -v[v]... pentru decodarea completă a protocolului
ascultare pe orice tip de legătură LINUX_SLL2 (Linux cooked v2), lungimea instantaneului 262144 octeți
15:01:39.235308 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 180, lungime 72
15:01:39.235355 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: timpul ICMP a fost depășit în tranzit, lungime 100
15:01:39.243813 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 181, lungime 72
15:01:39.243854 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: timpul ICMP a fost depășit în tranzit, lungime 100
15:01:39.251044 wg0 În IP 192.168.20.3 > 192.168.10.3: cerere de eco ICMP, id 1, seq 182, lungime 72
15:01:39.251075 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: timpul ICMP a fost depășit în tranzit, lungime 100
15:01:39.783426 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: gazdă ICMP 192.168.10.188 inaccesibil, lungime 82
15:01:39.783455 wg0 Ieșire IP 192.168.20.0 > 192.168.20.3: gazdă ICMP 192.168.10.188 inaccesibil, lungime 82
15:01:40.262055 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 183, lungime 72
15:01:40.262083 enp3s0 Ieșire IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 183, lungime 72
15:01:40.262509 enp3s0 În IP 192.168.10.3 > 192.168.20.3: ICMP echo răspuns, id 1, seq 183, lungime 72
15:01:40.262530 wg0 Ieșire IP 192.168.10.3 > 192.168.20.3: răspuns ecou ICMP, id 1, seq 183, lungime 72
15:01:40.270041 wg0 În IP 192.168.20.3 > 192.168.10.3: cerere de eco ICMP, id 1, seq 184, lungime 72
15:01:40.270068 enp3s0 Ieșire IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 184, lungime 72
15:01:40.270423 enp3s0 În IP 192.168.10.3 > 192.168.20.3: răspuns ecou ICMP, id 1, seq 184, lungime 72
15:01:40.270440 wg0 Ieșire IP 192.168.10.3 > 192.168.20.3: răspuns ecou ICMP, id 1, seq 184, lungime 72
15:01:40.278474 wg0 În IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 185, lungime 72
15:01:40.278493 enp3s0 Ieșire IP 192.168.20.3 > 192.168.10.3: Solicitare ecou ICMP, id 1, seq 185, lungime 72
15:01:40.278829 enp3s0 În IP 192.168.10.3 > 192.168.20.3: ICMP echo răspuns, id 1, seq 185, lungime 72
15:01:40.278842 wg0 Ieșire IP 192.168.10.3 > 192.168.20.3: răspuns ecou ICMP, id 1, seq 185, lungime 72

Este nevoie de câteva pachete cu Timpul ICMP a fost depășit în tranzit pentru a avea în sfârșit traficul corect.


Notă: aceasta este ruta „către” a pachetului, pe care o va parcurge cea „răspuns”. Cgateway-ul implicit al lui care cunoaște ruta pentru 192.168.20.0/24

Anton Danilov avatar
drapel cn
Verificați firewall-ul. Lipiți rezultatul lui `iptables-save -c`.
Paul avatar
drapel cn
În afara subiectului, dar care este caracterul din a doua linie a primului bloc de cod? FF nu îl poate afișa.
drapel ch
WoJ
@AntonDanilov: nu există firewall (cu excepția casetei ISP unde portul este redirecționat către serverul Wireguard). Odată ce tunelul este stabilit, nu există firewall.
drapel ch
WoJ
@Paul acesta este o săgeată în jos Unicode (https://unicode-table.com/en/1F817/). Poate in sectiunea de comentarii o sa vezi mai bine:
Anton Danilov avatar
drapel cn
Verificați ruta `ip get din iif wg0` și invers pe gazda B. Adăugați opțiunea `-v` la comanda `tcpdump` pentru a afișa valoarea originală TTL în pachetele ip.
Puncte:1
drapel jp

Timpul ICMP a fost depășit în tranzit înseamnă că TTL-ul pachetului a ajuns la zero, cel mai probabil din cauza unei bucle de rutare.

drapel ch
WoJ
Da, știu motivul tehnic al mesajului - doar că nu văd aici nicio buclă în rutare (`traceroute` se oprește la primul hop, de exemplu)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.