Linux で IP エイリアスを実現する

インフラにおける冗長構成構築に非常に役立つ IP エイリアスについて こちら などで既にお話していますが、今回は Linux 環境で具体的に IP エイリアスを実現する方法について説明します。

ここ 5年前後の Linux カーネルには(正確には 2.0.xx 以降)IP エイリアスの機能が既に備わっています。その為、何かをインストールするような必要は特にありません。

IP エイリアスを設定する

設定は IP エイリアスを物理 NIC(ネットワークインタフェースカード)に設定(追加)し、設定した IP エイリアスを起動することで完了します。

この時、必ず物理 NIC が既に存在していることが前提です。物理 NIC は Linux の場合、eth0 や eth1 等(有線 LAN)と表示され(ifconfig コマンドの結果)これらに IP エイリアスを追加するとeth0:1 や eth1:1 等と":" 区切りで表示されるようになります。

設定は 1コマンドでできてしまい、 IP エイリアスを設定するサーバにログインし、root 権限で以下のコマンドを実行するだけになります。

# ifconfig eth0:1 192.168.7.110

このコマンドでは eth0 に対してeth0:1 という 192.168.7.110 の IP エイリアスを追加することを意味しています。(前提:eth0:1 が既に設定されていないこと。192.168.7.110  が他にいないこと)

この後、ifconfig コマンドを実行し、eth0:1 が起動していることを確認します。

# ifconfig
eth0 Link encap:Ethernet  HWaddr 00:XX:38:XX:01:7D
inet addr:192.168.7.70 Bcast:192.168.7.255 Mask:255.255.255.0
inet6 addr: fe80::21b:38ff:fe0b:17d/64 Scope:Link
(省略)

eth0:1 Link encap:Ethernet HWaddr 00:XX:38:XX:01:7D
★ eth0:1 が追加された
inet addr:192.168.7.110 Bcast:192.168.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:233 Base address:0xe000
(省略)

次にこのサーバ以外の PC で新しく追加した IP エイリアスにパケットが届くかを確認してみましょう。

$ ping 192.168.7.110
PING 192.168.7.110 (192.168.1.110): 56 data bytes
64 bytes from 192.168.7.110: icmp_seq=0 ttl=64 time=1.590 ms
64 bytes from 192.168.7.110: icmp_seq=1 ttl=64 time=0.721 ms

届いていました。成功です。

Published by in 冗長構成 using 132 words.