NIC が1つしかない PC 上でネットワークの送受信プログラムを試したり、1つのWebサーバやメールサーバで複数のドメインを運用するバーチャルホスト(Virtual Host)などのテストをしたい時、IP アドレスが2つ以上欲しい場合があります。NIC をもう1つ購入して、PCの筐体を開けて新しいNICを刺すのは結構負荷が高い作業です。そんな時に便利なのがIPエイリアス機能です。IPエイリアス機能を使うと1つのNICに複数のIPアドレスを持たせる事が出来るのです。
まずは、コネクション名を確認します。Ubuntu で何も設定していないのであれば、有線であれば「有線接続 1」、WiFi ならアクセスポイント名が割り振られています。
$ nmcli connection show
NAME UUID TYPE DEVICE
有線接続 1 bfdb634b-5f4a-357b-92fd-19252611172c ethernet enp0s3
それでは、「有線接続 1」デバイス、「enp0s3」に 192.168.0.100/24 というエイリアスのアドレスを追加設定します。設定後、デバイスを起動し直します。
$ sudo nmcli connection modify "有線接続 1" +ipv4.addresses 192.168.0.100/24
$ sudo nmcli connection up "有線接続 1"
IP アドレスを確認すると、2つアドレスが割り振られていることがわかります。
$ ip a
:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d8:58:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.17/24 brd 192.168.0.255 scope global dynamic noprefixroute enp0s3
valid_lft 86398sec preferred_lft 86398sec
inet 192.168.0.100/24 brd 192.168.0.255 scope global secondary noprefixroute enp0s3
valid_lft forever preferred_lft forever
:
他のマシンから疎通確認をしてみてください。
$ ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=0.298 ms
64 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=0.479 ms
:
設定の削除は以下のように行います。なおエイリアスには dhcp のアドレスは割り振る事はできません。
$ sudo nmcli connection modify "有線接続 1" -ipv4.addresses 192.168.0.100/24
$ sudo nmcli connection up "有線接続 1"