Nastavení statické IP adresy v Linuxu

By | 08/06/2019

Nastavení statické IP adresy v Linuxu

Update článku k 20.7.2020

OS:

Implementace byla prováděna na Ubuntu 18.04 LTS, postup není aplikovatelný na Ubuntu 17.04 a níže.

Implementace:

Nejdříve je nutné zjistit jméno síťového rozhraní na kterém se bude nastavovat statická IP adresa:

ip a

Výpis konfigurace ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:27:0e:0e:c6:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.185/24 brd 192.168.88.255 scope global dynamic noprefixroute enp1s0
       valid_lft 172706sec preferred_lft 172706sec
    inet6 fe80::b91a:5e9c:6043:5645/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Jméno síťového rozhraní je zde označeno jako enp1s0 a s tím se bude dále pracovat. IP adresa 192.168.88.185 je získána z DHCP serveru, což se pozná z valid_lft (Valid Lifetime) a preferred_lft (Preferred Lifetime).

Pozn. Nemusí se vypínat network-manager.

Nastavení statické IPv4 adresy

Varianta 1:

Příklad nastavení statické IP adresy a výchozí brány se provede příkazem níže, kde my-config byl zvolen jako libovolné jméno connection profilu a enp1s0 jméno síťového rozhraní:

sudo nmcli con add con-name my-config ifname enp1s0 type ethernet ip4 192.168.88.15/24 gw4 192.168.88.1

Příklad konfigurace Google DNS serverů pod profilem my-config:

sudo nmcli con mod my-config ipv4.dns "8.8.8.8 8.8.4.4"

Příklad konfigurace doménového jména martinuvzivot.cz pod profilem my-config:

sudo nmcli con mod my-config ipv4.dns-search martinuvzivot.cz

Aktivace connection profilu my-config:

sudo nmcli con up my-config
Hotovo. Po restartu se zachovají nakonfigurované změny.

Zobrazení všech connection profilů:

nmcli con show

Výpis příkazu nmcli con show může vypadat následovně:

NAME       UUID                                  TYPE      DEVICE 
my-config  69ae656d-ee1c-4c6e-95db-fb89ce8b9f8a  ethernet  enp1s0

Detailní informace o nově nakonfigurovaném connection profilu my-config:

nmcli -p con show my-config

Případné vymazání celého connection profilu my-config se provede příkazem:

sudo nmcli con del con-name my-config

Případné nastavení DHCP na síťovém rozhraní enp1s0 a connection profilu my-config se provede příkazem:

sudo nmcli con add con-name my-config ifname enp1s0 type ethernet ipv4.method auto

Pozn. Před aplikací příkazu výše doporučuji vymazat původní connection profil my-config

Varianta 2:

Vygeneruje konfiguraci pro renderer do adresáře /etc/netplan:

sudo netplan generate

Vytvořit 50-cloud-init.yaml jako nový soubor:

sudo vim /etc/netplan/50-cloud-init.yaml

Pokud soubor již existuje, celý ho přepíšeme z příkladu níže. Trvalo mi to chvíli, než jsem si uvědomil, že je potřeba STRIKTNĚ dodržovat mezery. Je NUTNÉ řádně zachovat mezery, tak jak ukázáno níže v příkladu! Také nezarovnávat pomocí tlačítka TAB! Doporučuji zkopírovat konfiguraci přímo do souboru a následně editovat IP adresy a rozhraní:

network:
    renderer: networkd
    ethernets:
        enp1s0:
            addresses: [192.168.88.15/24]
            gateway4: 192.168.88.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]
              search: [martinuvzivot.cz]
            dhcp4: no
    version: 2

Legenda:

renderer – v podstatě existují dva – v tomto případě je to networkd rendeder, který se používá pro servery a NetworkManager renderer, který se používá pro desktopové počítače
enp1s0 – jméno síťového rozhraní
addresses – statická IP adresa
gateway4 – výchozí brána
nameservers – primární a sekundární DNS server
search – doménové jméno
dhcp4 –
podpora získávání IP adresy z DHCP (zde zakázána)
version – aktuální verze konfiguračního souboru

Příkazem níže aplikujeme konfigurační změny. Avšak spustí se 120sekundový časovač, který vrátí konfiguraci do původního stavu po jeho vypršení v případě konfigurační chyby.

sudo netplan try

Potvrzení změn bez časovače:

sudo netplan apply

Případně potvrzení změn s debuggem:

sudo netplan --debug apply

Výpis příkazu sudo netplan –debug apply:

** (generate:1464): DEBUG: 15:02:29.804: Processing input file //etc/netplan/01-network-manager-all.yaml..
** (generate:1464): DEBUG: 15:02:29.804: starting new processing pass
** (generate:1464): DEBUG: 15:02:29.804: Processing input file //etc/netplan/50-cloud-init.yaml..
** (generate:1464): DEBUG: 15:02:29.805: starting new processing pass
** (generate:1464): DEBUG: 15:02:29.805: enp1s0: setting default backend to 1
** (generate:1464): DEBUG: 15:02:29.806: Generating output files..
** (generate:1464): DEBUG: 15:02:29.806: NetworkManager: definition enp1s0 is not for us (backend 1)
DEBUG:netplan generated networkd configuration exists, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:device enp1s0 operstate is up, not replugging
DEBUG:netplan triggering .link rules for enp1s0
DEBUG:device lo operstate is unknown, not replugging
DEBUG:netplan triggering .link rules for lo
Hotovo. Po restartu se zachovají nakonfigurované změny.

Ověření:

Ověření nakonfigurované IP adresy:

ip a

Výpis konfigurace ip a:

lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:27:0e:0e:c6:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.15/24 brd 192.168.88.255 scope global noprefixroute enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::227:eff:fe0e:c6e5/64 scope link
       valid_lft forever preferred_lft forever

Nyní je také valid_lft (Valid Lifetime) a preferred_lft (Preferred Lifetime) nastaven na forever, což značí statickou konfiguraci IP.

Ověření výchozí brány:

 ip route

Výpis příkazu ip route:

default via 192.168.88.1 dev enp1s0 proto static
192.168.88.0/24 dev enp1s0 proto kernel scope link src 192.168.88.15

Ověření nastavení DNS serverů:

cat /run/systemd/resolve/resolv.conf

Výpis souboru resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

Alternativní ověření DNS serverů:

systemd-resolve --status

Ověření doménového jména:

cat /etc/resolv.conf

Částečné vypsání souboru resolv.conf:

nameserver 127.0.0.53
options edns0
search martinuvzivot.cz

Nastavení statické IPv6 adresy

Varianta 1:

Již vytvořený connection profilem my-config, který byl konfigurován výše, je možné editovat a donastavit statickou IPv6 adresu na profil a to příkazem:

sudo nmcli con mod my-config ip6 2001:cafe:cafe:cafe::2/64

Pokud nebyl connection profil vytvořený, konfigurace statické IPv6 adresy se provede příkazem níže, kde my-config byl zvolen jako libovolné jméno connection profilu a enp1s0 jméno síťového rozhraní:

sudo nmcli con add con-name my-config ifname enp1s0 type ethernet ip6 2001:cafe:cafe:cafe::2/64

Příklad konfigurace IPv6 výchozí brány pod profilem my-config:

sudo nmcli con mod my-config ipv6.gateway 2001:cafe:cafe:cafe::1

Příklad konfigurace IPv6 Google DNS serverů pod profilem my-config:

sudo nmcli con mod my-config ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"

Příklad konfigurace doménového jména martinuvzivot.cz pod profilem my-config:

sudo nmcli con mod my-config ipv6.dns-search martinuvzivot.cz

Aktivace connection profilu my-config:

sudo nmcli con up my-config
Hotovo. Po restartu se zachovají nakonfigurované změny.

Zobrazení všech connection profilů:

nmcli con show

Výpis příkazu nmcli con show může vypadat následovně:

NAME       UUID                                  TYPE      DEVICE 
my-config  69ae656d-ee1c-4c6e-95db-fb89ce8b9f8a  ethernet  enp1s0

Detailní informace o nově nakonfigurovaném connection profilu my-config:

nmcli -p con show my-config

Případné vymazání celého connection profilu my-config se provede příkazem:

sudo nmcli con del con-name my-config

Případné nastavení DHCP na síťovém rozhraní enp1s0 a connection profilu my-config se provede příkazem:

sudo nmcli con add con-name my-config ifname enp1s0 type ethernet ipv6.method auto

Pozn. Před aplikací příkazu výše doporučuji vymazat původní connection profil my-config

Varianta 2:

Bude navázáno na postup konfigurace varianty 2 výše a v již vytvořeném souboru 50-cloud-init.yaml:

sudo vim /etc/netplan/50-cloud-init.yaml

Opět doporučuji zkopírovat konfiguraci přímo do souboru a následně editovat IP adresy a rozhraní.

network:
    renderer: networkd
    ethernets:
        enp1s0:
            addresses: [192.168.88.15/24, "2001:cafe:cafe:cafe::2/64"]
            gateway4: 192.168.88.1
            gateway6: 2001:cafe:cafe:cafe::1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4, "2001:4860:4860::8888", "2001:4860:4860::4444"]
              search: [martinuvzivot.cz]
            dhcp4: no
    version: 2

Potvrzení změn:

sudo netplan apply
Hotovo. Po restartu se zachovají nakonfigurované změny.

Ověření:

Ověření nakonfigurované IPv6 adresy:

ip a

Výpis konfigurace ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:27:0e:0e:c6:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.15/24 brd 192.168.88.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 2001:cafe:cafe:cafe::2/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::227:eff:fe0e:c6e5/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
Hotovo. Po restartu se zachovají nakonfigurované změny.

Ověření výchozí IPv6 brány:

ip -6 route show

Výpis příkazu ip -6 route show:

2001:cafe:cafe:cafe::/64 dev enp1s0 proto kernel metric 100 pref medium
2001:cafe:cafe:cafe::/64 dev enp1s0 proto kernel metric 256 pref medium
fe80::/64 dev enp1s0 proto kernel metric 100 pref medium
fe80::/64 dev enp1s0 proto kernel metric 256 pref medium
default via 2001:cafe:cafe:cafe::1 dev enp1s0 proto static metric 1024 pref medium

Ověření nastavení DNS serverů:

systemd-resolve --status

Výpis souboru systemd-resolve –status:

Link 2 (enp1s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4
                      2001:4860:4860::8888
                      2001:4860:4860::4444

Zdroje:

http://manpages.ubuntu.com/manpages/xenial/man7/nmcli-examples.7.html
https://www.tecmint.com/configure-network-connections-using-nmcli-tool-in-linux/

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *