MLAGを組んでみよう(実践編)
2019年7月追記:
++++++++++++++++++++++++++++++++
MLNX-OS/Onyx-OSの3.6.8004よりも前のバージョンですと、MLAGとSTP(Spanning Tree Protocol)が共存できず、MLAGを構成する際は、STPを無効化していましたが、3.6.8000以降は、MLAGおよびSTPを共存させることができるようになりました。従いまして、この例では、下記のようなコマンドを実行して、STPを停止しておりましたが、新しいスイッチOSですと、このコマンドの実行は必要ありません。
SW01 [standalone: master] (config) # no spanning-tree
++++++++++++++++++++++++++++++++
MLAG に関しての動作や効果などを前回のブログで紹介させていただきましたが、今回は実践編として、Mellanox の最新スイッチを使用したMLAG構成を組んでみたいと思います。
今回のMLAG構成で使われたスイッチは、SN2010というモデルで、小型ながら、SFP+ 25Gbpsポート18本、QSFP 100Gbpsポートが4本を持ち、冗長電源をサポートしながらハーフラックサイズになっております。
また、管理ポートとしては、152,200 bpsシリアルポートおよび、1Gbps Ethernet mgmt0から、スイッチ内部のセットアップや管理が可能です。
工場出荷時、1Gbps Ethernet管理ポートmgmt0はDHCP接続モードに設定されており、mgmt0に固定IPアドレスをセットするためには、シリアルポートからのアクセスが必要です。
SN2010ポート側外観
- 25Gbps Ethernet SFPポートが18ポート
- 100Gbps Ethernet QSFPポートが4ポート
- 1Gbps Ethernet RJ-45 mgmt0ポート(管理ポート)
- シリアルポート
- USBインターフェイス
- 各種ステータスLED
SN2010電源側外観
- AC電源入力 2本
General start up
さて、セットアップを開始しましょう。全てCLIでセットアップします。
今回の構成は、2台のクラスタサーバを上位リンクに接続するものです。
下記の図を参照ください。
- Server A: 25Gb Ethernet ポート Port 1/18 IPアドレス 168.20.101
- Server B: 100Gbps Ethernet ポート Port 1/20 IPアドレス 168.10.201
- アップリンク: 1Gbps Ethernet ポート Port 1/1 IPアドレス 168.20.100
- IPL(MLAG構成でのスイッチ間接続ポート) Port 1/21とPort 1/22
尚、管理用ポートmgmt0は SW1: 192.168.10.150 SW2: 192.168.10.160
また設定の流れは下記の通りです。
- 基本的セットアップ:
- IPルーティングおよび(M)LAG接続時にLACPを使用できるようにする
- Spanning treeは使用しない
- MLAGの設定を使用可能にする
- IPLポートのQoSサポートを設定する
- 各ポートの基本設定をする
- 個々のPortのInterfaceの速度/MTUを変更する
- MLAGを設定をする
- IPLの設定
- MLAG VIPの設定
- MLAGインターフェイスの設定/有効化
という流れになります。
では、具体的にセットアップの流れを実際に行ってみましょう。
- sw01/sw02 共通
- Mellanox Onyx(旧称:MLNX-OS)のバージョン確認 SW1、SW2共に同じバージョンであることが必要とされます。
sw01とsw02のMellanox OnyxのProduct releaseで表されるバージョンが同じことを確認する - IPルーティング、LACPをイネーブルにする
- Spanning Tree をディズエーブルにする
- MLAGコマンドを実行可能にする
- IPLポートのQoSサポートをセットする
[root@T1 デスクトップ]# ssh admin@192.168.10.150
Mellanox Onyx Switch Management
Password:
Last login: Mon Jan 8 19:02:03 2001
Mellanox Switch
SW01 [standalone: master] > enable
SW01 [standalone: master] # configure terminalSW01 [standalone: master] (config) # show version
Product name: Onyx
Product release: 3.6.6107
Build ID: #1-dev
Build date: 2018-04-25 21:04:32
Target arch: x86_64
Target hw: x86_64
Built by: jenkins@9adc82345cc7
Version summary: X86_64 3.6.6107 2018-04-25 21:04:32 x86_64
Product model: x86onie
Host ID: 506B4BCC4596
System serial num: MT1820X09598
System UUID: 3b9f9c00-5d1e-11e8-8000-506b4b8e5f40
Uptime: 10m 34.630s
CPU load averages: 1.07 / 1.13 / 0.72
Number of CPUs: 4
System memory: 2401 MB used / 5410 MB free / 7811 MB total
Swap: 0 MB used / 0 MB free / 0 MB totalsw01 (config) # show version
[root@T1 デスクトップ]# ssh admin@192.168.10.160
Mellanox Onyx Switch Management
Password:
Last login: Mon Jan 8 19:00:32 2001
Mellanox Switch
sw02 [standalone: master] > enable
sw02 [standalone: master] # configure terminal
sw02 [standalone: master] (config) # show version
Product name: Onyx
Product release: 3.6.6107
Build ID: #1-dev
Build date: 2018-04-25 21:04:32
Target arch: x86_64
Target hw: x86_64
Built by: jenkins@9adc82345cc7
Version summary: X86_64 3.6.6107 2018-04-25 21:04:32 x86_64
Product model: x86onie
Host ID: 506B4BCC450E
System serial num: MT1820X09605
System UUID: 813bc87c-5d4d-11e8-8000-506b4b8e62c0
Uptime: 11m 34.510s
CPU load averages: 1.07 / 1.14 / 0.75
Number of CPUs: 4
System memory: 2411 MB used / 5400 MB free / 7811 MB total
Swap: 0 MB used / 0 MB free / 0 MB total
これらにより、SW01とSW02で稼働しているMellanox Onyx (旧称 MLNX-OS)が 2018年4月25日にビルドされたVersion 3.6.6117で、同じことが分かります。
これ以降、SW01およびSW02が同じ場合は、SW01のみの記述になりますが、SW02も同じ様にセットアップします。
- sw01/sw02 共通 (sw01/sw02ごとに設定する)
SW01 [standalone: master] (config) # lacp
SW01 [standalone: master] (config) # no spanning-tree
SW01 [standalone: master] (config) # ip routing
SW01 [standalone: master] (config) # protocol mlag
SW01 [standalone: master] (config) # dcb priority-flow-control enable force
Interfaceの速度の変更
- sw01/sw02共通 (sw01/sw02ごとに設定する)
- 1/1はアップリンク(設備側)接続用 10Gb
SW01 [standalone: master] (config) # interface ethernet 1/1
SW01 [standalone: master] (config interface ethernet 1/1) # speed 10G force
SW01 [standalone: master] (config interface ethernet 1/1) # exit
- 1/2-1/18はWorkstation接続用25Gbps
SW01 [standalone: master] (config) # interface ethernet 1/2-1/18
SW01 [standalone: master] (config interface ethernet 1/2-1/18) # speed 25G force
SW01 [standalone: master] (config interface ethernet 1/2-1/18) # exit
- 1/19-22はQSFPポート 100Gb
SW01 [standalone: master] (config) # interface ethernet 1/19-1/20
SW01 [standalone: master] (config interface ethernet 1/19-1/20) # speed 100G force
SW01 [standalone: master] (config interface ethernet 1/19-1/20) # exit
なお内容の変更やno speed forceでdefaultにセットされます。
IPL
- port 21およびport 22をIPL portとして冗長化使用、LACPモードでLAG接続
- IPL接続のQoSを設定
- VLAN 4000として他のデータポートと完全分離する
- sw01/sw02 共通 (sw01/sw02ごとに設定する)
SW01 [standalone: master] (config) # interface port-channel 21
SW01 [standalone: master] (config interface port-channel 21) # exit
SW01 [standalone: master] (config) # interface ethernet 1/21 channel-group 21 mode active
SW01 [standalone: master] (config) # interface ethernet 1/22 channel-group 21 mode active
このコマンドは、まず、channel-groupをリセットします
(config) # interface Ethernet <if-nuber>
(config interface ethernet <if-number>) # no cannel-groupでリセットされます
SW01 [standalone: master] (config) # vlan 4000
SW01 [standalone: master] (config vlan 4000) # exit
このコマンドは、(config) # no vlan <vlan-id> でリセットされます。 レンジ使用可
SW01 [standalone: master] (config) # interface port-channel 21 ipl 1
このコマンドは、まずはipl をリセットしてからポートチャンネルをリセットします。
(config interface port-channel <port-id>) # no ipl <ipl-id>
(config) # no interface port-channel <port-id> でリセットされます。
SW01 [standalone: master] (config) # interface port-channel 21 dcb priority-flow-control mode on force
(config)# interface port-channel 21
(config interface port-channel 21) # no dcb priority-flow-control enableでリセットされます
- sw01の設定
SW01 [standalone: master] (config) # interface vlan 4000
SW01 [standalone: master] (config interface vlan 4000) # ip address 10.10.10.1/24
no ip address <ip-address> < netmask > でリセットされます。
SW01 [standalone: master] (config interface vlan 4000) # ipl 1 peer-address 10.10.10.2
SW01 [standalone: master] (config interface vlan 4000) # exit
- sw02の設定
sw02 [standalone: master] (config) # interface vlan 4000
sw02 [standalone: master] (config interface vlan 4000) # ip address 10.10.10.2/24
sw02 [standalone: master] (config interface vlan 4000) # ipl 1 peer-address 10.10.10.1
sw02 [standalone: master] (config interface vlan 4000) # exit
MLAG VIP
- sw01に対するVIP設定
SW01 [standalone: master] (config) # mlag-vip mlag-domain ip 192.168.10.170 /24 force
no mlag-vipでリセットされます。
- sw02に対するVIP設定
sw02 [standalone: master] (config) # mlag-vip mlag-domain
注目: MLAG-VIPをセットすると、コマンドプロンプトがStandaloneから上記でセットしたmlag-domainに変化します。
広域MLAG
- 広域MLAGをイネーブルにする
- sw01/sw02とも共通 (sw01/sw02ごとに設定する)
SW01 [mlag-domain: master] (config) # no mlag shutdown
MLAG インターフェイス
- LACP モードでMLAGインターフェイスをセットする:(Oly DCのポリシーによりLACP Mode)
- VLAN xxxで設定されているためアップリンク(10Gb) のVLAN設定
- sw01/sw02とも共通 (sw01/sw02ごとに設定する)
SW01 [mlag-domain: master] (config) # interface mlag-port-channel 1-20
SW01 [mlag-domain: master] (config interface mlag-port-channel 1-20) # exit
- Up-linkポートのセットアップ
SW01 [mlag-domain: master] (config) # vlan 10
SW01 [mlag-domain: master] (config vlan 10) # exit
SW01 [mlag-domain: master] (config) # interface ethernet 1/1 mlag-channel-group 1 mode active
SW01 [mlag-domain: master] (config) # interface mlag-port-channel 1
SW01 [mlag-domain: master] (config interface mlag-port-channel 1) # switchport access vlan 10
SW01 [mlag-domain: master] (config interface mlag-port-channel 1) # exit
sw01/sw02各スイッチポート1/1-1/20は全てのポートをMLAGの設定に活用可能ですが、今回のセットアップでは、25GbpsのNICが挿入されたサーバー(スイッチポート1/18)を使用します。
- sw01/sw02とも共通 (sw01/sw02ごとに設定する)
- Switch Port 1/18(25Gbps)を設定
SW01 [mlag-domain: master] (config) # interface ethernet 1/18 mlag-channel-group 18 mode active
SW01 [mlag-domain: master] (config) # interface mlag-port-channel 18
SW01 [mlag-domain: master] (config interface mlag-port-channel 18) # switchport access vlan 10
SW01 [mlag-domain: master] (config interface mlag-port-channel 18) # exit
(config) # Interface ethernet <if-number> no mlag-channel-group でmlag-channel-groupがリセットされます。
- mlagインターフェイスをenableにする
- sw01/sw02とも共通 (sw01/sw02ごとに設定する)
SW01 [mlag-domain: master] (config) # interface mlag-port-channel 1-20 no shutdown
リセットは,
Sw01(config) # interface mlag-port-channel <if-number>
sw01(config interface mlang-port-channel <if-number>) # shutdown
とします。
- 下記のコマンドを実行し、sw01/sw02ともポートステータス(Admin)がActiveになっているか確認する。
SW01 [mlag-domain: master] (config) # show mlag
Admin status: Enabled
Operational status: Up
Reload-delay: 30 sec
Keepalive-interval: 1 sec
Upgrade-timeout: 60 min
System-mac: 00:00:5E:00:01:46
MLAG Ports Configuration Summary:
Configured: 3
Disabled: 0
Enabled: 3
MLAG Ports Status Summary:
Inactive: 0
Active-partial: 0
Active-full: 3
MLAG IPLs Summary:
—————————————————————————————————————-
ID Group Vlan Operational Local Peer Up Time Toggle Counter
Port-Channel Interface State IP address IP address
—————————————————————————————————————-
1 Po21 4000 Up 10.10.10.1 10.10.10.2 0 days, 00:36:22 5
上記ステータスによりMLAGは、セットアップが完了して稼働状態に入っていることが分かります。
- ここでは、3portのみのセットアップですので、全てのポートが両スイッチでアクティブで稼働しています。
- IPL も問題無くUPしていることが確認されます。
SW01 [mlag-domain: master] (config) # show mlag-vip
MLAG-VIP:
MLAG group name: mlag-domain
MLAG VIP address: 192.168.10.170/24
Active nodes: 2
————————————————————–
Hostname VIP-State IP Address
————————————————————–
SW01 master 192.168.10.150
sw02 standby 192.168.10.160
show mlag-vip では、各スイッチの状態、およびIPアドレスを示し、VIPアドレスが192.168.10.170 でマスターのアドレスへアクセスします。 上記の例では実際は192.168.10.150の内容が反映されます。 もしSW1がFailすると、SW02がStandbyからMasterに変わり 192.168.10.160の内容が反映されます。
SW01 [mlag-domain: master] (config) # show interfaces mlag-port-channel summary
MLAG Port-Channel Flags: D-Down, U-Up, P-Partial UP, S-suspended by MLAG
Port Flags:
D: Down
P: Up in port-channel (members)
S: Suspend in port-channel (members)
I: Individual
MLAG Port-Channel Summary:
——————————————————————————
Group Type Local Peer
Port-Channel Ports Ports
(D/U/P/S) (D/P/S/I) (D/P/S/I)
——————————————————————————
1 Mpo1(U) LACP Eth1/1(P) Eth1/1(P)
2 Mpo2(D) Unknown N/A
3 Mpo3(D) Unknown N/A
4 Mpo4(D) Unknown N/A
5 Mpo5(D) Unknown N/A
6 Mpo6(D) Unknown N/A
7 Mpo7(D) Unknown N/A
8 Mpo8(D) Unknown N/A
9 Mpo9(D) Unknown N/A
10 Mpo10(D) Unknown N/A
11 Mpo11(D) Unknown N/A
12 Mpo12(D) Unknown N/A
13 Mpo13(D) Unknown N/A
14 Mpo14(D) Unknown N/A
15 Mpo15(D) Unknown N/A
16 Mpo16(D) Unknown N/A
17 Mpo17(D) Unknown N/A
18 Mpo18(U) LACP Eth1/18(P) Eth1/18(P)
19 Mpo19(D) Unknown N/A
20 Mpo20(D) LACP Eth1/20(P) Eth1/20(D)
上記のコマンドの実行により、MLAG構成が確認できました。また相手のスイッチの状況も確認できます。上記ステータスは、ちょうどSW2のEthernet Port 1/20のケーブルをスイッチから抜いたところを示しております。ケーブルを挿しなおすと状況は、Ethernet1/20は(D)->(P)へ変化しました。
以上で、Mellanox スイッチによるMLAG構成のセットアップについて解説致しました。
これは、あくまでもMLAG構成一例でユーザが構成を始めるための一歩であります。
MLAG 構成をする上でいくつか注意点がございます。
- 各スイッチポート(Ethernet)の速度やMTUを変更する際には、一旦MLAG構成を解除していただく必要があります。 (MLAG が構成された後のポート速度やMTUを変えることは出来ません。)
- LAG接続するときは、Active-Active構成であることを確認してください。論理リンクアップしている場合、スタンバイポートであってもスイッチポートからくるARP Reqestに対しては、必ず応答するようにしてください。もし、Arp Replayが返されないと、SW1-2ともに同期していることを前提としてMLAG構成になっていますので、SW1-2ともにARPにより解決されないIPアドレスはSW1, 2ともに存在しないことになります。
- 下記は、configurationを変えたときに最後に必ず実行してください。
sw01 (config) # configuration write