はじめに
このドキュメントでは、Catalyst 9000スイッチでのMACフラッピング通知を理解するためのキーポイントについて説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- CatalystスイッチでのMACアドレスラーニング
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- C9200
- C9300
- C9500
- C9400
- C9600
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
関連製品
このドキュメントは、次のバージョンのハードウェアとソフトウェアにも使用できます。
- Cisco IOS® XE 16.xを搭載したCatalyst 3650/3850シリーズスイッチ
背景説明
Catalyst 9000スイッチは、ポートで受信されたパケットの送信元MACアドレスを学習します。ポートがアクセスとして設定されている場合、MACアドレスは設定されているVLANで学習されます。ポートがトランクとして設定されている場合、MACアドレスはパケットのDot1qタグに基づいて学習されます。
注:MACアドレスが学習できるのは、VLANごとに同時に1つのポートだけです。複数のポート上の同じVLANで同じMACアドレスを学習することはできません。
MACフラップ通知とは
MACフラッピング通知は、同じVLAN内の同じ送信元MACアドレスを持つパケットを2つ以上のポートから受信したときにスイッチによって生成されるsyslogメッセージです。
正常な動作
図No.1に示すように、ホストAからスイッチにパケットを送信する際に、送信元MACアドレスとしてaaaaをvlan 10に設定しています。スイッチはMACアドレステーブル内のこの情報を更新し、トラフィックは中断することなく流れます。
イメージNo.1
予期しないシナリオ
図2では、ホストAとホストBが、同じVLAN内で同じ送信元MACアドレスを持つパケットをスイッチに送信しています。
イメージNo.2
複数のポート上の同じVLANで同じMACを学習することは許可されていないため、syslogが生成され、発生するイベントのシーケンスが存在します。
- スイッチは、MACアドレステーブルの前のポートからMACアドレスを削除します。
- これで、MACアドレスはパケットが最後に受信されたポートで学習されます。
- スイッチが両方のポートからのトラフィックを受信し続ける限り、これらのイベントは繰り返されます。
%SW_MATM-4-MACFLAP_NOTIF: Host aaaa.aaaa.aaaa in vlan 10 is flapping between port Gi1/0/1 and port Gi1/0/2
MACアドレスがあるポートから別のポートに変更されるたびに、トラフィックが中断されます。MACアドレスがポートGi1/0/2で学習されると、ホストA宛てのトラフィックはこのポートで転送され、その逆も行われます。その結果、パケットが失われます。
レイヤ2ループ
図3のトポロジを見ると、ホストAがネットワークにブロードキャストパケットを送信していると推測できます。通常の運用では、冗長リンクがブロックされているので、ブロードキャストが送信されても、送信元スイッチでパケットが受信されないので、MACアドレステーブルが変更されず、トラフィックは問題なく流れます。
イメージNo.3
イメージ4のトポロジを考慮すると、ネットワークにループが存在します。ここで、ホストAがブロードキャストパケットをネットワークに送信すると、スイッチの別のポートで同じパケットを受信し、MACフラッピング通知がトリガーされます。前のシナリオで説明したように、これによりトラフィックフローに中断が発生します。
イメージNo.4
注:スイッチでMACフラッピングをトリガーできるが、影響を与えないワイヤレスローミングなどの機能があります。ただし、MACフラッピングは、レイヤ2ループなどの大きな問題の症状である可能性があります。