Tuesday, April 14, 2009

black hole detection

traceroute ile

20 byte ip header + 8 byte udp header

posta:~/ozan# traceroute -U www.google.com 1472 -p 53 -n -F
traceroute to www.google.com (74.125.43.147), 30 hops max, 1472 byte packets
send probe: Message too long

adsl modem arkadasındayız.8 byte pppoe header ini koy

1500 - 20 - 8 - 8
posta:~/ozan# traceroute -U posta.eczakoop.org.tr 1464 -p 53 -n -F
traceroute to posta.eczakoop.org.tr (81.8.50.40), 30 hops max, 1464 byte packets
1 192.168.101.1 1.394 ms 2.644 ms 3.404 ms
2 85.105.188.1 22.709 ms 35.918 ms 49.165 ms^C
posta:~/ozan# traceroute -U posta.eczakoop.org.tr 1465 -p 53 -n -F
traceroute to posta.eczakoop.org.tr (81.8.50.40), 30 hops max, 1465 byte packets
send probe: Message too long

interface in mtusunu 1492 yap

ping ile

senaryo:
linux router(192.168.101.3) imizin default gw i bir adsl pppoe modem (192.168.101.1)
ethernetimizin mtu su 1500 byte.yani bir tcp paketinde ip hdr 20 + tcp hdr 20 + data = 1500

echo request de 20 byte ip header + 8 byte icmp header ise data mız en fazla 1500 - 20 - 8 = 1472 bye olabilir.

ip route flush cache

posta:~/ozan# ping -s 1472 74.125.43.98 -M do -c 1
PING 74.125.43.98 (74.125.43.98) 1472(1500) bytes of data.
From 192.168.101.1 icmp_seq=1 Frag needed and DF set (mtu = 1492)

--- 74.125.43.98 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

posta:~/ozan# ip route show cache
74.125.43.98 via 192.168.101.1 dev eth0 src 192.168.101.3
cache expires 593sec mtu 1492 advmss 1460 hoplimit 64

posta:~/ozan# ping -s 1472 74.125.43.98 -M do -c 1
PING 74.125.43.98 (74.125.43.98) 1472(1500) bytes of data.
From 192.168.101.3 icmp_seq=1 Frag needed and DF set (mtu = 1492)

--- 74.125.43.98 ping statistics ---
0 packets transmitted, 0 received, +1 errors

posta:~/ozan# ip route show cache
74.125.43.98 via 192.168.101.1 dev eth0 src 192.168.101.3
cache expires 574sec mtu 1492 advmss 1460 hoplimit 64

youkarıya dikkat edersek ilk icmp adsl modem den geliyor ve diyorki benim mtu 1492 ona göre gönder yani paketi 8 byte küçült
burdaki 8 byte pppoe header i için

ikinci icmp ise localden geliyor bunun sebebi ise 74.125.43.104 e doğru olan pmtu nun sistem tarafından öğrenildiği ve kernel

route cache te tutulduğu görülüyor.bu durumu bir tcp bağlantıya göre şu şekilde yorumlayabiliriz.sistem cache timeout

süresine kadar kayıttaki mtudan büyük paketi 74.125.43.104 ' e göndermeyecektir.pmtu ile öğrendiği kadar göndercektir.bize

modemimiz diyorki benim mtu 1492 .8 byte küçülde gel diyor.

bizde 8 byte küçülelim

posta:~/ozan# ping -s 1464 74.125.43.99 -M do -c 1
PING 74.125.43.99 (74.125.43.99) 1464(1492) bytes of data.
64 bytes from 74.125.43.99: icmp_seq=1 ttl=244 (truncated)

16:44:58.626428 IP 192.168.101.3 > 74.125.43.99: ICMP echo request, id 33069, seq 1, length 1472
16:44:58.717041 IP 74.125.43.99 > 192.168.101.3: ICMP echo reply, id 33069, seq 1, length 64


bizde bu duruma ayak uyduralım
ifconfig eth0 mtu 1492 yapiyoruz linux router da

No comments: