Nastavení statické IP adresy v Linuxu

By | 08/06/2019

Nastavení statické IP adresy v Linuxu

Nastavení statické IPv4 adresy

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.

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.

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: [rustic.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
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

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ž stačí 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 rustic.cz
Po restartu se zachovají nakonfigurované změny.

Nastavení statické IPv6 adresy

Navážeme na postup výše a v již vytvořeném souboru 50-cloud-init.yaml dopíšeme:

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.

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: [rustic.cz]
            dhcp4: no
    version: 2

Potvrzení změn:

sudo netplan apply

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

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
Po restartu se zachovají nakonfigurované změny.

Napsat komentář

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