Narzędzia sieciowe ================== Konfiguracja w systemie Linux ----------------------------- Stacja z zainstalowanym systemem Linux pełni w sieci Internet jedną z dwóch ról: * **komputer** -- wysyła i odbiera pakiety sieciowe * **ruter** -- wysyła, odbiera pakiety, przekazuje pakiety między stacjami w sieci Każdy komputer jest dołączony do sieci komputerowej przez co najmniej jedną kartę sieciową. Dana karta związana jest z pewną technologią sieci lokalnej, np. Ethernet, FDDI, Token Ring itd. Karta sieciowa stanowi dla komputera interfejs fizyczny, łączący komputer z siecią (ninterfejs ethernetowym). Z każdym interfejsem fizycznym związany jest adres sprzętowy: **MAC**. Z kolei interfejs logiczny jest punktem dostępu do sieci logicznej (np. sieci IP). Każdy interfejs logiczny posiada adres IP. W systemie Linux z danym interfejsem fizycznym może być związanych wiele interfejsów logicznych. Tj. karta sieciowa może mieć wiele adresów IP. Każdy interfejs fizyczny i logiczny posiada swój numer, np. * ``eth0`` określa interfejs fizyczny -- kartę nr ``0`` w technologii Ethernet i jednocześnie domyślny interfejs logiczny (jeśli karta jest związana z jednym adresem IP) * ``eth0:1`` określa interfejs logiczny nr ``1`` przy interfejsie fizycznym ``eth0`` Typowe nazwy urządzeń: * ``lo`` -- pętla zwrotna (*loopback*) * ``eth`` -- przewodowe karty sieciowe (*ethernet*) * ``wlan``, ``ath``, ``wifi``, ``radio`` -- bezprzewodowe karty sieciowe * ``firewire``, ``ib`` -- firewire, infiniband * urządzenia wirtualne, mostki, tunele: * ``dummy`` * ``br``, ``tun``, ``tap`` * ``sit``, ``tnl``, ``ppp``, ``vpn``, ``gre`` * `PredictableNetworkInterfaceNames `_: * ``eno1`` * ``sls1`` * ``wwp2s0`` * ``wlx78e7d1ea46da`` Pakiety ------- Pakiet ``net-tools`` powstał w 1983 roku (początkowo w systemie BSD). Od tego czasu jest utrzymywany, jednak od przeszło 10 lat nie jest rozwijany. Skład pakietu: * *arp* * dnsdomainname * domainname * **hostname** * *ifconfig* * ipmaddr * *iptunnel* * mii-tool * nameif * *netstat* * nisdomainname * plipconfig * *rarp* * *route* * slattach * ypdomainname Pakiet ``iproute2`` powstał około roku 2000 żeby zastąpić starsze pakiety (w tym ``net-tools``) i dać dostęp do nowych możliwości kernela. Skład pakietu: * arpd * ctstat * genl * ifcfg * ifstat * **ip** * lnstat * nstat * routef * routel * rtacct * rtmon * rtpr * rtstat * *ss* * *tc* Inne narzędzia: * iputils: * narzędzia * arping * clockdiff * ipg * **ping** * ping6 * rarpd * rdisc * tftpd * *tracepath* * tracepath6 * traceroute6 * **traceroute** * **mtr** Polecenie ``ip`` ---------------- Pomoc: ``ip [argumenty] help``, np.: * ``ip addr help`` * ``ip link help`` Czytanie pomocy:: Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token } OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | bridge | link } | -4 | -6 | -I | -D | -B | -0 | -l[oops] { maximum-addr-flush-attempts } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size]} Argumenty polecenia ``ip`` można dowolnie skracać, ale jeśli skróty kolidują, narzędzie samodzielnie wybiera rozwinięcie, więc wskazana jest ostrożność. Np. ``ip link show`` można zapisać jako ``ip l sh``, ale ``ip l s`` jest już traktowane jako ``ip link set``. Konfiguracja urządzeń """"""""""""""""""""" Pokazanie stanu urządzeń; * ``ip link show`` -- wszystkie urządzenia * ``ip link show dev eth0`` -- urządzenie ``eth0`` Podniesienie/zatrzymanie urządzenia ``eth0``: * ``ip link set dev eth0 up`` * ``ip link set dev eth0 down`` Adresy IP """"""""" Pokazanie adresów ip urządzeń; * ``ip addr show`` -- wszystkie urządzenia * ``ip addr show dev eth0`` -- urządzenie ``eth0`` Przypisanie, usunięcie adresu ``10.0.0.1/25`` do/z urządzenia ``eth0``: * ``ip addr add dev eth0 10.0.0.1/25`` * ``ip addr del dev eth0 10.0.0.1/25`` **Uwaga!** podanie maski jest **niezbędne**, w przeciwnym wypadku maska jest ustawiana jako ``/32``. Usunięcie wszystkich adresów urządzenia ``eth0``: * ``ip addr flush dev eth0`` Przydatne komendy ----------------- #. Identyfikacja urządzenia: ``ethtool -p eth0`` #. Sprawdzenie dostępności hosta: ``ping HOST`` #. Ścieżka do hosta: ``traceroute HOST``, ``mtr HOST`` Materiały --------- * `Skrypt, M. Kalewski `_ * `Skrypt, J. Kończak `_ * `Predictable Network Interface Names `_ Narzędzia """"""""" * http://www.linuxfoundation.org/collaborate/workgroups/networking/net-tools * http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 * http://pl.wikibooks.org/wiki/Sieci_w_Linuksie/iproute2