* FreeBSD で、802.1Q TagVLANを使う方法 [#e0d8cf83]

** 準備 [#e5c56695]

FreeBSD で、kernelコンパイルで有効にするか、moduleを組み込み、利用する2つのパターンがあります。~
GENERIC kernelを使っている場合は、わざわざ手でkernelを作り直さないと行けないため、今回は、moduleを組み込む方法でのTipsとなります。

尚、vlanが使えるデバイスは限られており、[[man - if-vlan:http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=if_vlan&dir=jpman-7.0.2%2Fman&sect=0]]や[[man - vlan:http://www.jp.freebsd.org/cgi/mroff.cgi?sect=4&cmd=&lc=1&subdir=man&dir=jpman-6.0.0%2Fman&subdir=man&man=vlan]]を見る限り、ハードウェアで処理可能なNICは、bce, bge, cxgb, em, ixgb, msk, nge, re, stge, ti, txp, vge となっているようです。ソフトウェアエミュレーションにより、多くのデバイスが対応出来るようですが、一部のNICには、制約が有るようですので、manで確認して下さい。




** VLAN Kernel moduleを読み込む [#vb10b3e3]

カーネル再構築ではなく、VLAN Kernel Moduleをロードします。

 # kldload if_vlan.ko

正常に読み込まれているか、kldstat で見ることが出来ます。

 # kldstat
  Id Refs Address Size Name
  1  1 0xc17c7000 4000 if_vlan.ko

正常にload出来ることを確認出来たら、次回から自動起動時に、moduleを読み込むよう、/boot/loader.conf に以下の設定を書いておきましょう。rc.confで自動設定するときに、予めmoduleが読み込まれている必要があります。

 # echo 'if_vlan_load="YES"' >> /boot/loader.conf 


** 手動/vlan if を作る [#h0422111]

vlanX は、任意の数字で作成することが出来るため、VIDとデバイス vlanX を同じにしておいても良い。


 # ifconfig vlan1 plumb
 # ifconfig vlan2 plumb
 # ifconfig vlan3 plumb

機器によっては、MacAddressが同じだと、不都合が出る可能性があるため、任意のMacAddressに変更することが可能。

 # ifconfig vlan1 link 00:1c:c4:00:11:01
 # ifconfig vlan2 link 00:1c:c4:00:11:02
 # ifconfig vlan3 link 00:1c:c4:00:11:03

無事に、ifconfig で変わったのを確認出来れば、そのNICが、vlan及びMacAddress変更(あくまでも名乗っているだけで、HWアドレスは書き換えられていない)が可能となる。


** 手動/vlan設定 [#jb8b7fbd]

下記のようにして、どの物理デバイスにたいして、vlanを使うか設定をおこなう。~
途中から、bge0.2 といった形でも、使えるようになっている(らしい)

 # ifconfig vlan1 vlan 1 vlandev bge0
 # ifconfig vlan2 vlan 2 vlandev bge0
 # ifconfig vlan3 vlan 3 vlandev bge0

vlanの設定が無事に完了したら、下記のようになっているはずです。

 # ifconfig vlan2
 vlan2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
 ether 00:1c:c4:00:11:02
 media: Ethernet autoselect (100baseTX <full-duplex>)
 status: active
 vlan: 2 parent interface: bge0


** 手動/IPアドレスを付ける [#z30fe8b7]

普段通り、ifconfig で、IPアドレスを付ければ問題有りません。

 # ifconfig vlan1 inet 192.168.1.10 netmask 255.255.255.0
 # ifconfig vlan2 inet 192.168.2.10 netmask 255.255.255.0
 # ifconfig vlan3 inet 192.168.3.10 netmask 255.255.255.0

同様に、IPv6も問題なく付けることが出来ます。

 # ifconfig vlan1 inet add 2001:200:564:4649::1
 # ifconfig vlan2 inet add 2001:200:564:2525::1
 # ifconfig vlan3 inet add 2001:200:564:0721::1

ルーティング等は、route add で追加出来ますが、今回は触れません。~
疎通確認が出来たら、/etc/rc.conf に記述し、起動時に自動設定されるように設定をおこないます。


** /etc/rc.conf の編集 [#d8b7d893]




** 参考リンク [#u3d7c52a]

- [[FreeBSD 日本語マニュアル if_vlan- IEEE 802.1Q VLAN ネットワークインタフェース:http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=if_vlan&dir=jpman-7.1.2%2Fman&sect=0]]
- [[FreeBSD 日本語マニュアル rc.conf -- システム設定情報:http://www.jp.freebsd.org/cgi/mroff.cgi?sect=5&cmd=&lc=1&subdir=man&dir=jpman-7.1.2%2Fman&subdir=man&man=rc.conf]]
- [[FreeBSD 日本語マニュアル ifconfig -- ネットワークインタフェースのパラメータを設定する
:http://www.jp.freebsd.org/cgi/mroff.cgi?sect=8&cmd=&lc=1&subdir=man&dir=jpman-7.1.2%2Fman&subdir=man&man=ifconfig]]

- [[TagVLAN編:http://apex.wind.co.jp/tetsuro/f-bsd/vlan.html]]
- [[FreeBSD BOXでVLAN(IEEE802.1q)を喋らせる:http://www.ojnet-japan.com/FreeBSD/VLAN/vlan.html]]
- [[FreeBSD-dot1q:http://www.seichan.org/wiki/index.php?FreeBSD-dot1q]]
- [[1つのインターフェースの有効活用:http://www.gnotes.jp/unix/wiki.cgi?page=%A3%B1%A4%C4%A4%CE%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A1%BC%A5%B9%A4%CE%CD%AD%B8%FA%B3%E8%CD%D1]]
- [[http://float.muranet.jp/~mura/blosxom.cgi/2006/09/]]
- [[FreeBSD VLANs Configuration using ifconfig command:http://www.cyberciti.biz/faq/howto-configure-freebsd-vlans-with-ifconfig-command/]]
TOPページへ戻る   新しいページの作成新しい下位ページの作成そのページを引用して新規作成ページ名の変更ページへのリンク元を表示   サイトのページ一覧サイト内単語検索編集したページの履歴削除したページの履歴   別ウィンドウでマニュアルページへ