Mam kontroler procesów oparty na systemie Linux, który czasami blokuje się do momentu, w którym nie można go pingować (tzn. Mogę pingować, a następnie przestaje być dostępny do pingowania bez modyfikacji ustawień sieciowych).
Jestem ciekawy, jaki proces / system jest odpowiedzialny za faktyczne reagowanie na pingi? Wygląda na to, że ten proces ulega awarii.
network-interface
ping
icmp
Izzo
źródło
źródło
Odpowiedzi:
Stos sieciowy jądra obsługuje komunikaty ICMP, które są wysyłane przez
ping
polecenie.Jeśli nie otrzymasz odpowiedzi, oprócz problemów z siecią lub filtrowania oraz filtrowania na podstawie hosta / ograniczania prędkości / czarnego holowania / itp. oznacza to, że maszyna jest prawdopodobnie przeciążona przez coś, co może być przejściowe, lub jądro uległo awarii, co jest rzadkie, ale może się zdarzyć (wadliwy sprzęt itp.), niekoniecznie z powodu ruchu ICMP (ale próba przeciążenia go takim ruchem) może być dobrym testem na początku życia serwera, aby sprawdzić, jak to podtrzymuje). W późniejszym przypadku awarii jądra powinieneś mieć dużo informacji w plikach dziennika lub na konsoli.
Pamiętaj też, że
ping
prawie zawsze jest to niewłaściwe narzędzie do sprawdzania, czy usługa jest online, czy nie. Z różnych powodów, ale głównie dlatego, że z definicji nie naśladuje on rzeczywistego ruchu aplikacji. Na przykład, jeśli chcesz sprawdzić, czy serwer WWW nadal działa, powinieneś zamiast tego wykonać zapytanie HTTP (port TCP 80 lub 443), jeśli chcesz sprawdzić serwer poczty, wykonaj zapytanie SMTP (port TCP 25), jeśli serwer DNS, zapytanie UDP i zapytanie TCP do portu 53 itp.źródło
ping
ponieważ powoduje to zbyt wiele fałszywie pozytywnych problemów w rozwiązywaniu problemów, więc myślę, że użytkownicy nie wiedzący dokładnie, co robi ping i jak może dać mylące wyniki, powinni trzymać się czegoś innego.Nie ma procesu użytkownika odpowiadającego na pingi. Ping to tylko narzędzie do wysyłania pakietów echa ICMP. Są one odbierane i przetwarzane przez stos sieciowy jądra
źródło
Samo jądro (nie żaden proces użytkownika) odpowiada za wysyłanie komunikatów odpowiedzi echa ICMP w odpowiedzi na komunikaty żądania echa ICMP . Tak więc, jeśli host przestaje odpowiadać na pingi, zwykle dzieje się tak z następujących powodów:
połączenie sieciowe między tobą a hostowanym pingiem mogło zostać zerwane. Może to wynikać z wielu powodów: fizycznego uszkodzenia kabli, szumu w przypadku sieci bezprzewodowej, zepsutych tablic tras, narażenia się na atak DDoS, problematycznych routerów / przełączników między nimi itp. Rozpocznij rozwiązywanie problemów w tym przypadku przez za pomocą
ethtool(8)
,iwconfig(8)
,route(8)
,ping(8)
swój router,tcpdump(8)
itp na hosta docelowego.ustawienie zapory na hoście docelowym (lub dowolnym routerze / zaporze między tobą a hostem docelowym) może ograniczać ilość pingów (lub natężenie ruchu). Może to być również spowodowane narzędziami takimi jak
fail2ban(8)
zapora ogniowa na żądanie. Zobacz,iptables(8)
aby sprawdzić.wystąpiła awaria oprogramowania / sprzętu na hoście docelowym. Moduł jądra sieciowego na hoście docelowym mógł zostać OOPSed i / lub zostać zdezorientowany, a nawet całe jądro mogło mieć błąd PANICked. Zobaczysz komunikaty o wejściu
dmesg(8)
na hoście docelowym lub jako dane wyjściowe ekranu na konsoli fizycznej (jeśli fizyczny dostęp jest niepraktyczny, może pomóc inna maszyna z konsolą szeregową .) Jeśli problem stanowi jądro OOPS / PANIC, nowsze jądro z lepszymi sterownikami może pomoc lub możesz krążyć wokół blokad systemu zewatchdog(8)
sterownikami pomocniczymi. Lub możesz zmienić części sprzętu.źródło