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