Przejdź do głównej zawartości

Linux RHCSA cz.26 - Sieć - Rozwiązywanie problemów z połączeniem sieciowym

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

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości