前回エントリで、expand_config を見て気付いたことがある。
RHEL6 では、インターフェイスに複数の IP アドレスを設定できるらしい。そういえば OS インストール時のネットワーク設定画面では、複数 IP アドレスが登録できそうな UI になっていた。今まで試したことはなかったが、実際にそこで複数 IP アドレスを設定してみると、ifcfg-* は次のようになる。
RHEL6.4: /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
TYPE=Ethernet
UUID=7f36ffb3-0b2a-48d5-9e81-18b685396f06
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:94:42:BD
IPADDR=192.168.0.1
PREFIX=24
IPADDR2=192.168.0.2
PREFIX2=24
IPADDR3=192.168.0.3
PREFIX3=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
これは完全に意図通りに動く。もう仮想インターフェイスなんて(eth0:1 とか)必要ない。ていうか、できるんだったらもっと早く(略)。尤も、IP アドレス毎に ifup / ifdown する必要があるなら、仮想インターフェイスは相変わらず有用ではある。
しかしインターフェイスに複数の IP アドレスを設定できるなら、今現在インターフェイスで有効な IP アドレスを知る手段も必要になる。これらは 2 つで 1 つ、どちらか一方だけでは意味がない。しかし残念ながら、ifconfig はその役には立たないらしい。
[rhel64]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:94:42:BD
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe94:42bd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42649 errors:0 dropped:0 overruns:0 frame:0
TX packets:18439 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26605808 (25.3 MiB) TX bytes:2001382 (1.9 MiB)
困った時の、man 頼み。
[rhel64]# man ifconfig
NAME
ifconfig - configure a network interface
SYNOPSIS
ifconfig [interface]
ifconfig interface [aftype] options | address ...
NOTE
This program is obsolete! For replacement check ip addr and ip link.
For statistics use ip -s link.
obsolete! と言ってくれたところで、一体どれだけの人が気付くというのか。今回のことがなければ、私も man を読もうとは思わなかったし。それはともかく、これからは ip addr を使え、と。
[rhel64]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:94:42:bd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary eth0
inet 192.168.0.3/24 brd 192.168.0.255 scope global secondary eth0
inet6 fe80::20c:29ff:fe94:42bd/64 scope link
valid_lft forever preferred_lft forever
この ip addr は RHEL5 でも動く。(RHEL4 以前は知らない)
以上より、
もう ifconfig は時代遅れらしいよ。
ちなみに前回の話に出た Webmin (1.620)だが、やはりこの複数 IP アドレスには対応していない。2 番目以降の設定は Webmin 画面からは見えないし、変更することもできない。よって Webmin でネットワーク設定を行うつもりなら、この複数 IP アドレス機能も使わない方が良い。