Ubuntu 16.04 LTS serverの固定IPアドレス設定方法
本記事では、Ubuntu 16.04 LTS serverのインターフェースに固定のipv4アドレスを設定した際の手順をまとめます。
図で示したように、テストサーバのens6インターフェースに「192.168.102.148」という固定IPアドレスを設定しました。
なお、テストサーバは以下サイトのクラウドイメージで作成されたVMです。
1. 事前確認
最初にサーバのOSがUbuntu 16.04 ltsであることを確認します。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
※ubuntu 18.04に対する設定方法は異なりますので以下記事をご参照ください!
次に、ipv4の固定アドレスを設定するIFの情報を確認します。
今はens6にIPアドレスが設定されていないことがわかります。
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:4b:77:34 brd ff:ff:ff:ff:ff:ff inet 192.168.100.148/24 brd 192.168.100.255 scope global ens3 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe4b:7734/64 scope link valid_lft forever preferred_lft forever 3: ens6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether fa:16:3e:3f:ee:59 brd ff:ff:ff:ff:ff:ff
設定前のルーティングテーブルには「192.168.101.0/24」のネットワークが表示されていないです。
$ ip r default via 192.168.100.1 dev ens3 169.254.169.254 via 192.168.100.1 dev ens3 192.168.100.0/24 dev ens3 proto kernel scope link src 192.168.100.148
疎通確認先とのpingも無応答です。
$ ping 192.168.102.10 PING 192.168.102.10 (192.168.102.10) 56(84) bytes of data. ^C --- 192.168.102.10 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 999ms
2. 設定ファイル編集
Ubuntu 16.04 LTS serverのネットワーク設定は「/etc/network/」ディレクトリの配下にある「interfaces」に記述された内容が反映されます(※)。
$ ls -l /etc/network/interfaces -rw-r--r-- 1 root root 417 Apr 16 14:17 /etc/network/interfaces
ファイルの中身はこんな感じです。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto ens6 iface ens6 inet static address 192.168.102.148 netmask 255.255.255.0
以上で設定用ファイルの編集が完了しました。
(※)
デフォルトでは「/etc/network/interfaces」内の
source /etc/network/interfaces.d/*.cfg
行で、「50-cloud-init.cfg」を実行しております。
以下のように、このディレクトリ配下に、数字部が50より大きいファイルを複製し、上記のens6に関する設定を追記する形でも設定変更は可能です。
$ cp /etc/network/interfaces.d/50-cloud-init.cfg /etc/network/interfaces.d/99-cloud-init.cfg $ $ ls -l /etc/network/interfaces.d/ total 8 -rw-r--r-- 1 root root 375 May 9 00:21 50-cloud-init.cfg -rw-r--r-- 1 root root 376 May 9 04:29 99-cloud-init.cfg
(※)
3. 設定反映
設定内容を反映します。
$ shutdown -r now
設定後の確認を行います。ens6に「192.168.102.148」のipアドレスが割り振られていることが確認できます。
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 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: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:4b:77:34 brd ff:ff:ff:ff:ff:ff inet 192.168.100.148/24 brd 192.168.100.255 scope global ens3 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe4b:7734/64 scope link valid_lft forever preferred_lft forever 3: ens6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:3f:ee:59 brd ff:ff:ff:ff:ff:ff inet 192.168.102.148/24 brd 192.168.102.255 scope global ens6 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe3f:ee59/64 scope link valid_lft forever preferred_lft forever
ルーティングテーブルにも「192.168.101.0/24」が追加されています。
$ ip r default via 192.168.100.1 dev ens3 169.254.169.254 via 192.168.100.1 dev ens3 192.168.100.0/24 dev ens3 proto kernel scope link src 192.168.100.148 192.168.102.0/24 dev ens6 proto kernel scope link src 192.168.102.148 $
疎通確認を行います。疎通できるようになりました。
$ ping 192.168.102.10 PING 192.168.102.10 (192.168.102.10) 56(84) bytes of data. 64 bytes from 192.168.102.10: icmp_seq=1 ttl=64 time=1.42 ms 64 bytes from 192.168.102.10: icmp_seq=2 ttl=64 time=0.671 ms ^C --- 192.168.102.10 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.671/1.049/1.427/0.378 ms
4. おまけ
2.の設定ファイル編集時に、ens6の設定項目にgatewayとnameserversを加えることで、デフォルトゲートウェイとDNSサーバを設定できます。
現在のDNSサーバの設定を確認します。
$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.100.2 search openstacklocal
以下のように設定ファイルを編集します。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Source interfaces # Please check /etc/network/interfaces.d before changing this file # as interfaces may have been defined in /etc/network/interfaces.d # See LP: #1262951 source /etc/network/interfaces.d/*.cfg auto ens6 iface ens6 inet static address 192.168.102.148 netmask 255.255.255.0 gateway 192.168.102.1 dns-nameservers 8.8.8.8 8.8.4.4
設定内容を反映します。
$ shutdown -r now
以下の通り、ルーティングテーブルに「192.168.102.1」のデフォルトルートが追加されました。
$ ip r default via 192.168.102.1 dev ens6 onlink 169.254.169.254 via 192.168.100.1 dev ens3 192.168.100.0/24 dev ens3 proto kernel scope link src 192.168.100.148 192.168.102.0/24 dev ens6 proto kernel scope link src 192.168.102.148
また、ens6のDNSサーバ設定部が更新されていることも確認できます。
$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.100.2 nameserver 8.8.8.8 nameserver 8.8.4.4 search openstacklocal