技術コラム

製品技術
Mellanox

CumulusでVLAN間の通信!

CumulusでVLAN間の通信!

1 VLAN間通信(Routing)

VLANを複数作成して、VLAN間で通信(Routing)をしてみよう!

Labに以下の構成を作成しました。
スイッチの中に3つのVLANを作成して、VLAN同士で通信できるようにします。弊社の取り扱っているストレージエミュレータであるSANBLazeVirtualUNシステムをiSCSIのターゲットにして、2台のWindownサーバの1台(HP)からボリュームをマウントして共有します。もう1台のWindowsサーバ(FJ)からその共有したボリュームをマウントして、IO(Read/Write)を実行しました。3台の装置はおのおのVLAN10、20、100(別セグメント)に所属しております。上記のように通信できることでVLAN間でRoutingして通信ができていることになります。
※ついでに、帯域を確保するため、Windowsサーバからは2本をTeamingしました。

 

では、まずWindowsから接続されているTeamingのポートをLAG設定します。

一般的なスイッチではLAG(Link Aggregation Group)といいますが、CumulusではBondingと呼ぶんですよ!(Linuxやん!)
WindowsではTeaming、LinuxではBonding、一般的なスイッチではLAG・・・ややこしい!

Cumulus がサポートするLACPのモードは、 IEEE 802.3ad — LACP — Linux Mode 4とBalance-XOR — Static Bonding — Linux Mode 2になります。今回は、Mode4でいきます!

1.1 LAGの設定
/etc/networki/interfacesにBondingの設定を追記します。

auto Cumulus
iface BOND0
bond-slaves swp16 swp17
bridge-vids 20   VLAN20に設定
bond-mode 802.3ad
bond-lacp-rate fast
bond-lacp-bypass-allow yes
bond-xmit-hash-policy layer3+4

auto Cumulus2
iface BOND0
bond-slaves swp1 swp2
bridge-vids 10   ←VLAN10に設定
bond-mode 802.3ad
bond-lacp-rate fast
bond-lacp-bypass-allow yes
bond-xmit-hash-policy layer3+4

ついでに、iSCSIターゲット(SANBLaze)のポートも設定!
auto swp7
iface swp7
link-speed 25000
bridge-vids 100  ←VLAN100に設定

1.2 BridgeへBondGroup(LAG)の追加
前回説明したようにCumulusではBodingの設定を記載しただけでは、通信はできません。作ったBondGroupをBrigdeへ登録する必要があります。
/etc/networki/interfacesのBridge部分に追記します

auto bridge
iface bridge
bridge-ports Cumulus Cumulus2 swp7  ←SANBLazeのポートもお忘れなく!
bridge-pvid 10
bridge-vids 10 20 100
bridge-vlan-aware yes
bridge-stp on

1.3 VLANへIPアドレスを設定

各VLANにIPアドレスを設定して接続している機器のデフォルトゲートウェイにしました。

auto vlan10
iface vlan10
address 192.168.110.1/24
vlan-id 10
vlan-raw-device bridge

auto vlan20
iface vlan20
address 192.168.120.1/24
vlan-id 20
vlan-raw-device bridge

auto vlan100
iface vlan100
address 192.168.100.1/24
vlan-id 100
vlan-raw-device bridge

設定が終了したら
#ifreload -a で設定反映

確認は、
#net show int bonds

#net show int bondmems

#net show int

スイッチポート(swp)やBondGroupがアップになっていなかったら以下のコマンド!
#ifup swp1
#ifup Cumulus
#ifreload -a

で起動する。

これで以下のように各機器の通信ができます(icmp)で確認

 

VLAN間のRoutingは、VLAN-Tagを付加させて(PortはTrunk)同じBridgeに複数のVLANを設定して各VLANにIPアドレスを設定する。

より高度なL3ルーティングをする場合には、オープンソースである“FRR”を使う必要があります。
使用できるダイナミックルーティングプロトコルは、
BGP、OSPFになります。

FRRのVersion確認
#dpkg -l frr
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=======================-================-================-===================================================
ii frr 4.0+cl3u16 amd64 BGP/OSPF/RIP/RIPng/ISIS/PIM/LDP routing daemon fork

FRRの有効化
/etc/frr/daemons を編集する
#/etc/frr# vi daemons

zebra=no → yes へ変更
bgpd=no   BGPを使う場合 yes
ospfd=no   OSPFを使う場合 yes
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
vrrpd=no

#systemctl restart frr.service ルーティングサービスの再起動

#systemctl reload frr.service  /etc/frr/frr.confの変更等の適用

これでFrr(Routing機能)が有効になります。
高度なRoutingに関しては今後の検証しましたら記事にできればと思います。次回は、スイッチの冗長化(MLAG)について説明します。