キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
674
閲覧回数
0
いいね!
0
コメント
takasano
Cisco Employee
Cisco Employee

はじめに

このドキュメントでは、Cisco Nexus VXLAN EVPN での VXLAN OAM の簡単な解説と基本的な使用方法を解説します。
本稿は「Cisco Nexus シリーズ VXLAN EVPN VXLAN OAM Part.2/3」の続きとなっています。
Part.1, Part.2 をご覧になっていない方は先にそちらをご覧ください。

 

使用するトポロジー

トポロジー図.png
本稿では上記のような 2 台の Leaf が 2 台の Spine に繋がっている構成を考えます。
Leaf01 から Leaf02 に VXLAN パケットを転送するには 2 台ある Spine のうちのどちらかを通過することになります。

 

NGOAM Profile

NGOAM Profile では経路を見る具体的なフローを指定することが出来ます。
NGOAM Profile を指定するには下記のコマンドと Profile 番号 (1~1023) を入力します。
下記では Profile 番号は X にしています。

switch(config)# ngoam profile X

ここでは送信元 IP アドレスが 192.168.110.1、宛先 IP アドレスが 192.168.120.1、宛先ポート番号が 80 番、送信元ポート番号が 10000 番、プロトコル番号が 6 番 (これは TCP の意味) の場合の例を下記に示します。

Leaf01(config)# ngoam profile 1
Leaf01(config-ng-oam-profile)# flow forward
Leaf01(config-ng-oam-profile-flow)# ip source 192.168.110.1
Leaf01(config-ng-oam-profile-flow)# ip destination 192.168.120.1
Leaf01(config-ng-oam-profile-flow)# port source 10000
Leaf01(config-ng-oam-profile-flow)# port destination 80
Leaf01(config-ng-oam-profile-flow)# protocol 6

このパケットが具体的にどのような経路を取るかは "pathtrace nve" コマンドで下記のようにして見ることが出来ます。
下記では 2 つある Spine の Spine01 を通過して転送されていることが分かります。

Leaf01# pathtrace nve ip unknown vrf vxlan-11000 profile 1 verbose

Path trace Request to peer ip 22.22.22.22 source ip 11.11.11.11
Sender handle: 18

Hop   Code   ReplyIP   IngressI/f  EgressI/f   State   Delay
===============================================================
  1 !Reply from 192.168.10.1, (Spine01) Eth1/51  Eth1/52  UP / UP  0
  2 !Reply from 22.22.22.22, (Leaf02) Eth1/55  Vlan200  UP / UP  0

 

ループ検知

ここでは VXLAN OAM のループ検知について説明します。
VXLAN OAM ではループを検知するために一定時間毎 (Default では 300 秒毎) に loop-detection probe と言われるパケットをポートから送信します。
そのパケットがループしていることを検出すると、そのポートを Block してループを排除します。
この機能を利用する場合はループが発生し得る全てのスイッチで有効化することが推奨されます。
"feature ngoam" で VXLAN OAM が有効になっていれば、下記のコマンドでループ検知を有効化及び無効化できます。

switch(config)# [no] ngoam loop-detection

本稿ではこの機能を利用するために Leaf01 と Leaf02 で下記のコマンドを実行して有効化しました。

Leaf01(config)# ngoam loop-detection
Leaf02(config)# ngoam loop-detection

次に下記のように Leaf01 と Leaf02 の Ethernet 1/1 を同一のセグメントにしてループするリンクを配線しました。

ループ図.png

ここで下記を投入して、Leaf01 と Leaf02 の Ethernet 1/1 を有効化し、ループを作ります。

Leaf01, Leaf02:

interface Ethernet1/1
  switchport
  switchport access vlan 100
  no shutdown

ここで "show ngoam loop-detection status" コマンドで Block されているポートを確認します。

Leaf01# show ngoam loop-detection status
Leaf01#

Leaf02# show ngoam loop-detection status

VlanId     Port       Status       NumLoops      DetectionTime             ClearedTime
===================================================================================================
100        Eth1/1     BLOCKED      2             Sun Feb 21 06:04:38 2021  Sun Feb 21 06:04:37 2021

すると上記のようにループを検知したポートが Block されています。
今回はループを Leaf02 の方が早く検知して Block したため、Leaf02 側で Block されていることが分かります。
該当のポートを "show interface ethernet 1/1 brief" コマンドで確認すると次のようになっています。

Leaf01# show interface ethernet 1/1 brief

--------------------------------------------------------------------------------
Ethernet        VLAN    Type Mode   Status  Reason                 Speed     Port
Interface                                                                    Ch #
--------------------------------------------------------------------------------
Eth1/1          100     eth  access down    Link not connected       auto(D) --

Leaf02# show interface ethernet 1/1 brief

--------------------------------------------------------------------------------
Ethernet        VLAN    Type Mode   Status  Reason                 Speed     Port
Interface                                                                    Ch #
--------------------------------------------------------------------------------
Eth1/1          100     eth  access down    none                     auto(D) --

 

"show ngoam loop-detection status" コマンドでは BLOCKED になっているポートのみが表示されますが、それ以外のFORWARDING になっているポートも表示したい場合は "history" オプションをつけることで表示できます。
ここでは Leaf02 側のみでループが検知されているため、Leaf01 では FORWARDING のままです。

Leaf01# show ngoam loop-detection status history

VlanId     Port       Status       NumLoops      DetectionTime             ClearedTime
===================================================================================================
100        Eth1/1     FORWARDING   1             Sun Feb 21 06:04:19 2021  Sun Feb 21 06:05:05 2021

Leaf02# show ngoam loop-detection status history

VlanId     Port       Status       NumLoops      DetectionTime             ClearedTime
===================================================================================================
100        Eth1/1     BLOCKED      2             Sun Feb 21 06:04:38 2021  Sun Feb 21 06:04:37 2021

また、ループ検知機能の状態の概要は "show ngoam loop-detection summary" コマンドで確認できます。

Leaf01# show ngoam loop-detection summary 
Loop detection:enabled
Periodic probe interval: 300
Port recovery interval: 600
Number of vlans: 0
Number of ports: 0
Number of loops: 0
Number of ports blocked: 0
Number of vlans disabled: 0
Number of ports disabled: 0
Total number of probes sent: 6
Total number of probes received: 4
Next probe window start: Sun Feb 21 06:17:43 2021 (34 seconds)
Next recovery window start: Sun Feb 21 06:18:42 2021 (93 seconds)

Leaf02# show ngoam loop-detection summary 
Loop detection:enabled
Periodic probe interval: 300
Port recovery interval: 600
Number of vlans: 1
Number of ports: 1
Number of loops: 1
Number of ports blocked: 1
Number of vlans disabled: 0
Number of ports disabled: 0
Total number of probes sent: 11
Total number of probes received: 4
Next probe window start: Sun Feb 21 06:16:48 2021 (7 seconds)
Next recovery window start: Sun Feb 21 06:26:27 2021 (586 seconds)

"ngoam loop-detection" コマンド実行後の "config-ng-oam-loop-detection" モードで Probe 送出の時間間隔の変更や BLOCKED 状態からの自動回復するまでの時間の変更や本機能を有効化しない VLAN やポートの指定が出来ます。

Probe 送出の時間間隔の変更は "periodic-probe-interval" コマンドで有効化及び無効化できます。
なお、設定可能は送出間隔は 60 秒から 3600 秒です。
下記では送出間隔を X 秒にしています。

switch(config-ng-oam-loop-detection)# [no] periodic-probe-interval X

下記では 60 秒に変更し、その変更を "show ngoam loop-detection summary" コマンドで確認しました。

Leaf01(config-ng-oam-loop-detection)# periodic-probe-interval 60

Leaf01# show ngoam loop-detection summary
Loop detection:enabled
Periodic probe interval: 60
Port recovery interval: 600
Number of vlans: 0
Number of ports: 0
Number of loops: 0
Number of ports blocked: 0
Number of vlans disabled: 0
Number of ports disabled: 0
Total number of probes sent: 11
Total number of probes received: 5
Next probe window start: Sun Feb 21 06:40:03 2021 (50 seconds)
Next recovery window start: Sun Feb 21 06:56:27 2021 (1034 seconds)

 

BLOCKED 状態からの自動回復の時間 (Default で 600 秒) の変更は"config-ng-oam-loop-detection" モードで "port-recovery-interval" コマンドで変更できます。
 なお、設定可能は自動回復時間は 300 秒から 3600 秒です。
下記では送出間隔を X 秒にしています。

switch(config-ng-oam-loop-detection)# [no] port-recovery-interval X

下記では 300 秒に変更し、その変更を "show ngoam loop-detection summary" コマンドで確認しました。

Leaf01(config-ng-oam-loop-detection)# port-recovery-interval 300

Leaf01# show ngoam loop-detection summary
Loop detection:enabled
Periodic probe interval: 300
Port recovery interval: 300
Number of vlans: 1
Number of ports: 1
Number of loops: 1
Number of ports blocked: 1
Number of vlans disabled: 0
Number of ports disabled: 0
Total number of probes sent: 16
Total number of probes received: 7
Next probe window start: Sun Feb 21 06:50:54 2021 (318 seconds)
Next recovery window start: Sun Feb 21 06:52:54 2021 (438 seconds)

 

ループ検知機能を有効化しない VLAN やポートの指定は"config-ng-oam-loop-detection" モードで "disable" コマンドで変更できます。

switch(config-ng-oam-loop-detection)# [no] disable {vlan vlan-range} [port port-range]

下記では Leaf01 の VLAN 100 をループ検知から除外します。

Leaf01(config-ng-oam-loop-detection)# disable vlan 100

また、下記ではより詳細に VLAN 100 の Ethernet 1/1 をループ検知から除外します。

Leaf01(config-ng-oam-loop-detection)# disable vlan 100 port ethernet 1/1


特定の VLAN のポートから 手動で Probe を送出することや BLOCKED 状態にあるポートを手動で回復することも出来ます。
特定の VLAN のポートからの Probe 送出は "ngoam loop-detection probe" コマンドで Probe を送出出来ます。

switch# ngoam loop-detection probe {vlan <vlan-range>}[port <port-range>]

下記では Leaf01 の VLAN 100 の Ethernet 1/1 から Probe を送出させます。

Leaf01# ngoam loop-detection probe vlan 100 port ethernet 1/1

 

BLOCKED 状態にあるポートの手動での回復は "ngoam loop-detection bringup" コマンドで行うことが出来ます。

switch# ngoam loop-detection bringup {vlan <vlan-range>}[port <port-range>]

下記では Leaf01 の VLAN 100 の Ethernet 1/1 を BLOCKED 状態から回復させます。

Leaf01# ngoam loop-detection bringup vlan 100 port ethernet 1/1

以上で本稿は終了になります。

 

関連コンテンツ

Nexus スイッチ (NX-OS) : 設定例
Cisco Nexus シリーズ : VXLAN EVPN 基本設定
Cisco Nexus シリーズ : VXLAN EVPN L3VNI 基本設定
Cisco Nexus シリーズ VXLAN EVPN VXLAN OAM Part.1/3
Cisco Nexus シリーズ VXLAN EVPN VXLAN OAM Part.2/3
Configuring VXLAN OAM

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします