# L2スイッチング / フォワーディングデータベース

フォワーディングデータベース（MACアドレステーブル）は、スイッチが受信フレームの転送先ポートを決定するために使用するデータベースです。

## MACアドレスエントリー

フォワーディングデータベース内の各エントリーは、次のようなフィールドで構成されています。

表 1
フィールド | 内容
VLAN ID | ステーションが所属するVLAN
MACアドレス | ステーションのMACアドレス
ポート番号 | ステーションが存在するポート（アクションがdiscardのときは意味を持たない）
アクション | 該当ステーション宛てフレームの処理方法。転送（forward）と破棄（discard）がある

スイッチは、受信フレームの所属VLANと宛先MACアドレスをキーにフォワーディングデータベースを検索して出力ポートを決定します。宛先アドレスがデータベースに登録されていない場合は、同一のVLANに所属するすべてのポート（受信ポートを除く）からフレームを出力します（フラッディング）。
MACアドレスエントリーには、次のような種類があります。

表 2
種別 | 内容
ダイナミックエントリー | 学習機能により自動的に登録されたエントリー。一定時間受信がなかったエントリーは削除される（エージング）。また、システムを再起動すると、すべてのエントリーが削除される
スタティックエントリー | 管理者が手動で登録したエントリー。エージングによって削除されることはない。設定をファイルに保存すれば、再起動後にも使用できる。また、特定アドレス宛てのフレームを破棄するよう設定することもできる。mac address-table staticコマンドで登録する

フォワーディングデータベースはスイッチの学習機能によって自動的に構築されていくため、通常管理者が設定すべきことはありませんが、データベースの内容を参照したり、タイマー設定を変更したり、エントリーを手動で登録したりすることも可能です。

## 自動学習とダイナミックエントリー

スイッチは、その動作の過程において、受信フレームの送信元MACアドレスと受信ポートおよび所属VLANの情報に基づきMACアドレスエントリーを動的に作成していきます。これを自動学習機能と呼びます。また、自動学習により登録されたエントリーをダイナミックエントリーと呼びます。
個々のダイナミックエントリーにはタイマーが用意されており、一定時間（エージングタイム）受信のなかったアドレスはフォワーディングデータベースから削除されるようになっています。これは、電源が切られたり、移動したりして無効になったエントリーが、いつまでも残らないようにするためです。一方、時間内に再度受信があったときはタイマーがリセットされます。このようにして、つねに最新の情報が保たれます。
フォワーディングデータベースの内容を確認するには、show mac address-tableコマンドを使います。

    awplus> show mac address-table

ダイナミックエントリーをすべて削除するには、clear mac address-tableコマンドでdynamicオプションを指定します。

    awplus# clear mac address-table dynamic

特定のダイナミックエントリーを削除する場合は、オプションパラメーターで対象を絞り込めます。
たとえば、特定のダイナミックMACアドレスだけを削除したいときは、addressパラメーターでMACアドレスを指定します。

    awplus# clear mac address-table dynamic address 0009.414c.a1c0

自動学習機能は初期状態でオンになっています。これをオフにするにはmac address-table acquireコマンドをno形式で実行します。

    awplus(config)# no mac address-table acquire

また再度オンにするには、同コマンドを通常形式で実行します。

    awplus(config)# mac address-table acquire

Note

学習機能をオフにすると宛先アドレスがデータベースに登録されていない状態となるため、同一のVLANに所属するすべてのポート（受信ポートを除く）からフレームを出力します（フラッディング）。

エージングタイム（MACアドレス保持時間）を変更するにはmac address-table ageing-timeコマンドを使用します。初期値は300秒（5分）です。

    awplus(config)# mac address-table ageing-time 600

Note

パケットを受信しなくなってから実際にアドレスが削除されるまでの時間は、タイミングにより「エージングタイム設定値」～「エージングタイム設定値×2」の範囲で変動します。

## スタティックエントリー

手動でMACアドレスエントリーを追加するにはmac address-table staticコマンドを使います。手動登録では、転送先ポートを指定する一般的なスタティックエントリーだけでなく、特定アドレス宛てのフレームを破棄するためのエントリーも作成できます。
vlan1所属のステーション0000.f412.3456宛てのフレームをポート1.0.3に転送するスタティックエントリーを追加します。

    awplus(config)# mac address-table static 0000.f412.3456 forward interface port1.0.3 vlan 1

特定MACアドレス宛てのフレームを破棄するには、キーワードdiscardを指定します。
たとえば、vlan1所属のステーション0000.f4ab.cdef宛てのフレームを転送せずに破棄するには次のようにします。

    awplus(config)# mac address-table static 0000.f4ab.cdef discard interface port1.0.4 vlan 1

アクションとしてdiscardを指定する場合、ポート番号の指定は意味を持ちませんが、省略することはできないため、該当アドレスのステーションが接続されているポートを指定するなど、何らかの値を指定してください。
no形式でスタティックエントリーを削除するときは、MACアドレス、転送先ポート、VLAN IDを正しく指定してください。削除時には、アクションの指定は必ずしも意味を持ちませんが、省略することはできないため、必ず何らかの値を指定してください。原則としては、エントリー登録時と同じパラメーターを指定し、先頭に「no」キーワードを付けるという考えでかまいません。

    awplus(config)# no mac address-table static 0000.f412.3456 forward interface port1.0.3 vlan 1

Note

フォワーディングデータベースの検索キーは入力VLAN IDと宛先MACアドレスなので、スタティックエントリーの操作時はこの2つを意識して正しく指定してください。さらに削除時は、これらのパラメーターに加えて、転送先ポートの指定が登録内容と一致していないと希望のエントリーが削除されないので注意が必要です。

スタティックエントリーはshow mac address-tableコマンドで確認できます。

## FDBエントリーログ

本製品は、FDBエントリーの変更（登録・削除・エージングによる削除）をログに記録できます。
FDBエントリーログを有効にするには、mac address-table loggingコマンドを使います。デフォルトは無効です。

    awplus(config)# mac address-table logging

FDBエントリーログを表示するには、show logコマンドを使います。show logコマンドでは他のログメッセージも表示されますが、「 | include MAC」を指定すればFDB関連のログだけを見ることができます。

    awplus# show log | include MAC
    2016 Mar 24 19:48:33 user.notice awplus EXFX[684]: MAC Delete 0000.0000.0101 port1.0.1 vlan1
    2016 Mar 24 19:49:50 user.notice awplus EXFX[684]: MAC Add 0000.0000.0101 port1.0.1 vlan1
    2016 Mar 24 19:59:35 user.notice awplus EXFX[701]: MAC Age-out 0000.0000.0101 port1.0.1 vlan1
    2016 Mar 24 19:59:55 user.notice awplus IMISH[14989]: [manager@ttyS0]show log | include MAC

ログメッセージ本体（Message）の表示項目は、左から順にイベント（AddかDeleteかAge-out）、MACアドレス、ポート番号、VLAN IDです。