スイッチを通る一対一の通信なのに、関係のないポートにも同じフレームが見える。そんなときに確認したいのがUnknown Unicastです。
宛先MACは特定の一台を指していても、スイッチがそのMACの接続ポートを知らないことがあります。通常のL2転送では、同じVLANへフレームを複製して届けようとします。この動作がフラッディングです。正常な初回動作と、長く続く問題を分けて考えていきましょう。
Unknownは、スイッチが宛先の場所を知らない状態
送信者は相手のMACを指定しています。それでもスイッチのMAC表にその宛先がなければ、出すポートを一つに絞れません。Unknownとは、IPや端末名が不明という意味ではなく、そのスイッチが宛先MACを未学習という意味です。
スイッチは受信フレームの送信元MACから場所を学び、宛先MACで転送先を探します。この二つは別の処理です。
MAC: AA:AA
宛先BB:BBを未学習
対象は原則として、フレームを受信したポートを除く同一VLAN内の転送可能ポートです。
| VLAN | MACアドレス | 学習方法 | ポート |
|---|---|---|---|
| 10 | aaaa.aaaa.aaaa | DYNAMIC | Gi1/0/1 |
| 10 | bbbb.bbbb.bbbb | DYNAMIC | Gi1/0/2 |
| 20 | cccc.cccc.cccc | DYNAMIC | Gi1/0/24 |
未学習の宛先へは、通常、受信ポート以外の同じVLANで転送可能なポートへ複製します。返信を受けると、その送信元MACを学べるため、次から相手のポートへ絞れます。
ブロードキャストとは、宛先の意味が違う
ブロードキャストは、最初から同じL2範囲全体を宛先にします。Unknown Unicastは、特定のMAC宛ですが、スイッチの学習状態によって広く転送されます。見た目のコピー数だけで分類しないようにします。
端末接続直後や経路の切替後に、短時間発生することはあります。一フレーム見つけただけで障害と判断する必要はありません。
| 種類 | 宛先MAC | スイッチの基本動作 | 代表例 |
|---|---|---|---|
| Known Unicast | 特定MAC、テーブルに存在 | 学習済みポートだけへ転送 | 通常のTCP/UDP通信 |
| Unknown Unicast | 特定MAC、テーブルに不在 | 同一VLANへフラッディング | aging直後、非対称通信 |
| Broadcast | ff:ff:ff:ff:ff:ff | 同一VLANへフラッディング | ARP Request、DHCP Discover |
| Multicast | マルチキャストMAC | 制御機能の有無で転送範囲が変わる | 映像配信、ルーティング制御 |
| 観点 | 正常範囲になりやすい | 要調査 |
|---|---|---|
| 発生時間 | 端末起動直後や経路切替直後の短時間 | 数分以上継続、周期的に大量発生 |
| 通信量 | 少数フレーム | リンク帯域やCPUへ影響する量 |
| 宛先 | 接続直後の端末 | 同じMAC宛が継続して未知 |
| 影響 | 利用者影響なし | drop、遅延、意図しない受信、監視アラート |
| MAC学習 | 応答後すぐ学習 | 学習しない、頻繁に消える・移動する |
調査したいのは、大量に続く、一定周期で増える、帯域や端末に影響が出るといった状態です。正常時と比べて、量・継続時間・きっかけを記録します。
MAC Flooding攻撃は、偽の送信元MACを大量に学習させるなどして表を圧迫する原因側の話です。Unknown Unicastという転送動作と、すぐに同じ意味で扱わないでください。
ARPが残っていても、MAC表は消えることがある
ルーターのARP表にはIPとMACが残り、スイッチのMAC表だけが消える場合があります。動的MACは一定時間、そのMACを送信元とするフレームを受け取らないと削除されるためです。これをエージングと呼びます。
ルーターは知っているMACへ送り続けますが、スイッチは場所を知らないのでフラッディングします。保持時間が別々の表なので、矛盾した表示ではありません。
ARP: IP→BB:BBあり
CAM: BB:BBなし
フラッディング
- ゲートウェイのARP表には宛先IP 172.28.31.50 → MAC bbbb.bbbb.bbbb が残っている。
- L2スイッチのVLAN 10のMAC表では bbbb.bbbb.bbbb がagingで消えている。
- ゲートウェイからのユニキャストフレームは宛先MACを指定しているが、スイッチは出力ポートを特定できず、受信ポート以外の同一VLANへ複製する。
- 宛先端末がフレームを送れば、その送信元MACからポートを再学習し、通常のユニキャスト転送へ戻る。
受信中心の端末や、往路と復路が別のスイッチを通る構成では、送信元として観測できないスイッチが生まれることもあります。
ほかに、STPのトポロジ変更、MAC移動、表の容量、VLANやLAGの不整合も原因候補です。保持時間の調整だけで済ませず、学習しないのか、学んだあとで消えるのかを分けて調べます。
宛先MAC・VLAN・時刻をそろえて確認する
最初に、どのVLANのどの宛先MACが増えているかを絞ります。そのMACをshow mac address-tableで検索し、事象発生中に何度か取得します。場所が変わるのか、登録がないのかを見ます。
対象IPはARP表からMACと対応付けます。同じMACでも別VLANを検索すると別の結果になるため、VLANと取得装置をそろえます。
- 特定VLANだけか、複数VLANか
- 特定時間帯か、常時か
- どのポートで受信量が増えているか
- 構成変更、端末増設、回線切替、機器再起動があったか
SW01# show mac address-table dynamic
SW01# show mac address-table vlan 10
SW01# show mac address-table address bbbb.bbbb.bbbb
SW01# show mac address-table interface Gi1/0/24
SW01# show mac address-table count
SW01# show mac address-table aging-time
GW01# show ip arp 172.28.31.50
GW01# show ip arp | include bbbb.bbbb.bbbb
Internet 172.28.31.50 72 bbbb.bbbb.bbbb ARPA Vlan10
SW01# show spanning-tree vlan 10 detail
SW01# show interfaces status
SW01# show interfaces counters errors
SW01# show etherchannel summary
SW01# show logging | include MACFLAP|SPANTREE|UPDOWN|EC
MACが短時間に別ポートへ移るなら、ログ、STP変更、ポートのup/down、LAGの参加状態、端末側の冗長化を確認します。仮想マシンの移動など、正常な変化との区別も必要です。
表を先にclearすると、元の状態が消え、未学習の転送も一時的に増えます。調査では、現在の表とログを残すところから始めてください。
Wiresharkだけでは、未学習かどうかは決まらない
キャプチャに表示されたユニキャストの宛先MACだけでは、その時点のスイッチが学習済みかどうかは分かりません。スイッチのMAC表と、どのポートへコピーが出たかを合わせて判断します。
SPANで必要な場所を取得し、対象の宛先MACへ絞ると、関係のないポートにも同じフレームが出ているかを調べられます。
- スイッチで問題VLANと宛先MACを特定する
- SPANでアップリンクまたは疑わしいポートをミラーする
- 特定の宛先MACへ絞ってキャプチャする
- 本来関係ない複数のアクセスポート側でも同じフレームが見えるか確認する
- 同時刻のMACアドレステーブルと照合する
# 特定の宛先MACへ絞る
eth.dst == bb:bb:bb:bb:bb:bb
# 特定の送信元または宛先MACを見る
eth.addr == bb:bb:bb:bb:bb:bb
# ブロードキャストを除外する
eth.dst != ff:ff:ff:ff:ff:ff
# 特定VLANに絞る(タグが取得できる場合)
vlan.id == 10
SPAN自身がコピーを作るので、取得条件も記録します。監視したポートと方向が不明なキャプチャでは、本来の転送と監視のコピーを区別しにくくなります。
確認結果には「未学習だったMAC表」と「同じ時刻に観測した転送」を対応させて残すと、判断の理由を説明できます。
抑制設定を入れる前に、学習できない理由を直す
switchport block unicastなどは、対応する機種で未知ユニキャストの出力を止める設定です。通信量を下げられても、MACを学習できない原因が直ったとは言えません。
対象ポートの先に本来の受信者がいれば、未学習中の必要なフレームまで落とす可能性があります。まず配線、VLAN、経路、タイマー、端末の送信状況を調べます。
| 原因 | 主な対策 | 注意点 |
|---|---|---|
| timer差・静かな端末 | ARP/MAC aging、端末動作、定期通信を設計として見直す | 全体変更前に影響を検証 |
| 非対称通信 | L2経路、LAG、FWクラスタ、NICチーミングを修正 | 往路・復路を両方確認 |
| STP変更 | flappingポート、ループ、PortFast/BPDU Guardを見直す | 根本の不安定要因を除去 |
| MAC flapping | 誤配線、二重接続、LAG不整合を修正 | ログのポート間を追跡 |
| 容量不足 | L2ドメイン縮小、不要MACの原因除去、機器増強 | 攻撃やループの有無も確認 |
| 過大トラフィック | 根本修正後にレート制御やブロックを検討 | 正常な未知フレームも対象になり得る |
interface GigabitEthernet1/0/10
description USER-PORT
switchport mode access
switchport access vlan 10
switchport block unicast
storm-controlは、機種ごとの計測対象と閾値超過時の動作を確認します。同じコマンド名でも、数える通信や停止動作が一律とは限りません。
フラッディングで別ポートへ届くことと、アプリが受信することも別です。ただし観測可能な端末があれば情報を見られる可能性はあるため、端末認証やネットワーク分離、通信の暗号化も合わせて考えます。
「なぜ未学習なのか」を説明できる状態へ
Unknown Unicastは、特定MAC宛の通信を、スイッチが一つのポートへ絞れない状態です。初回や切替直後の短い発生と、継続する大量の発生を分けます。
ARP要求は通常ブロードキャストなので、Unknown Unicastではありません。また、L2のフラッディングがそのままルーターを越えるわけでもありません。
VLAN、宛先MAC、表の変化、端末からの送信をそろえると、原因へ近づけます。設定で止められるかより先に、なぜ学べないのか、なぜ消えるのかを確かめてみてください。
