2013-03-31

RHEL6: ifconfig is obsolete!


前回エントリーで、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 アドレスには対応していない。二番目以降の設定は Webmin 画面からは見えないし、変更することもできない。よって Webmin でネットワーク設定を行うつもりなら、この複数 IP アドレス機能も使わない方が良い。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。