2007/02/15

サブインターフェース

なんだか、Analyticsの解析結果を見てると、「linux サブインターフェース」で飛んでくる人が多いようだ。なので、これについて書いてみる。

普通、Linuxのネットワークインターフェースにはeth0などの名前が付いている。これには、ifconfigを使ってIPアドレスを割当てたりすることが可能だ。しかし、一つのインターフェースには一つのIPアドレスしか割当てられない。一つの物理インターフェースに複数のアドレスを割当てるにはどうすればよいか?その一つの回答が「サブインターフェース」だ。

例えば、Linux boxが、192.168.55/24のネットワークに接続されていたとしよう。接続しているインターフェースのデバイスは、eth0だ。このeth0には、192.168.55.6というアドレスが割当てられているとする。これに加えて、192.168.55.7というアドレスを追加したい。
答は簡単で、eth0に対するサブインターフェース対してifconfigでアドレスを割当ててやればよい。サブインターフェース名は、物理インターフェース名と、1~255のサブインターフェース番号を「:」でつないだもの(例えばeth0:1)で指定する。
# ifconfig eth0:1 192.168.55.7 netmask 255.255.255.0
確認のためifconfigコマンドを引数なしで起動すると、次のような結果を得る。
eth0:1    Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.55.7  Bcast:192.168.55.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
この状態を起動時から有効にするには、/etc/sysconfig/network-scripts/ifcfg-eth0:1のようなファイルを作ればよい。書式は、物理インターフェースの設定ファイル(/etc/sysconfig/network-scripts/ifcfg-eth0など)と同じだが、HWADDRなどは指定しない。

サブインターフェースの使用に関しては、注意しなければならない点がある。『NTPDの謎』で指摘した問題だが、UDPのサーバ(NTPサーバなど)を使用する場合に、サブインターフェースを使っていると、正しく通信できない場合がある。詳しくは、前の記事を読んで欲しい。

なお、物理インターフェースに複数のIPアドレスを割当てる方法は他にもある。例えば、物理インターフェースをIEEE802.1qタグVLAN(Tag VLAN)インターフェースとして設定する方法だ。これについてはいずれ書きたい。

0 件のコメント: