Привет,

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@linux-bulgaria.org
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to