Ubuntu18.04:Netplanによるネットワーク設定

Ubuntuサーバのネットワーク設定をSSH接続した外部端末からターミナル経由で行う場合には /etc/network/interfacesファイルにネットワークインターフェイス毎に設定を記述し、サービスデーモンを再起動する必要がありました。Ubuntu18.04以降、このネットワーク設定をNetplanにより行うことが出来るようになったようです。

Netplanはネットワーク設定ユーティリティです。
netplan.io: https://netplan.io/

netplan

ネットワーク設定は /etc/netplan/xxx.yaml ファイルに記述します。ネットワークインターフェイス毎にファイルを作成した場合、読み取り順序はファイル名に依存します。conf01.yamlはconf02.yamlに優先してロードされます。

静的IPアドレスを割り当てる場合の記述例

network:
    version: 2
    renderer: networkd
    ethernets:
       network_interface(device):   --->これはiwconfigコマンドで確認
       dhcp4: no
       addresses: [192.168.1.230/24] ---->ネットマスクは/24の箇所24=>255.255.255.0(8bitx3)
       gateway4: 192.168.1.254
       nameservers:
          addresses: [8.8.4.4,8.8.8.8]

記述後ファイルを保存してテストします。

$ sudo netplan try

エラーが出なければ次のコマンドで設定を反映させます。

$ sudo netplan apply

Netplanの設定例 /etc/netplan/xxx.yaml

https://netplan.io/examples

NetworkManagerによる設定を使用(Ubuntu18.04のデフォルト)

network:
  version: 2
  renderer: NetworkManager

NetworkManagerのcliで設定

$ sudo nmtui

DHCPによるIPアドレス付与+マルチインターフェイス

network:
  version: 2
  ethernets:
    enred:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 100
    engreen:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 200

WPA(パーソナル)ワイヤレス・ネットワーク

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0b1:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.21/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1, 8.8.8.8]
      access-points:
        "network_ssid_name":
          password: "**********"

シングルインターフェイスにマルチアドレス付与

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
     addresses:
       - 10.100.1.38/24
       - 10.100.1.39/24
     gateway4: 10.100.1.1

同一LAN内でローカルドメイン名で他のPCにアクセス出来ない場合、アクセスするPCのDNSをLANルータに指定します。

$ sudo nmtui

nmtui_edit

nmtui_wired

ルータのDHCPにより割り当てられるIP群の先頭アドレス(ゲートウェイ)をDNSに指定 (192.168.0.1) グローバルDNSはルータ内で設定 (1.1.1.1, 8.8.8.8)
nmtui_connection

ネットワークマネージャの再起動

$ sudo service NetworkManager restart

nslookup, pingコマンドで確認

$ nslookup
> examplepc.lan
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	orangepipc.lan
Address: 192.168.0.5
$ ping examplepc.lan