UbuntuでBonding + タグVLANを構成する。

NUCに入れたUbuntu12.04でBondingをしようとしたものの、USB LANアダプタがUSB3.0対応で新しすぎていろいろ対応できていないところが多いためか、ドライバをコンパイルして入れても起動時にうまいこと起動してくれず、解決までもう少々時間がかかってしまいそうだったのでやむを得ずUSB2.0対応のLUA3-U2-AGT(バッファロー製)を追加調達して動作確認を行ってみた。
対向のスイッチはCatalyst 2960GだったりGS108Tだったりするが、その設定方法は省略する。
なお、以降の手順はすべて管理者権限で行う。

まず、aptitudeでUbuntuに以下のパッケージを導入してbondingとタグVLANを使えるようにするためのモジュールを追加する。

# aptitude install ifenslave vlan bridge-utils

modprobeコマンドでモジュールを読み込む。
bondingモジュールについては公式の手順として/etc/modulesに “bonding” を追記するように書いてあるので、まだ同ファイルに手をつけていない場合には追記しておく。

# modprobe 8021q
# echo "8021q" >> /etc/modules
# modprobe bonding
# echo "bonding" >> /etc/modules

Bondingインタフェースbond0と物理インタフェースeth0、eth1を設定する。
ちなみに今回はeth0がNUC組み込みのIntel製、eth1がUSB LANアダプタだった。

# The primary network interface
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0 eth1# The secondary network interface
auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth0 eth1# The bonding interface
auto bond0
iface bond0 inet manual
bond-slaves eth0 eth1
bond-primary eth0 eth1
bond-mode active-backup
bond-miimon 200

上記の例ではプライマリインタフェースがeth0、Active-Backup型で検査通信を200ミリ秒単位で実行する設定になっている。
/etc/proc/net/bonding/bond0 の中にBondingの動作設定の内容が記載されている。

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 200
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave queue ID: 0Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave queue ID: 0

bondingモジュールのドキュメントによると、設定方法によっては思ったように動いてくれない場合があるようなので、公式のサンプル通りに設定するのが無難のようだ。

VLANの設定は以下の通り。
管理用のネイティブVLAN(VLAN 64)とタグVLANの例ひとつ(VLAN 128)を示す。
8021qモジュールでは何通りかのVLAN設定方法があるが、今回のところはサブインタフェース番号でVLAN IDを表現する方法を採用した。
仮想ブリッジはインタフェースがActive-Backup方式のためSTPを無効にしている。

# Native VLAN
auto br64-NATIVE
iface br64-NATIVE inet static
address 192.168.0.128
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1
dns-search localdomain
bridge_ports bond0
bridge_maxwait 0
bridge_fd 1
bridge_stp off# Tag VLAN
auto bond0.128
iface bond0.128 inet manual
vlan-raw-device bond0
auto br128-TAG
iface br128-TAG inet manual
bridge_ports bond0.128
bridge_maxwait 0
bridge_fd 1
bridge_stp off

上記の設定を終えた後、Ubuntuを再起動すると手っ取り早く諸々の正常動作を確認できた。
Windows端末からpingを実行してテストしてみると、プライマリインタフェースからの切り替わりは正常に動作確認ができたのだが、切り戻りの際に1度pingを止めないとうまくいかないことがあった。
ARPテーブルの更新関係で問題が生じたのだろうか。
もう少々テストしてみる必要があるようだ。

せっかくなのでUSB LANアダプタでもちゃんと動くようにしたいものである。

参考情報:
https://help.ubuntu.com/community/UbuntuBonding
https://www.kernel.org/doc/Documentation/networking/bonding.txthttp://www.whotouchedmygun.com/2012/07/10/bonding-vlans-and-bridging-on-ubuntu-lts-12-04-2/
https://wiki.ubuntu.com/vlan
http://manpages.ubuntu.com/manpages/lucid/man8/vconfig.8.html


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す