Kluczowym elementem rozwiązywania problemów z siecią jest posiadanie pewności, że wszystko działa poprawnie i cała sieć funkcjonuje również poprawnie. Pokażę tutaj pięć szybkich poleceń które pomogą zweryfikować poprawność działania sieci.
- ping - Test połączenia pomiędzy dwoma hostami
- traceroute - Pokazuję ścieżkę po której łączą się dwa hosty
- netstat - Wyświetla informacje na temat połączeń (otwarte, zamknięte i nasłuchujące)
- route - Wyświetla informacje o trasach ruchu
Do tego momentu większość ćwiczeń przeprowadzanych było tylko na jednej maszynie z naszego laboratorium czyli RHEL01. Powodem tego jest przede wszystkim to, iż pozostałe maszyny znajdują się wewnątrz sieci prywatnej i nie można się do nich dostać z zewnątrz. Na razie wszystko jest w porządku ponieważ RHEL01 jako gospodarz posiada dwa interfejsy sieciowe pozwalające mu istnieć w dwóch sieciach. Możemy zobaczyć w jaki sposób oddziałują na siebie te maszyny w sieci prywatnej.
NARZĘDZIA SIECIOWE
Zaczniemy od polecenia "ping" by sprawdzić czy hosty widzą się wzajemnie w sieci.
Składnia polecenia ping : # ping [cel , nazwa hosta, IP]
Polecenie wywołane w Linux w odróżnieniu od systemów Windows będzie się wykonywać do czasu aż nie zostanie przerwane przez użytkownika. Można oczywiście określić ile razy ma się wykonać stosując przełącznik "-c".
Krok 1 - Sprawdzamy czy RHEL01 widzi się w sieci z RHEL02
PING 172.168.1.2 (172.168.1.2) 56(84) bytes of data.
64 bytes from 172.168.1.2: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 172.168.1.2: icmp_seq=2 ttl=64 time=0.074 ms
Krok 2 - Sprawdzamy czy RHEL01 ma dostęp do sieci zewnętrznej przez bramę.
# ping –c 2 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.074 ms
Komunikacja przebiega dwoma drogami, czyli jest możliwa na świat oraz do sieci wewnętrznej. Sprawdźmy to samo na maszynie RHEL02.
Krok 1 - Sprawdzenie komunikacji z RHEL02 do RHEL01
# ping –c 2 172.168.1.1
PING 172.168.1.1 (172.168.1.1) 56(84) bytes of data.
64 bytes from 172.168.1.1: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 172.168.1.1: icmp_seq=2 ttl=64 time=0.074 ms
Jak widać obie maszyny mogą się ze sobą komunikować oraz RHEL01 może komunikować się z siecią zewnętrzną. Co się stanie jeżeli spróbujemy połączyć się do adresu 192.168.1.0 z RHEL02 ?
Krok 2 - Sprawdźmy połączenie ze światem zewnętrznym z RHEL02
# ping –c 2 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 172.168.1.1 icmp_seq=2 Destination Host Unreachable
From 172.168.1.1 icmp_seq=3 Destination Host Unreachable
Ta maszyna nie może się połączyć z bramą i dostaję w odpowiedzi komunikat że host jest nieosiągalny. Komunikat ten oznacza, iż nie ustawiono żadnej trasy ruchu dla RHEL02 do sieci 192.168.1.0. Jakie trasy ruchu są zatem dostępne? Sprawdźmy!
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
Jak widać mamy ruch tylko w obrębie sieci 172.168.1.0 i to jest powodem blokującym komunikacje z 192.168.1.0.
Teraz jak wiadomo już, w jaki sposób sprawdzić interfejsy i trasy ruchu, dobrze było by zobaczyć otwarte porty i usługi jakie nasłuchują na danych portach. Do tego celu użyjemy polecenie "netstat".
Składnia polecenia netstat: # netstat [opcje]
Opcje polecenia netstat:
- -r - Wyświetla tabelę ruchu
- -I - Wyświetla statystyki interfejsów
- -t - Pokazuje połączenia tcp
- -u - Pokazuje połączenia udp
- -a - Pokazuje gniazda (tcp, udp oraz lokalne)
- -p - Pokazuje ID procesów
- -e - Pokazuję rozszerzone informacje
Dla przykładu zakładamy, że chcemy się dowiedzieć czy usługa SSH nasłuchuje na prawidłowym 22 porcie.
# netstat -tuape | grep ssh
tcp 0 0 *:ssh *:* LISTEN root 8627 2674/sshd
Jeżeli nic nie zostało wyświetlone jest duża szansa, że usługa wcale nie została uruchomiona. Polecenie jest doskonałą pomocą w wyszukiwaniu problemów z siecią w systemie Linux.
Komentarze
Prześlij komentarz