Sieci w Linuksie/iproute2/ip/address

Polecenie ip address służy do przypisywania interfejsom sieciowym adresów IP (zarówno IPv4 jak i IPv6). Składnia polecenia wyświetlona za pomocą polecnia `ip address help` wygląda następująco:

Składnia polecenia edytuj

Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING
       ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated | dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

Opis poleceń i ich opcji edytuj

ip address add edytuj

Polecenie to służy do nadawania adresów IP danemu interfejsowi sieciowemu. Interfejs sieciowy może posiadać dowolną liczbę adresów IP z tych samych, bądź różnych podsieci.

UWAGA

Pierwszy adres, nadany interfejsowi, z danej podsieci jest adresem typu primary (podstawowy) - interfejs sieciowy może posiadać tylko jeden adres primary z danej podsieci, każdy kolejny adres z tej samej podsieci jest adresem typu secondary (wtórny). Usunięcie adresu primary powoduje również usunięcie wszystkich adresów secondary z nim powiązanych!

Flagi
permanent - adres statyczny, ustawiony ręcznie, lub przez DHCPv6 (tylko IPv6)
dynamic - adres ustawiony dynamicznie, bezstanowo (tylko IPv6)
secondary - adres wtórny (patrz uwaga powyżej)
primary - adres podstawowy (patrz uwaga powyżej)
tentative - adres próbny, przed weryfikacją duplikatów (tylko IPv6)
deprecated - adres przestarzały (tylko IPv6)
dadfailed - adres nie przeszedł weryfikacji duplikatów (tylko IPv6)
temporary - adres tymczasowy (tylko IPv6)
Zasięgi (ang. scope)
host - adres poprawny tylko w obrębie hosta (np. 127.0.0.1)
link - adres poprawny tylko w obrębie warstwy fizycznej (tylko IPv6)
global - adres jest poprawny globalnie
site - adres jest poprawny tylko w obrębie miejsca (tylko IPv6)
Trasy tworzone automatycznie

Podczas dodawania adresu IP do interfejsu tworzonych jest automatycznie kilka tras (ich znaczenie opisane jest w rozdziale: Sieci:Linux/iproute2/ip/route). Przyjmijmy, że wydawane jest następujące polecenie `ip addr add 192.168.0.10/24 dev eth0`, wtedy dodane zostaną następujące trasy:

w tablicy main
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.10

Jest to trasa do sieci lokalnej. Zasięg trasy (ang. scope) jest czymś zupełnie innym, niż zasięgi opisane powyżej.

w tablicy local
local 192.168.0.10 dev eth0  proto kernel  scope host  src 192.168.0.10 

Jest to trasa pomocniczna przypisująca adres interfejsu temu interfejsowi ;).

broadcast 192.168.0.255 dev eth0  proto kernel  scope link  src 192.168.129.10

Jest to trasa pomocnicza ustanawiająca sposób obsługi adresów rozgłoszeniowych.

Przykłady składni polcenia

Najprostszą postacią polecenia `ip address add` jest:

ip a add PREFIX dev DEV

która ustawia adres PREFIX dla interfejsu DEV. PREFIX może być zarówno adresem IPv4 w formacie kropkowym jak i IPv6 w formacie dwukropkowym. Dodatkowo prefiks może zawierać maskę podsieci w formacie CIDR. Domyślną wartością maski jest /32. Np. `ip a add 192.168.0.10/24 dev eth0`

Aby utworzyć adres na interfejsie typu point-to-point należy użyć składni:

ip a add ADDR peer PREFIX dev DEV

Polecenie to ustawi adres ADDR na interfejsie DEV z docelowym adresem PREFIX. Adres ADDR należy podać bez maski, natomiast w adresie PREFIX może występować maska, np. `ip a add 192.168.1.100 peer 192.168.1.1/32 dev ppp0`

Adresy przypisane do interfejsów mogą posiadać etykiety. Etykiety te tworzy się poleceniem:

ip a add PREFIX dev DEV label STRING

W celu zachowania kompatybilności z poleceniem `ifconfig` (stare narzędzie konfiguracji sieci), etykieta powinna zaczynać się od prefiksu DEV:. Np. `ip a add 192.168.0.1/24 dev eth0 label eth0:1`.

ip addr del edytuj

Polecenie to kasuje wybrany adres IP przypisany do urządzenia. Należy pamiętać, że skasowanie adresu podstawowego spowoduje również skasowanie adresów wtórnych z nim powiązanych.

ip addr show edytuj

Polecenie to wyświetla bieżącą konfigurację IP.

ip add flush edytuj

Polecenie to kasuje na raz wszystkie adresy IP dopasowane przez argumenty. Polecenia tego nie da się wywołać bez dodatkowych argumentów. Należy ostrożnie używać tego polecenia, ponieważ podczas pracy zdalnej można przypadkiem odciąć sobie połączenie sieciowe.