インフラにおける冗長構成構築に非常に役立つ 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
届いていました。成功です。