Mailinglist Archive: opensuse-ja (76 mails)

< Previous Next >
Re: [suse-linux-ja] エイリアスIPの付 け方について
  • From: YAMAGUCHI Kenji <yamk@xxxxxxxx>
  • Date: Sat, 06 Nov 2004 23:02:21 +0900
  • Message-id: <20041106222704.4FE4.YAMK@xxxxxxxx>
山口と申します。

On Fri, 05 Nov 2004 18:41:08 +0900
Manabu Tatesawa <mabu@xxxxxxxxxxxxxxxx> wrote:

> SUSE1.9のマシンにエイリアスIPを付ける方法について質問があります。
> エイリアスIPの付け方について、試してみたところ
>
> (1) ifconfig eth0:0 IPアドレス ... を利用
> (2) YaST の[ネットワークカード]-[編集]-[詳細設定]-
> [バーチャルエイリアス]を利用
>
> の2種類の方法があることが分かったのですが、
> これらの挙動が若干異なっていおり気になっています。
>
> 【(1)と(2)の違い】
>
> (1)の方法ですと ifconfig -a で
>
> eth0:0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
> inet addr:10.35.193.220 Bcast:xx.xx.xx.xx Mask:255.255.255.0
> UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
> Base address:0x3040 Memory:fea60000-fea80000
>
> とエイリアスIPのデバイスが表示されるのですが、
> (2)の方法だと ifconfig -a で、エイリアスIPのデバイスが表示されませんでした。

比較的新しい Linux Kernel の TCP/IP 機能は、ifconfig コマンドでは操作で
きない部分があります。/sbin/ifup スクリプトを眺めてみるとわかると思いま
すが、実際には iproute2 パッケージに含まれる ip というコマンドで、IP イ
ンターフェースの操作がされています。

上記の件は、eth0 というインターフェースに2つ以上のアドレスが付けられる
ことが理由です。eth0:0 等ではなく、eth0 そのものにアドレスが複数割り当て
できます。

ifconfig コマンドでは、同じインターフェース名に割り当てられた IP アドレ
スは、先頭の1つしか表示できない仕様らしいので、混乱が起こります。


> 【質問】
>
> YaSTのエイリアスIP割り当てをコマンドラインで表現すると
> どのようになるのでしょうか?

例として eth1 に2つアドレスを振ってみます。

(1) 現在振られているアドレスを表示

# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:90:99:26:8a:e8 brd ff:ff:ff:ff:ff:ff

(2) 1つ目のアドレスを追加

# ip addr add 192.168.1.1/24 brd 192.168.1.255 dev eth1

(3) 現在振られているアドレスを表示

# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:90:99:26:8a:e8 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1

(4) 2つ目のアドレスを追加

# ip addr add 192.168.1.2/24 brd 192.168.1.255 dev eth1

(5) 現在振られているアドレスを表示

# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:90:99:26:8a:e8 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1
inet 192.168.1.2/24 brd 192.168.1.255 scope global secondary eth1

(6) ifconfig コマンドだと1つしか見えない

# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:90:99:26:8A:E8
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:10 Base address:0xcc00

(7) ifconfig コマンドのように、インターフェース名を指定して追加 (label)

# ip addr add 192.168.1.3/24 brd 192.168.1.255 dev eth1 label eth1:0

(8) 現在振られているアドレスを表示

# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:90:99:26:8a:e8 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1
inet 192.168.1.2/24 brd 192.168.1.255 scope global secondary eth1
inet 192.168.1.3/24 brd 192.168.1.255 scope global secondary eth1:0

(9) ifconfig -a コマンドでも確認できる

# ifconfig -a
(中略)
eth1 Link encap:Ethernet HWaddr 00:90:99:26:8A:E8
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:10 Base address:0xcc00

eth1:0 Link encap:Ethernet HWaddr 00:90:99:26:8A:E8
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0xcc00

(10) 追加したアドレスを削除

# ip addr del 192.168.1.3 dev eth1
# ip addr del 192.168.1.2 dev eth1
# ip addr del 192.168.1.1 dev eth1

(または ip addr flush dev eth1 で一括削除)

(11) もはや eth1 には何も IP アドレスがついていない

# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:90:99:26:8a:e8 brd ff:ff:ff:ff:ff:ff


※ip コマンドは強力ですが、エラーチェックが緩い (?) ため、おかしな設定も
できてしまうところがありますので、注意が必要です。


■参考文献

Linux Advanced Routing & Traffic Control HOWTO
・Chapter 3.iproute2 入門
http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.iproute2.html


IP(8) ip - show / manipulate routing, devices, policy routing
and tunnels
(# man ip)


--
山口健史 (YAMAGUCHI Kenji)
E-Mail: yamk@xxxxxxxx


< Previous Next >
Follow Ups
References