Portál AbcLinuxu, 10. května 2025 23:04
Cau
mam dva linux hosty v tej istej sieti 192.168.5.0/24
spravim cisty (bez optionov) traceroute z hostu A na host B
prvy traceroute prejde cisto
11:44:57.987727 IP hostA.40462 > hostB.33434: UDP, length 32 11:44:57.987808 IP hostB > hostA: ICMP hostB udp port 33434 unreachable, length 68 11:44:57.987819 IP hostA.50416 > hostB.33435: UDP, length 32 11:44:57.987824 IP hostB > hostA: ICMP hostB udp port 33435 unreachable, length 68 11:44:57.987830 IP hostA.45088 > hostB.33436: UDP, length 32 11:44:57.987834 IP hostB > hostA: ICMP hostB udp port 33436 unreachable, length 68 11:44:57.987840 IP hostA.34888 > hostB.33437: UDP, length 32 11:44:57.987844 IP hostB > hostA: ICMP hostB udp port 33437 unreachable, length 68 11:44:57.987850 IP hostA.41011 > hostB.33438: UDP, length 32 11:44:57.987854 IP hostB > hostA: ICMP hostB udp port 33438 unreachable, length 68 11:44:57.987860 IP hostA.53528 > hostB.33439: UDP, length 32 11:44:57.987864 IP hostB > hostA: ICMP hostB udp port 33439 unreachable, length 68 11:44:57.987870 IP hostA.45269 > hostB.33440: UDP, length 32 11:44:57.987878 IP hostA.55936 > hostB.33441: UDP, length 32 11:44:57.987881 IP hostA.47068 > hostB.33442: UDP, length 32 11:44:57.987885 IP hostA.55858 > hostB.33443: UDP, length 32 11:44:57.987889 IP hostA.40855 > hostB.33444: UDP, length 32 11:44:57.987897 IP hostA.33172 > hostB.33445: UDP, length 32 11:44:57.987900 IP hostA.50861 > hostB.33446: UDP, length 32 11:44:57.987907 IP hostA.43520 > hostB.33447: UDP, length 32 11:44:57.991538 IP hostA.55029 > hostB.33448: UDP, length 32 11:44:57.991561 IP hostA.32783 > hostB.33449: UDP, length 32
Ked hned pustim dalsi traceroute skonci takto
traceroute to hostB (192.168.5.25), 30 hops max, 60 byte packets 1 hostB (192.168.5.25) 2.624 ms * *
a tcpdump
11:47:07.604111 IP hostA.40268 > hostB.33434: UDP, length 32 11:47:07.604215 IP hostB > hostA: ICMP hostB udp port 33434 unreachable, length 68 11:47:07.604242 IP hostA.52465 > hostB.33435: UDP, length 32 11:47:07.604262 IP hostA.51130 > hostB.33436: UDP, length 32 11:47:07.604275 IP hostA.48542 > hostB.33437: UDP, length 32 11:47:07.604294 IP hostA.55901 > hostB.33438: UDP, length 32 11:47:07.604307 IP hostA.49795 > hostB.33439: UDP, length 32 11:47:07.604320 IP hostA.40561 > hostB.33440: UDP, length 32 11:47:07.604328 IP hostA.45032 > hostB.33441: UDP, length 32 11:47:07.604335 IP hostA.41313 > hostB.33442: UDP, length 32 11:47:07.604342 IP hostA.56709 > hostB.33443: UDP, length 32 11:47:07.604349 IP hostA.45292 > hostB.33444: UDP, length 32 11:47:07.604356 IP hostA.44391 > hostB.33445: UDP, length 32 11:47:07.604363 IP hostA.43217 > hostB.33446: UDP, length 32 11:47:07.604370 IP hostA.46203 > hostB.33447: UDP, length 32 11:47:07.604377 IP hostA.50124 > hostB.33449: UDP, length 32 11:47:07.604390 IP hostA.35499 > hostB.33448: UDP, length 32
Ked pockam 5 sekund tak ten dalsi traceroute je v poriadku AKoby existoval nejaky limit ktory toto sposobuje.. Nemate nahodou ideu aky limit resp. co to moze sposobovat?
Dik
Řešení dotazu:
Např.
iptables -A OUTPUT -p icmp -m limit --limit 1/s --limit-burst 5 -j ACCEPT iptables -A OUTPUT -p icmp -j DROP
na hostB
nebo
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 5 -j ACCEPT iptables -A INPUT -p icmp -j DROP
na hostA
. Podle toho, že je nevidí tcpdump (i když nepíšete kde), tipoval bych spíš první možnost.
Dik
firewall je na oboch hostoch vypnuty a je to v ramci jednej siete
traceroute je udp
testoval som to na troch styroch dvojiciach serverov v roznych sietach datacentrach atd,..
D.
Tak co třeba
/proc/sys/net/ipv4/icmp_ratelimit /proc/sys/net/ipv4/icmp_ratemask
If, in the destination host, the IP module cannot deliver the datagram because the indicated protocol module or process port is not active, the destination host may send a destination unreachable message to the source host.U protokolu UDP si zkus přes
nmap
oskenovat UDP porty. je to strašně nespolehlivé, protože ty implementace neodpovídají nemaj závazné odpovědi. Pokud pošleš ICMP ECHO
tak odpověď dostaneš. a většinou také dostaneš odpovědi z routerů po ceste (ICMP zpráva Time Exceeded Message/time to live exceeded in transit
i když tam je také specifikováno.If the gateway processing a datagram finds the time to live field is zero it must discard the datagram. The gateway may also notify the source host via the time exceeded message.Takže ti to také nemusí poslat, ale často pošlou.
AHoj
Dik
ALe:
11:44:57.987808 IP hostB > hostA: ICMP hostB udp port 33434 unreachable, length 68
o tom ze icmp udp port unreachable (pre traceroute validna, kedze ICMP dorucuje odpovede ) pre vsetky tri proby je OK. dalsie 2 su zas OK ale potom timeout
A je tam viac menej presny cas kedy zasa ten traceroute doruci odpoved spravne
MOj problem je to ze sa to opakuje prilis deterministicky resp je tam proste pattern akoby to bolo nieco co sa da nastavit (alebo je to vlastnost IPstacku obecne?)
Dakujem
traceroute www.nic.cza když posíláš ICMP Echo pakety
traceroute -I www.nic.cz(musíš být root pro změnu na ICMP.) V prvním případě dostaneš jen routery. v druhém případě ti odpoví i cílový systém a traceroute skončí. (A někdy ti ten IP stack odpoví i port unreachable pro UDP packet, ale fakt málo kdy. A mám dojem, že v současnosti je to spíše náhodné i z toho důvodu možných útoků) A to, že po cestě traceroute jsou někde hvězdičky je z toho, že nějaký router (jak jsem psal v předchozím příspěvku) MAY posoudí jako "nemusím poslat" a nemáš info.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.