【Ubuntu】固定IPアドレスの設定(無線LAN、Wi-Fi対応):netplan

時計 2022.03.31 / 時計

【Ubuntu】固定IPアドレスの設定(無線LAN、Wi-Fi対応):netplan

本記事ではLinux系OSのUbuntuにおける、IPアドレス設定固定IP)する方法について解説していきます。

IPアドレスをDHCPで取得していた場合、IPアドレスが変わってしまうためサーバーには不向きな設定です。
Ubuntuをサーバーとして利用するならば、固定IPアドレスで設定しておくことが望ましいです。

本記事では有線LANの場合と無線(Wi-Fi)の場合、両方の設定方法を解説しています。ぜひ参考にしていただき、UbuntuのIPアドレス設定を進めてください。

過去バージョンでのIPアドレス設定

Ubuntu16.10以前では、/etc/network/interfacesファイルを修正して固定IPアドレスを設定していました。

Ubuntuの古い本や、過去のサイトではこの方法が記述されていますが、新しいバージョンのUbuntuを利用している方は無視してください。

interfacesファイルの設定例は次のようになります。

auto lo
iface lo inet loopback
auto enp0s25
iface enp0s25 inet static
    address 192.168.1.100
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1
    dns-search office54.jp

現在のUbuntuでは/etc/network/interfacesファイルでのIPアドレス設定は廃止され、次項より解説するnetplanで設定するようになりました。

UbuntuのIPアドレス設定:netplan

最新のUbuntuでIPアドレスを設定する場合、以下の流れで設定を行います。ここではWi-Fiを利用するため、無線LANのIPアドレスを固定していきます。

  1. ネットワークインターフェースの確認(無線LAN)
  2. ネットワーク設定ファイルをコピー
  3. コピーしたネットワーク設定ファイルを編集
  4. 無線LANの固定IPアドレスを追記する
  5. ネットワーク設定を反映させる

上記の流れを次項より詳しく

IPアドレスおよびネットワークインターフェースの確認方法

ダウンロード直後のUbuntuではIPアドレスはDHCPで取得する設定になっています。

現在DHCPで取得しているIPアドレスは以下コマンドで確認できます。

$ ip a
1: lo: …
2: eth0: …
3: wlan0: …

Loはloopbackネットワーク、eth0は有線LAN、wlan0は無線LANを表しています。上記を確認することで現在のIPアドレスが確認できます。

また「ip -a」から無線LANのインターフェース名も確認できます。ここではwlan0が無線LANのインターフェース名であることが確認できます。

IPアドレスの確認は「ip -a」以外にも「ip addr show」や「hostname -I」でも確認することができます。

ネットワークの設定ファイル

最新のUbuntuではネットワークの設定・管理にsystemd-networkd(パッケージ:systemd)とnetplan(パッケージ:netplan.io)のソフトウェアを使用します。

IPアドレスやサブネットマスクといったネットワーク設定は以下ファイルに記述しています。

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

# 50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens0:
            dhcp4: true
    version: 2

netplanの設定ファイルはYAML(YAML Ain’t Markup Language)で記述されます。

ネットワーク設定ファイルをコピーする

ネットワーク設定ファイルの50-cloud-init.yamlを編集して固定IPアドレスを設定せずに、コピーした別ファイルに固定IPアドレスの設定を記述しましょう。

通常はありませんが、50-cloud-init.yamlがcloud-initの処理によって上書きされてしまう恐れがあるためです。

そのため基本的にはコピーした別のyamlファイルを作っておきましょう。しかしここで作成するyamlファイル名に注意する必要があります。

netplanには次のような特徴があります。

  • /etc/netplan/*.yamlをすべて参照する
  • 参照する順番はアルファベット順
  • 参照した情報は上書きしていく

つまり名前順で参照していき、最後に参照した設定が優先されるということです。

そのためコピーしたyamlファイルは50-cloud-init.yamlよりも名前順が後ろになるように名前を付けましょう。

以下に設定ファイルをコピーするコマンド例を記します。ここでは54-cloud-init.yamlという名前にしています。

$ cd /etc/netplan
$ cp 50-cloud-init.yaml 54-cloud-init.yaml

IPアドレスを固定IPに変更する

コピー作成したネットワーク設定ファイルに固定IPアドレスの設定を追加します。

有線LANの場合と無線LAN(Wi-Fi)の場合でそれぞれ解説していきます。

有線LANの固定IPアドレス

有線LANの場合、以下のように固定IPアドレスを設定します。

network:
  ethernets:
    インターフェース名:
      dhcp4: false
      dhcp6: false
      addresses: [IPアドレス]
      gateway4: デフォルトゲートウェイのIPアドレス
      nameservers:
        addresses: [DNSアドレス]
  version: 2

インターフェース名は「ip a」で確認した名前を記入します。
addressに記入するIPアドレスはCIDR表記でサブネットマスクを指定します。

固定IPにするため、DHCPの機能はfalseにしておきます。

有線LANでの固定IPアドレスを設定する場合の例を以下に記します。

network:
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.1.54/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]
  version: 2

無線LAN(Wi-Fi)の固定IPアドレス

Wi-Fiで接続する場合はwifisキーを用います。以下のようにネットワーク設定ファイルを記述します。

network:
    version: 2
    renderer: networkd
    wifis:
        インターフェース名:
            dhcp4: false
            dhcp6: false
            sddresses: [IPアドレス]
            gateway4: デフォルトゲートウェイのIPアドレス
            nameservers:
                addresses: [DNSサーバアドレス]
            access-points:
                "SSID":
                    password: "パスワード"

Wi-Fiでの固定IPアドレスを設定する場合の例を以下に記します。

network:
    version: 2
    wifis:
        wlan0:
        optional: false
        dhcp4: false
        dhcp6: false
        addresses: [192.168.1.54/24]
        gateway4: 192.168.1.11
        nameservers:
          addresses: [8.8.8.8]
        access-points:
            "aterm-office-54":
                password: "ubuntu"

ネットワーク設定の反映

ネットワーク設定ファイルに固定IPアドレス情報を追記した以下コマンドを実行しましょう。

sudo netplan apply

上記コマンドによって変更した設定が反映されます。わざわざサーバーを再起動する必要はありません。

IPアドレスを固定にする際の注意点

利用可能なIPアドレスを確認しておく

DHCPでIPアドレスを取得する場合は、利用可能なIPアドレスの範囲などを考える必要はないです。しかし固定でIPアドレスを設定する場合は、指定可能なIPアドレスの範囲を考える必要があります。

例えばルーターが192.168.1.1というアドレスであれば、指定できるIPアドレスの範囲は192.168.1.2~192.168.1.254となります。

192.168.1.255はブロードキャストアドレス、192.168.1.0はネットワークアドレスなので、これらは使用することができません。

ネットワーク内で使用されていないIPアドレスを使用する

使用できるIPアドレスの範囲を求めたら、次に使用したいIPアドレスが他のデバイスで使用されていないかを確認しておく必要があります。

IPアドレスの重複確認の方法としてpingコマンドが使われることが多いです。

以下のようにして、他のデバイスでIPアドレスが使われていないかを確認します。

$ ping -c 4 192.168.1.54
PING 192.168.1.54 (192.168.1.54) 56(84) bytes of data.

--- 192.168.1.54 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3065ms

上記の場合は、他のデバイスでIPアドレスが使われていないことを意味します。

必ずIPアドレスを設定する前に、他のデバイスで使われていないかを確認するようにしましょう。