Re: [Lug-bg] TTL exceeded false positive nagios
- Subject: Re: [Lug-bg] TTL exceeded false positive nagios
- From: Hristo Erinin <erinin@xxxxxxxxx>
- Date: Wed, 23 May 2012 14:18:28 +0200
Привет,
On 2012-05-22 20:51, b2 wrote:
On пн, 2012-05-21 at 12:25 +0300, Kristian Kirilov wrote:
Това автоматично значи,че се ползва check_pingпрограмата и проблема с
ttl exceededостава.Не можах да намеря никакво обяснение,какво точно
прави check_fping,но в най-лошия случай ще трябва с някакъв bashскрипт
да convert-ирам ttl exceededв request time out.
Основният проблем, според мен, е защо TTL exceeded не се приема за
грешка от nagios check-a.
TTL exceeded e ICMP отговор от гейтуея от когато:
1) TTL-a e малък и има прекалено много хопове до хоста и няма как пакета
да стигне до него.
Което реално се получава и в случай (2).
2) Някакъв вид лоуд баланс в мрежата при който някъде по пътя към
дестинацията някой рутер те праща на неговия default route , а той като
не може да намери дестинацията се обръща обратно към него (първия e
default route на втория и обратното)... т.е. никой няма хоста/мрежата в
рутинга раблицата.Да речем някаква мрежа която никой не я анонсира.
Не само при load-balance може да се получи loop.
Първото мисля е ясно - пробвай да трейснеш някой сайт в Япония с max
hop=5 да кажем.
Пример за второто:
traceroute -n -m 10 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 10 hops max, 60 byte packets
1 87.121.163.105 2.773 ms 12.793 ms 12.788 ms
---------------------------------------------------------------------------------------------------
b2# tcpdump -nqi eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
21:46:15.417936 IP 87.120.218.6 > 87.121.163.106: ICMP time exceeded
in-transit, length 68
21:46:15.417961 IP 87.120.218.6 > 87.121.163.106: ICMP time exceeded
in-transit, length 68
[cut]
= ttl expired.
ICMP time exceeded in-transit, който си paste тук, се дължи на
traceroute, това е начина, по който самата програма разбира кои са
host-овете по пътя (изпраща UDP пакети до dst IP, с увеличаващо се TTL
започващо от 1 и слуша за ICMP пакети от router-ите по пътя).
Докато рутерите нямат този хост/мрежа в рутинг таблицата редиректват
един към друг, ttl-a се декремнтира и накрая става 0.
Това е loop, и е причина за TTL exceeded.
Докато "Destination host unreachable" означава, че със сигурност имаш
все някъде по някоя рутинг таблица по пътя тази мрежа/хост който търсиш
обаче поради една или друга причина е down.
Та, destination host unreachable, не е същото като ttl expired. Да го
поправиш означава да си прегледаш в момента е който ти го дава "ttl
expired-a" рутинг таблиците, така ще разбереш какво става.
За това съм съгласен.
:)
--
Поздрави,
Христо Еринин
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|