Je hebt vast wel eens meegemaakt dat het internet op je computer plotseling wegvalt. Dergelijk gedrag kan worden waargenomen bij het gebruik van ADSL-modems, Wifi op lange afstand, GSM en andere soortgelijke onbetrouwbare technologieën. Je kunt er snel achter komen of je computer internet heeft door het ping-hulpprogramma te gebruiken.
Het toepassingsgebied is echter veel breder, het wordt gebruikt door netwerkbeheerders om de beschikbaarheid van een knooppunt op afstand in het netwerk te controleren, het wordt gebruikt in verschillende scripts en vele andere plaatsen. In dit artikel zullen we het ping commando in Linux bekijken, we zullen het hebben over hoe je het hulpprogramma gebruikt, hoe het werkt, en we zullen de opties en mogelijkheden bekijken.
Het ping-hulpprogramma is een eenvoudig hulpmiddel om netwerkproblemen op te lossen. Je kunt ermee controleren of een host op afstand beschikbaar is of niet, en dat is het. Om dit te doen, controleert het hulpprogramma of de host kan reageren op netwerkverzoeken met behulp van het ICMP-protocol. Ik hoop dat ik je niet hoef te vertellen dat alle gegevens over het netwerk als kleine pakketjes worden verzonden. Het programma verzendt een klein pakket ICMP-gegevens en verwacht een antwoordpakket terug te ontvangen. Als dit het geval is, wordt de host op afstand als bereikbaar beschouwd. ICMP of Internet Control Message Protocol is een toevoeging aan het IP-protocol dat wordt gebruikt om service- en foutberichten te verzenden.
Het ICMP-protocol kan slechts twee soorten pakketten verzenden - foutmeldingsberichten en verzoekberichten. Verzoekberichten zijn op hun beurt onderverdeeld in:
Echo verzoekbericht;
Echo antwoordbericht.
Laten we nu eens begrijpen wat het ping
commando doet. Zodra je een ping
verzoek naar een host op afstand hebt gestuurd, stelt het hulpprogramma een unieke identifier in voor elk pakket, evenals de TTL en de tijd waarop het pakket is verzonden. Als de host bereikbaar is, stuurt het een antwoord; gebaseerd op de verzendtijd kan het hulpprogramma de reistijd van het pakket berekenen. Dan wordt het volgende pakket verzonden. Aan het einde worden het totale aantal verzonden en ontvangen pakketten, het verliespercentage en andere gegevens berekend.
Nu moeten we nog een beetje oefenen. Maar laten we voordat we gaan oefenen eerst eens kijken naar de syntaxis van het commando en de opties. De syntaxis is vrij eenvoudig:
$ ping [options] host_address
Het formaat van het ping-commando
is heel eenvoudig. Je kunt een ip-adres of een domeinnaam opgeven als hostadres. De opties configureren het gedrag van het hulpprogramma. Laten we de belangrijkste bekijken:
-4
- gebruik alleen ipv4 (standaard);
-6
- alleen ipv6 gebruiken;
-A
- adaptieve modus, de tijd tussen het verzenden van een pakket wordt aangepast aan de tijd van pakketverzending en -ontvangst, maar niet minder dan 200 milliseconden;
-b
- ping van
broadcast adres toestaan;
-c
- aantal te verzenden pakketten;
-D
- uitvoertijd als UNIX timestamp
;
-f
- floodmodus, in deze modus worden pakketten zonder vertraging verzonden, het kan gebruikt worden voor DoS-aanvallen op individuele knooppunten. Het aantal punten dat het hulpprogramma uitvoert, geeft het aantal verloren pakketten aan;
-i
- het interval in seconden tussen het verzenden van pakketten;
-I
- gebruik deze netwerkinterface om pakketten te versturen;
-l
- overloadmodus, er worden heel veel pakketten verzonden en het systeem controleert de antwoordpakketten niet;
-n
- krijg geen domeinen voor ip adressen;
-r
- negeer routeringstabellen en stuur het pakket naar de gespecificeerde interface;
-s
- grootte van een pakket;
-t
- TTL handmatig instellen;
-v
- meer gedetailleerde uitvoer.
Nu we de basisparameters van het ping-commando
en de syntaxis ervan hebben behandeld, is het tijd voor de praktijk. We zullen het nu hebben over hoe je een specifieke host in Linux kunt pingen.
Om de netwerkprestaties te controleren wordt vaak een site gepingd
die altijd beschikbaar is, zoals google.com
of nog eenvoudiger en korter ya.ru.
Je hoeft alleen dit adres in de parameters aan het hulpprogramma door te geven, het zal het ip zelf vinden en al het nodige doen:
$ ping ya.ru
Elk ontvangen pakket heeft een unieke identificatie icmp_seq
, het aantal knooppunten naar het doelknooppunt ttl en de tijd
die nodig is om het pakket af te leveren. Om het pingen
te stoppen, druk je op de sneltoets Ctrl+C. Aan het einde toont het hulpprogramma algemene statistieken:
verzonden pakketten
- verzonden pakketten;
ontvangen
- ontvangen pakketten;
pakketverlies
- percentage verloren pakketten;
tijd
- totale werktijd;
rtt min/avg/max/mdev
- minimale tijd/gemiddeldetijd/maximale
tijd/kwadratische afwijking.
Als het ping-commando
niet wordt gestopt, kunnen de pakketten erg lang worden verzonden, dit creëert een extra belasting voor de server en is daarom niet wenselijk. Je kunt het aantal pakketten dat direct in de commando-oproep wordt verzonden beperken door de optie -c
te gebruiken:
$ ping -c 3 ya.ru
Net zoals we pingen
voor een domein, kun je het ip-adres direct opgeven. Hiermee kun je controleren of er een netwerk is wanneer DNS-servers verkeerd geconfigureerd zijn. Bijvoorbeeld:
$ ping -c 3 8.8.8.8
De volgende manier om pingberichten
te versturen, is ping
flood. Met behulp van dergelijke pakketten kun je belastingstesten van het kanaal uitvoeren of zelfs de internetverbinding op een van de machines uitschakelen. Maar deze functies kunnen alleen worden gebruikt met superuser-rechten. Om een ping flood te organiseren, moet de optie -f
opgegeven worden:
$ ping -f losst.ru
Standaard, in normale modus, wordt elk volgend pakket verzonden wanneer een antwoord op het vorige is ontvangen. Maar je kunt het interval tussen het verzenden van pakketten instellen -i
:
$ ping -i 0.2 losst.ru
Hier voert het ping-programma
een zogenaamde, configureerbare flood uit, je geeft aan met welke intensiteit je pakketten wilt verzenden. Met de -D
optie kun je de Unix Timestamp van elk bericht zien:
$ ping -D losst.ru
We hebben bekeken wat het ping-commando
is in Linux, hoe je het gebruikt, de basisparameters en toepassingsmethodes. Dit zeer eenvoudige hulpprogramma kan worden gebruikt om netwerkproblemen te testen en op te lossen. In dit opzicht kan het hulpprogramma onmisbaar worden.