はじめに
そう言えばインフラ齧ってるのにCisco機器触ったことねぇな…と思ったので
- いい感じに古過ぎない
- デカすぎない
- ファンレス or 静音
- 8ポートじゃ少ないのでそれ以上欲しい
- マネージドL2スイッチならなんぼあっても良いですからね
という条件で絞った結果、WS-C2960L-16TS-LLをぶんどってきました。
目標
OpenWrtをルーターとし、Cisco CatalystとLACPを張って冗長性を持たせつつVLANを通したい
設定
Cisco Catalyst側
適当に初期設定を済ませた後という体です。
今回は15/16ポートでLACPを張ります。
enable
conf t
interface range GigabitEthernet0/15-16
channel-protocol lacp
channel-group 1 mode active
exit
interface port-channel1
switchport trunk allowed vlan <許可したいVLANリスト>
switchport mode trunk
end
save run start
OpenWrt側
事前にkmod-bonding、mii-toolをインストールして再起動しておく必要があります
-
ネットワーク→インターフェイス、デバイスタブを開き、デバイス設定を追加する - デバイスタイプを
Bonding/Aggregation deviceに選択 - デバイス名はお好みでどうぞ(bond0など)
- Aggregation portsはLACPで使用したいポートを選択
- ボンディングポリシーは
LACP - 802.3adを選択 - デバイスの詳細オプションを開く
- Slave selection hash policyは
レイヤー2+3 - Monitor Intervalは
100を明示的に指定 - 保存後、作成されたボンディングデバイスをブリッジに追加
Monitor Intervalを空欄にすると、LANケーブルを抜線後再接続してもLACPが動作していないとCatalystが判断し、接続が再開できなくなることを確認しています。プレースホルダーで100が表示されていますが、必ず明示的に指定して下さい。
結果
好きなVLANを通しつつ、LACPで冗長化することが出来ました。
最初、Monitor Intervalを空欄のまま進めていたら、障害シナリオ検証で切断して再接続した際に、Catalyst側がlacp currently not enabled on the remote portとログを出して接続できなくなりました。
OpenWrt側はデバイスの再起動やLuciの再設定でインターフェイスがリロードされると再接続出来ましたが、手動抜線による切断及び再接続では接続できなくなったため、少々手こずりました。皆さんは必ずMonitor Intervalを設定するようにしましょう。