Shammer's Philosophy

My private adversaria

Linux(Debian wheezy) で VLAN を利用する

コマンドを使用する場合

apt-get install vlan とやると、vconfig というコマンドが利用可能になる。このコマンドを使用することで NIC を vlan 対応にできるみたいだ。

# vconfig add eth0 10
Added VLAN with VID == 10 to IF -:eth0:-

削除は rem を使う。

# vconfig rem eth0.10
Removed VLAN -:eth0.10:-

起動時から静的に定義されるようにする場合

静的に定義するには、例によって /etc/network/interfaces に以下のように書きこむ。

auto	eth0.10
iface	eth0.10	inet	manual
	vlan-raw-device	eth0
	up ip link set $IFACE up

念のためだが、ネットワーク経由でやる場合は複数の NIC がないと接続できなくなる可能性もありそうなので、SSH 用の NIC とVLAN 用の NIC は分けた方が安全と思われる。

VLAN への IP アドレス割り当て

コマンドで定義した場合も静的に定義した場合も ifconfig eth0.10 XXX.XXX.XXX.XXX netmask 255.255.255.0 で定義できる。

補足

以前のバージョンでは、コマンド定義した後で /etc/init.d/networking restart とやれば /etc/network/interfaces に書きこまれたのだが、wheezy か squeeze どちらかからできなくなった。そして、再起動したら /etc/network/interfaces に書きこまれた内容へすべてリセットされる。でも、慣れてみるとこの今の方が自分の使い方にはあっている気がする。具体的には、

  • Linux は複数 NIC がある
  • 片方の NIC は常に固定 IP が割り当てられていて、もう一方は動作検証のために頻繁に変更する

という要件がある場合、もし自分以外の何か(daemonとか)が /etc/network/interfaces を勝手に書き換えてしまった場合、復旧に時間がかかる可能性が出てくる気がする。VLAN 使ったり、上記例にはないけれどブリッジ使ったり、ルーティングテーブルも意識しないといけなかったり、となると、再起動一発で全て元通りになる状態を保っておきたくなる。動くはず、と思うようにしても、何か見落としがあって動かないときとかは再起動で復旧できると嬉しい。どこがおかしい?と、自分が個人的に利用するだけの環境の設定状況とにらめっこするのはナンセンスだ。