【2024年令和最新版】いまどきのDebianで1つのNICに複数IPを設定するIPエイリアスを設定するには

nogajun
nogajun

1つのLANポートに2つ以上のIPアドレスを設定する「IPエイリアス」について調べる機会があったので調べると、未だに「eth0:0と書く」と書いてある古すぎる記事ばかり引っかかって辟易。

IPエイリアスについては、以前「systemd-networkdを使って固定IPを簡単に設定するを書いたとき最後に付け足しで少し書いたけど、古い情報がこんなにはびこったままなのは悪なので/etc/network/interfacesの方法も合わせてまとめておきます。「netplanをインストールしろ」と書いてある記事もゴミです。

IPエイリアスを設定する方法は全部で3つ。「/etc/network/interfacesを使う」「systemd-networkdで使う」「NetworkManager(nmcli)で使う」です。ではどうぞ。

1. /etc/network/interfacesでIPエイリアス

こちらの情報はDebian Wikiに載っています

/etc/network/interfacesに設定する場合は、連続して書けば設定されます。例は、Debian Wikiからのほぼ引き写しで連続してIPを設定しています。

設定例の最後にaddress 10.10.10.14/24と書いているような異なるサブネットも設定できます。

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
    address 192.168.1.42/24
    gateway 192.168.1.1

iface enp0s3 inet static
    address 192.168.1.43/24

# adding IP addresses from different subnets is also possible
iface enp0s3 inet static
    address 10.10.10.14/24

もう1つの方法はipコマンドで追加する方法ですね。上の方がわかりやすいので、これを使う機会はないような気がします。

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
    address 192.168.1.42/24
    gateway 192.168.1.1

    up  ip addr add 192.168.1.43/24 dev $IFACE label $IFACE:0
    down  ip addr del 192.168.1.43/24 dev $IFACE label $IFACE:0
    # adding IP addresses from different subnets is also possible
    up  ip addr add 10.10.10.14/24 dev $IFACE label $IFACE:1
    down  ip addr del 10.10.10.14/24 dev $IFACE label $IFACE:1

2. systemd-networkdでIPエイリアス

こちらは以前書いたものを持ってきました。

systemd-networkdの設定ファイル、たとえば/etc/systemd/network/enp3s0.networkが設定ファイルとするとその設定ファイルのNetworkセクションにAddressを続けて書けばよいです。上の例をsystemd-networkdで設定するならこんな感じです。

[Match]
Name=enp3s0

[Network]
Address=192.168.1.42/24
Address=192.168.1.43/24
Gateway=192.168.1.1

3. nmcliでIPエイリアス

正直いうとNetworkManagerを使うぐらいならsystemd-networkdを使うので自分は使いませんが、もしかすると使う場合もあるかもしれないので、nmcliを使って設定する場合も書いておきます。

nmcli con mod enp3s0 +ipv4.addresses 192.168.1.43/24
nmcli con up enp3s0

まとめ

これだけあれば大丈夫なはず。もういい加減、eth0:0が消えますように。