Unknown Unicast(未知のユニキャスト)とは、宛先MACアドレスがスイッチのMACアドレステーブルに存在しないユニキャストフレームです。スイッチは転送先ポートを特定できないため、受信ポートを除く同一VLAN内のポートへフラッディングします。
この動作自体は異常ではありません。端末を接続した直後やMACアドレスがエージアウトした直後には、一時的に発生します。問題なのは、Unknown Unicastが継続して大量発生し、帯域圧迫、意図しない端末へのフレーム転送、CPU負荷などを引き起こす場合です。
この記事では、元インフラエンジニアの筆者が、スイッチの学習動作から、発生原因、Ciscoでの確認コマンド、パケットキャプチャ、対策まで構成図と実例で解説します。
この記事はネットワーク分野の個別テーマです。学習・キャリアの全体像から確認したい場合はこちら
Unknown Unicastとは
ユニキャストは、1台の宛先へ送る通信です。Ethernetフレームの宛先MACアドレスは特定の1台を示しています。しかし、L2スイッチがそのMACアドレスをどのポートで学習したか分からないと、1つのポートへ絞って転送できません。この状態をUnknown Unicastと呼びます。
MAC: AA:AA
宛先BB:BBを未学習
対象は原則として、フレームを受信したポートを除く同一VLAN内の転送可能ポートです。
スイッチは「宛先が不明だから破棄」するのではなく、「どこかに宛先がいる可能性があるため同一VLANへ広げる」という動作をします。宛先端末が応答すると、その応答フレームの送信元MACアドレスを学習し、以後は該当ポートだけへ転送できます。
スイッチがフラッディングする仕組み
L2スイッチの基本動作は、学習、検索、転送の3段階です。ここを理解すると、Unknown Unicastの原因を推測しやすくなります。
MACアドレスは送信元から学習する
スイッチは受信フレームの送信元MACアドレスと受信ポート、VLANを関連付けて学習します。ARPテーブルを見て宛先MACの場所を学習するわけではありません。
| 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 |
MACアドレスはVLANごとに管理されます。同じMACが別VLANに存在しても、検索は受信フレームのVLAN内で行われます。Unknown Unicastのフラッディング範囲も、通常は同じブロードキャストドメイン内です。
宛先MACが学習済みならユニキャスト転送する
宛先MACがテーブルにあれば、スイッチは対応ポートだけへフレームを転送します。これが通常のknown unicast forwardingです。不要なポートへコピーしないため、ハブより効率よく通信できます。
宛先MACがなければフラッディングする
テーブルに一致するエントリがなければ、受信ポートを除く同一VLANのポートへコピーします。trunkポートについても、そのVLANが許可され、STP上で転送可能なら対象になります。
Unknown UnicastとBroadcast・Multicastの違い
| 種類 | 宛先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 | 制御機能の有無で転送範囲が変わる | 映像配信、ルーティング制御 |
Unknown Unicastは、送信者が特定の宛先へ送っている点でブロードキャストとは異なります。結果として複数ポートへコピーされるため、パケットキャプチャだけを見ると似て見えることがあります。
Unknown Unicast FloodingとMAC Flooding攻撃の違い
Unknown Unicast Floodingはスイッチの転送動作です。一方、MAC Flooding攻撃は、大量の偽送信元MACを学習させてMACアドレステーブルを圧迫し、結果的にUnknown Unicastを増やそうとする攻撃手法です。原因と現象を分けて考えてください。
正常なUnknown Unicastと問題になるUnknown Unicast
Unknown Unicastを1フレーム見つけただけでは障害と判断できません。ネットワークの通常動作として短時間発生することがあります。
| 観点 | 正常範囲になりやすい | 要調査 |
|---|---|---|
| 発生時間 | 端末起動直後や経路切替直後の短時間 | 数分以上継続、周期的に大量発生 |
| 通信量 | 少数フレーム | リンク帯域やCPUへ影響する量 |
| 宛先 | 接続直後の端末 | 同じMAC宛が継続して未知 |
| 影響 | 利用者影響なし | drop、遅延、意図しない受信、監視アラート |
| MAC学習 | 応答後すぐ学習 | 学習しない、頻繁に消える・移動する |
正常と異常の境目は、量、継続時間、影響、発生契機です。平常時のカウンターやパケット量を基準として持っておくと判断しやすくなります。
Unknown Unicastが増える主な原因
1. MACアドレスのaging
動的MACエントリは、一定時間フレームを送信しないと削除されます。Cisco Catalystの一般的な初期値では300秒のことが多いものの、機種や設定で異なります。削除後、宛先端末が再びフレームを送って学習されるまで、その端末宛はUnknown Unicastになります。
2. ARPテーブルとMAC agingの時間差
ルーターが宛先IPとMACの対応をARPテーブルに保持していても、L2スイッチ側のMACエントリが先に消えることがあります。ルーターは既知のMACへユニキャストフレームを送りますが、スイッチには転送先ポートがなく、フラッディングします。
ARP: IP→BB:BBあり
CAM: BB:BBなし
フラッディング
特に受信中心で自分からほとんど送信しない端末では、スイッチが送信元MACを再学習する機会が少なく、現象が続きやすくなります。
3. 非対称通信
往路と復路が異なるL2経路を通ると、あるスイッチは宛先端末を送信元として観測できず、MACを学習できません。LAGの設定不整合、冗長構成、ファイアウォールクラスタ、サーバーのNICチーミングなどが関係します。
4. STPのトポロジ変更
リンクのUp/DownやSTPトポロジ変更により、MACエントリの削除やaging短縮が発生すると、一時的にUnknown Unicastが増えます。頻繁に発生するなら、端末ポートのflapping、PortFast設定、ループ、障害リンクを確認します。
5. MACアドレスの移動・flapping
同じ送信元MACが短時間に異なるポートで学習されると、転送先が安定しません。物理ループ、LAG不整合、NICチーミング、仮想マシン移動、誤配線などが原因になります。ログにMACFLAP通知が出ていないか確認します。
6. MACアドレステーブルの容量不足
機器が学習できるMACアドレス数には上限があります。大規模L2ドメイン、ループ、攻撃、不適切な仮想環境接続などで上限へ近づくと、新規MACを学習できずUnknown Unicastが増える可能性があります。
7. VLAN・trunk・ポートチャネルの不整合
allowed VLANの片側漏れ、native VLANの不一致、ポートチャネルメンバの設定差分などにより、端末からの戻りフレームが期待する経路を通らず、MAC学習が成立しない場合があります。
ARPは残っているのにMAC表から消えた場合の時系列
- ゲートウェイのARP表には宛先IP 192.0.2.50 → MAC bbbb.bbbb.bbbb が残っている。
- L2スイッチのVLAN 10のMAC表では bbbb.bbbb.bbbb がagingで消えている。
- ゲートウェイからのユニキャストフレームは宛先MACを指定しているが、スイッチは出力ポートを特定できず、受信ポート以外の同一VLANへ複製する。
- 宛先端末がフレームを送れば、その送信元MACからポートを再学習し、通常のユニキャスト転送へ戻る。
これは動作説明用の例です。実障害ではARPとMAC表の取得時刻、VLAN、MAC aging設定、対象端末の送信状況をそろえて記録します。CiscoもARPとMAC学習のタイマー差によるユニキャストフラッディングを解説しています。
CiscoでUnknown Unicastを切り分ける手順
最初から抑制コマンドを入れるのではなく、「どの宛先MACが、どのVLANで、なぜ学習されていないか」を特定します。
手順1:影響範囲と直前変更を確認する
- 特定VLANだけか、複数VLANか
- 特定時間帯か、常時か
- どのポートで受信量が増えているか
- 構成変更、端末増設、回線切替、機器再起動があったか
手順2:MACアドレステーブルを確認する
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
問題の宛先MACが存在するか、VLANとポートが正しいか、時間とともに消えたり移動したりしないかを見ます。一度の出力だけでは分からないため、事象発生中に複数回確認します。
手順3:ARPテーブルと対応付ける
GW01# show ip arp 192.0.2.50
GW01# show ip arp | include bbbb.bbbb.bbbb
Internet 192.0.2.50 72 bbbb.bbbb.bbbb ARPA Vlan10
ARPエントリのMACと、スイッチで未学習の宛先MACが一致するか確認します。ARPが存在するのにMACが存在しないなら、timer差、非対称経路、端末が送信しない状態を疑います。
手順4:STP・MAC move・ポート状態を確認する
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が複数ポートを移動する、ポートが短時間にUp/Downする、といった兆候を探します。
手順5:正常時との差分を取る
同じVLANの正常端末について、ARP、MAC、ポート、経路を同じ順番で確認します。問題端末だけMACを学習しないのか、VLAN全体で消えているのかによって、調査対象は端末側とネットワーク側に分かれます。
Wireshark・SPANでUnknown Unicastを確認する方法
Wireshark単体には、すべてのフレームを自動で「Unknown Unicast」と断定する一般的な表示フィルタはありません。Unknownかどうかは、その時点のスイッチの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設定やキャプチャ位置によりVLANタグの見え方が変わるため、取得条件を記録してください。
Unknown Unicastの対策
優先すべきは発生源の修正です。抑制だけを入れると、帯域負荷は下がっても本来届くべき最初のフレームまで破棄し、別の通信障害を作る可能性があります。
| 原因 | 主な対策 | 注意点 |
|---|---|---|
| timer差・静かな端末 | ARP/MAC aging、端末動作、定期通信を設計として見直す | 全体変更前に影響を検証 |
| 非対称通信 | L2経路、LAG、FWクラスタ、NICチーミングを修正 | 往路・復路を両方確認 |
| STP変更 | flappingポート、ループ、PortFast/BPDU Guardを見直す | 根本の不安定要因を除去 |
| MAC flapping | 誤配線、二重接続、LAG不整合を修正 | ログのポート間を追跡 |
| 容量不足 | L2ドメイン縮小、不要MACの原因除去、機器増強 | 攻撃やループの有無も確認 |
| 過大トラフィック | 根本修正後にレート制御やブロックを検討 | 正常な未知フレームも対象になり得る |
unknown unicast blocking
一部のCisco機器では、アクセスポートからUnknown Unicastを出力しない設定としてswitchport block unicastを利用できます。
interface GigabitEthernet1/0/10
description USER-PORT
switchport mode access
switchport access vlan 10
switchport block unicast
これは根本原因を直す設定ではありません。対象ポートの先に本来の宛先が存在していても、MAC未学習中のフレームを破棄します。適用場所、機種の仕様、端末通信への影響を検証してから使います。
storm-control
機種によってはunicastのstorm-controlをサポートします。ただしknown unicastを含む実装や、閾値超過時の動作がshutdownになる実装もあります。コマンド名だけで適用せず、機種別仕様と実トラフィックの基準値を確認してください。
switchport block unicastは対応機種で未知ユニキャストの出力を止める設定であり、MAC未学習の原因を直す設定ではありません。正常な初回通信まで落とす可能性があるため、対象ポート・機種の仕様と影響を検証してから適用します。Cisco Catalyst 2960コマンドリファレンスでは、unknown unicastの転送を抑止する動作が明記されています。
Unknown Unicastのセキュリティ上の注意
フラッディングされたフレームは、本来の宛先以外のポートにも到達します。ただし通常のNICは自分宛でないユニキャストフレームを上位へ渡さないため、届いたことと内容を読めることは同じではありません。
それでも、プロミスキャスモードの端末や不正な機器が存在すれば観測される可能性があります。ネットワーク分割、ポートセキュリティ、802.1X、未使用ポートの停止、MAC学習異常の監視など、多層の対策が重要です。
Unknown Unicastのよくある質問
Unknown Unicastは障害ですか?
少量かつ一時的なら正常動作の範囲です。端末接続直後やMAC aging直後に発生します。大量・継続・周期的で、帯域や端末へ影響する場合は原因調査が必要です。
ARP RequestはUnknown Unicastですか?
通常のARP Requestは宛先MACがff:ff:ff:ff:ff:ffのブロードキャストです。Unknown Unicastではありません。ARP Replyは通常ユニキャストです。
L2スイッチはARPテーブルで転送先を決めますか?
通常のL2転送ではMACアドレステーブルを使います。ARPテーブルはIPアドレスとMACアドレスを対応付けるもので、L3機能や管理通信を持つ機器では存在しますが、フレーム転送先ポートの検索とは役割が異なります。
MACアドレステーブルをclearするとどうなりますか?
動的エントリを消すと、再学習されるまでUnknown Unicastが一時的に増えます。影響のある運用操作なので、障害調査で無闇に実行せず、対象、時間、影響範囲を確認してください。
Unknown Unicastはルーターを越えますか?
Ethernetフラッディングは原則として同一VLAN/ブロードキャストドメイン内です。ルーターは受信パケットを別のL2フレームへ作り直すため、そのままL2フラッディングが越えるわけではありません。VXLANなどのオーバーレイではBUM転送設計が別途関係します。
WiresharkだけでUnknown Unicastと判断できますか?
1地点のキャプチャだけでは断定しにくい場合があります。特定MAC宛フレームが複数の無関係なポートへ複製されていることと、その時点でスイッチが宛先MACを未学習であることを組み合わせて判断します。
まとめ
Unknown Unicastは、宛先MACアドレスの転送先をスイッチが学習していないユニキャストフレームです。スイッチは受信ポートを除く同一VLANへフラッディングし、宛先からの応答を送信元MACとして学習します。
切り分けでは、量と継続時間を確認し、宛先MAC、MACアドレステーブル、ARP、STP、LAG、非対称経路、直前変更の順に追います。抑制設定は最後の手段です。まず「なぜ送信元フレームを学習できないのか」「なぜ学習したMACが消えるのか」を特定してください。
