Sieć-Windows
netsh
Potężne narzędzie do konfigurowania składników sieciowych systemu. Pozwala na manipulację masą ustawień, w tym ustawieniami firewalla Windows, tablicą routingu, ustawieniami interfejsów sieciowych i wieloma innymi rzeczami.
Polecenie to działa zarówno w trybie interaktywnym, jak i jest możliwie jego używanie w skryptach. Przykładowo, aby obejrzeć stan interfejsów sieciowych systemu możemy wydać polecenie:
netsh interface show interface
Lub przejść do trybu interaktywnego i wchodzić do kolejnych podpoleceń:
C:>netsh
netsh>interface
netsh interface>show interface
net
net jest grupą poleceń o różnorakim zastosowaniu - od zarządzania usługami systemowymi (polecenia net start i net stop) przez zarządzanie polityką kont systemowych, statystyki udostępnionych plików (net statistics), synchronizację czasu (net time) aż po mapowanie dysków sieciowych (net use) i wysyłanie wiadomości przy użyciu usługi Posłaniec (net send).
Nie są to wszystkie możliwości, jakie posiada komenda net - aby zobaczyć wszystkie wywołaj pomoc ten komendy przy użyciu net help.
ipconfig
Wyświetla informacje o skonfigurowanych w systemie kartach sieciowych oraz informacje o cache'u DNS. Posiada kilka interesujących przełączników, m.in.:
-release - zwalnia dzierżawę DHCP danej karty sieciowej
-renew - odnawia dzierżawę DHCP karty sieciowej
-flushdns - czyści cache DNS
-displaydns - wyświetla zawartość cache
netstat
Wyświetla statystyki sieciowe, otwarte porty, aktualne połączenia, tabelę routingu oraz programy używające sieci. Dostęp do szczegółowych statystyk dostępny jest przy użyciu przełączników:
-a - wyświetla wszystkie połączenia oraz nasłuchujące porty
-b - wyświetla program posiadający aktualnie otwarte połączenie sieciowe
-e - wyświetla statystyki dla interfejsów Ethernet
-p - pozawala na zawężenie statystyk do wybranego protokołu
pathping
Jedno z ciekawszych narzędzi sieciowych. Pathping jest skrzyżowaniem tracerta z pingiem. Pozwala na badanie, gdzie w sieci następują największe opóźnienia.
Działanie narzędzia polega najpierw na wyznaczeniu trasy do celu na zasadzie działania programu tracert, a następnie bada przy użyciu metod ping czasy do każdego z routerów po drodze.
Wadą narzędzia jest czas przez jaki narzędzie bada sieć - domyślnie jest to aż 200 sekund.
Filtrowanie potoków
findstr
Odpowiednik linuxowego narzędzia grep. Pozwala na filtrowanie potoków przy użyciu wyrażeń regularnych. Np. aby wyświetlić listę adresów IP używanych przez komputer wystarczy wykonać coś takiego:
ipconfig | findstr Adres
more
more pozwala na rozwiązanie problemów ze zbyt długimi wynikami drukowanymi na terminal - more dzieli je po jednym ekranie, pozwalając na spokojną analizę :]
sort
Sortuje wyniki zwrócone przez program. Posiada kilka opcji, jak na przykład -r dzięki której sortowanie odbywa się w kierunku odwrotnym.
Sieć-Linux
Ping
Najczęściej używanym narzędziem diagnostycznym jest program ping - pozwala on zbadać istnienie połączenia między dwoma komputerami, drogę pomiędzy nimi, czas potrzebny na przejście pakietu oraz sprawdza czy drugi komputer pracuje w danym momencie w sieci. Przy okazji ping dokonuje tłumaczenia adresu domenowego na numer IP. Program ten jest przydatny do określania stanu sieci i określonych hostów, śledzenia i usuwania problemów sprzętowych, testowania, mierzenia i zarządzania siecią, oraz do badania sieci. Polecenie ping {$nazwa/$numer_IP} wysyła specjalne pakiety ICMP do wskazanego komputera i czeka na odpowiedź. Możemy podawać jako cel adres domenowy lub numer IP. Przy okazji program ten dokonuje tłumaczenia adresu domenowego na numer IP.
Traceroute
Nieco bardziej zaawansowanym programem jest traceroute. Pokazuje on trasę jaką przechodzą pakiety między naszym komputerem, a sprawdzanym przez nas hostem. Wskazuje on czasy przesłania pakietów pomiędzy sąsiadującymi ze sobą routerami (tzw. czasy przeskoków), znajdującymi się na trasie połączenia dwóch maszyn. Pozwala śledzić trasę pakietów oraz wykrywać różnego rodzaje problemy w sieciach np.: błądzenie pakietów w sieci, "wąskie gardła" sieci, oraz awarie połączeń.
MTR
Godnym uwagi programem jest MTR, jest narzędziem łączącym funkcje opisanych wcześniej programów. Program ten śledzi trasę połączenia między dwoma punktami podobnie jak traceroute i odświeża wyniki w regularnych odstępach czasu.
Screen
Jeśli mamy zamiar modyfikować konfigurację sieci na zdalnej maszynie (np. przez ssh), to zalecane jest użycie programu screen, aby mieć pewność, że cała procedura zakończy się poprawnie i nie utracimy kontaktu z hostem. Jeśli mamy program screen wystarczy że wydamy polecenie:
# screen service network restart
Mamy dwa podobne pakiety narzędzi sieciowy o podobnym działaniu jest nim bardziej znany
net-tools (ifconfig, route, arp, ifup, ifdown) i mniej znany iproute2 i jego polecenia omówie
ip addr
Aby wyświetlić konfigurację interfejsów użyjemy polecenia ip addr.
# ip addr
Polecenie wyświetliło listę dostępnych interfejsów, każdy z nich oznaczony jest numerem porządkowym. W większości wypadków najbardziej interesujące są dla nas interfejsy fizyczne .
Tryb pracy urządzenia jest wyświetlany wewnątrz trójkątnych nawiasów, oto kilka oznaczeń:
UP - urządzenie działa
LOOPBACK - interfejs pętli zwrotnej
BROADCAST - urządzenie ma możliwość wysyłania komunikatów rozgłoszeniowych
MULTICAST - interfejs może być używany do transmisji typu multicast
PROMISC - tryb nasłuchiwania, używany przez monitory sieci i sniffery
NO-CARRIER - brak nośnej, komunikat spotykany zwykle w wypadku braku fizycznego połączenia z siecią
ip link
Do najczęstszych operacji zażądzania należy włączanie i wyłączanie interfejsów, w tym celu użyjemy następującego polecenia:
ip link set {$interfejs} {up/down}
# ip link set eth0 up
# ip link set eth0 down
ip addr
Dodawanie/usuwanie adresów IP interfejsu:
ip addr {add/del} {$adresIP}/{$maska} dev {$interfejs}
# ip addr add 10.1.1.1/24 dev eth0
# ip addr del 10.1.1.1/24 dev eth0
arping
Do odczytania adresu sprzętowego lokalnych kart sieciowych możemy użyć opisanego wcześniej polecenia ip addr. Aby odczytać MAC zdalnej maszyny użyjemy programu arping {$nazwa/$IP} np.:
# arping 10.0.0.100
ARPING 10.0.0.100 from 10.0.0.1 eth0
Unicast reply from 10.0.0.100 [00:04:ED:07:25:F8] 4.250ms
ip link set
Dowolny adres MAC karty sieciowej ustawimy poleceniem:
ip link set {$interfejs} address {$MAC-adres}
# ip link set eth0 address 01:01:01:01:01:01
Aby adres sprzętowy za każdym razem był ustawiany dla interfejsu, powinniśmy dokonać odpowiedniego wpisu w pliku konfiguracyjnym interfejsu. W przypadku urządzenia eth0 musimy zmodyfikować plik /etc/sysconfig/interfaces/ifcfg-eth0, i dodać zmienną MACADDR np.:
MACADDR="01:01:01:01:01:01"
ip neighbour
Aby wyświetlić tablicę ARP należy użyć polecenia ip neighbour:
# ip neighbour
host
Do odpytywania serwerów DNS możemy użyć programu host z pakietu bind-utils. Pozwala na szybkie sprawdzenie poprawności konfiguracji domeny (strefy).
host {$nazwa/$IP} {$dns_nazwa/$dns_IP}
Pierwszy parametr to nazwa domeny lub IP maszyny, drugi parametr nie jest obowiązkowy - wskazuje na serwer nazw, który chcemy odpytać. Jeśli nie podamy drugiego parametru użyty zostanie serwer zdefiniowany w pliku /etc/resolv.conf.
ip route
Aby wyświetlić tablicę routingu posłużymy się poleceniem ip route:
# ip route
Wydajność sieci
Aby sprawdzić przepustowość sieci pomiędzy dwoma hostami możemy użyć programu iperf. Jest to program typu klient-serwer sprawdzający na kilka sposobów przepustowość połączenia. Rozpoczynamy od instalacji programu na obu interesujących nas maszynach, następnie na jednej z maszyn uruchamiamy program w trybie serwera:
$ iperf -s
a na drugiej w trybie klienta - iperf -c {$adres_serwera} np.:
$ iperf -c 192.168.0.5
Po chwili odczytujemy wyniki testu.
netstat
Nawiązane połączenia i otwarte porty protokołu TCP/IP możemy kontrolować za pomocą programu netstat np.:
# netstat -tua
Na powyższym przykładzie zostały wyświetlone dane dotyczące protokołu TCP (opcja: -t) oraz UDP (-u). Dodatkowo zostały wyświetlone gniazda nasłuchujące (-a). Warte uwagi są jeszcze dwa parametry: -n i -p, pierwszy wyświetla porty i adresy w postaci liczb, drugi zaś wyświetla nazwy programów korzystających z danych gniazd.