FreeBSD で TagVlan を使いたくなったので,頑張って覚えてみた.割とさっくり出来た.
dot1q TagVlan を使う為に,FreeBSD で vlan インタフェースを作成する.話をしたい vlan の数だけ作成する事になります.
また,インタフェースに付く番号は自由に決められるので,vlan 番号とあわせると判りやすいと思います.
# ifconfig vlan10 plumb # ifconfig vlan20 plumb # ifconfig vlan30 plumb # ifconfig vlan40 plumb
これで,4つのインタフェースが作成されました.これだけでは,インタフェースはあるもののどの vlan と話をするか等が全く設定されていない為使えません.次のようにして vlan インタフェースと物理インタフェース,vlan 番号を設定します.
# ifconfig vlan10 vlan 10 vlandev xl0
この場合,vlan10 という vlan インタフェースは xl0 という物理インタフェースを使います.また,vlan 番号 10 を理解するように設定されています.
L2 レベルではこれで完了です.今度はこのインタフェースにアドレスを設定し,L3 で通信が出来るようにします.
# ifconfig vlan10 inet 192.168.x.254/24
と,通常のインタフェースと同様にアドレスを設定して下さい.
上記手順を使いたい vlan の数だけ設定すると良い感じです.
当然,FreeBSD を再起動後も使いたいでしょう.その場合は /etc/rc.conf に記述する事で使えるようになります.
キモは cloned_interfaces です.vlan インタフェースを上では手動で作成 (plumb) していました.この行にインタフェース名を列挙する事で同様の事をやってくれます.
cloned_interfaces="vlan10 vlan20 vlan30 vlan40"
これで再起動後に,vlan インタフェースが作成された状態で起動します.ここまでくると後は通常のインタフェースと同様の扱いで設定可能です.
ifconfig_vlan10="inet 192.168.x.254/24 vlan 10 vlandev xl0"
ここまで記述する事で vlan インタフェースに IP アドレスが設定された状態で起動します.
cloned_interfaces がキモと書いたのですが,/boot/loader.conf に以下の様に記述するか,kernel に組み込んでおけば必要が無いかもしれません.
if_vlan_load="YES"
Hiroyuki Seino http://www.seichan.org/ http://www.seichan.org/blog/
Today:3 Yesterday:0 All:15937