CentOSでIPアドレスを固定にしようと思いGUIメニューから、システム→設定→ネットワーク接続、でネットワークインターフェースを選択して編集をクリック、IPv4のセッティングタブを開くと、IPアドレスを複数設定できるように見えます。
おそらく最初のIPがeth0に割り当てられ、2つ目がeth0:0、3つ目がeth0:1、と言った具合に続くと予想していました。仕事で複数IP振る必要があったので、早速試してみました。
下のように192.168.100.101と192.168.100.102を設定して、
ifconfigで確認したところ、アドレス192.168.100.102は出てきません。
bash-4.1$ ifconfig -a eth0 Link encap:Ethernet HWaddr 08:00:27:DC:58:77 inet addr:192.168.100.101 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fedc:5877/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:47 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12297 (12.0 KiB) TX bytes:3305 (3.2 KiB) Interrupt:10 Base address:0xd020 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
しかし、他のマシンからpingを打つとちゃんと帰ってきます。pingを打ったマシンでarpを見ると、ちゃんと複数IPアドレスが同一MACアドレスにリンクされています。
$ arp -a ? (192.168.100.101) at 8:0:27:dc:58:77 on en1 ifscope [ethernet] ? (192.168.100.102) at 8:0:27:dc:58:77 on en1 ifscope [ethernet]
どゆこと???
(◕‿‿◕)わけがわからないよ。
意図した通りに動いているけど原理がまったくわからない。
「CentOS6+複数IPアドレス」で検索しても、従来の方法しか見つかりませんでしたが、「RedHat6+複数IPアドレス」でようやくこのページにたどり着きました。
RHEL6: ifconfig is obsolete!
このページによると、ifconfigは廃止なんだそうで、今後はip addrを使えってことでした。早速やってみると、
bash-4.1$ ip addr 1: lo:mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 08:00:27:dc:58:77 brd ff:ff:ff:ff:ff:ff inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0 inet 192.168.100.102/24 brd 192.168.100.255 scope global secondary eth0 inet6 fe80::a00:27ff:fedc:5877/64 scope link valid_lft forever preferred_lft forever
でてきました。 どうやら最近のRedHat系OSは1つのインターフェースに仮想インターフェースを追加することなくフツーに複数IPアドレス設定できるようになっているようです。従来のifconfigではこの設定を見ることはできず、ip addrでないと見れない。
設定ファイルの中は、以下の通り2つ目以降のアドレスをIPADDR2等で設定しています。
bash-4.1$ cat /etc/sysconfig/network-scripts/ifcfg-Auto_eth0 TYPE=Ethernet BOOTPROTO=none IPADDR=192.168.100.101 PREFIX=24 GATEWAY=192.168.100.254 DNS1=192.168.100.254 DOMAIN=burger.jp DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="Auto eth0" UUID=e35c20d7-be0a-44e4-bdea-a3f20d6a9165 ONBOOT=yes IPADDR2=192.168.100.102 PREFIX2=24 HWADDR=08:00:27:DC:58:77 LAST_CONNECT=1383196516
ずいぶん簡単にできるようになりました。が、このリンク先にもある通り、
ためしにこの状態で仮想インターフェースも使えるかやってみました。/etc/sysconfig/network-scripts/ifcfg-eth0:0を以下のように用意します。192.168.100.103を仮想IPアドレスにします。
bash-4.1$ cat /etc/sysconfig/network-scripts/ifcfg-eth0:0 TYPE=Ethernet BOOTPROTO=none IPADDR=192.168.100.103 PREFIX=24 GATEWAY=192.168.100.254 ONBOOT=yes
リブート後ifconfigで確認すると、192.168.100.102は相変わらず出ませんがeth0:0で192.168.100.103が出てきました。
bash-4.1$ ifconfig -a eth0 Link encap:Ethernet HWaddr 08:00:27:DC:58:77 inet addr:192.168.100.101 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fedc:5877/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23 errors:0 dropped:0 overruns:0 frame:0 TX packets:45 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12171 (11.8 KiB) TX bytes:3221 (3.1 KiB) Interrupt:10 Base address:0xd020 eth0:0 Link encap:Ethernet HWaddr 08:00:27:DC:58:77 inet addr:192.168.100.103 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:10 Base address:0xd020 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
ip addrはこんなカンジです。
bash-4.1$ ip addr 1: lo:mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 08:00:27:dc:58:77 brd ff:ff:ff:ff:ff:ff inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0 inet 192.168.100.102/24 brd 192.168.100.255 scope global secondary eth0 inet 192.168.100.103/24 brd 192.168.100.255 scope global secondary eth0:0 inet6 fe80::a00:27ff:fedc:5877/64 scope link
他のマシンからはすべて問題なくpingが通りました。
このコメントはブログの管理者によって削除されました。
返信削除