# ブリッジング / 一般設定

本製品は、インターフェース間でEthernetフレームを中継するブリッジ（ソフトウェアブリッジ）として動作させることができます。ここでは、ブリッジ機能の設定方法について説明します。
ブリッジングが可能なインターフェース（ブリッジポートとして使用可能なインターフェース）は次のとおりです。

インターフェース種別 | 送受信するフレーム | 備考
タグなし | タグ付き
Ethernetインターフェース（ethX） | ○ | × |
802.1Q Ethernetサブインターフェース（ethX.Y） | × | ○ |
L2TPv3トンネルインターフェース（tunnelX） | ○ | × |
802.1Q L2TPv3トンネルサブインターフェース（tunnelX.Y） | × | ○ |
OpenVPN Tap(L2)トンネルインターフェース（tunnelX） | ○ | × |
802.1Q OpenVPN Tap(L2)トンネルサブインターフェース（tunnelX.Y） | × | ○ |

Note

同じソフトウェアブリッジに所属するインターフェースのMTU値が異なる場合は、それぞれのMTU値を合わせるようにしてください（mtuコマンド）。

ここでは、ソフトウェアブリッジの基本的な設定方法を説明します。
ソフトウェアブリッジのより具体的な使用例については、「設定例集」をご覧ください。

## ローカルブリッジ

### 基本設定

下記のインターフェース間ですべてのプロトコルをブリッジします。

- eth1
- eth2

1. ソフトウェアブリッジ「1」を作成します。これにはbridgeコマンドを使います。

       awplus(config)# bridge 1

2. ソフトウェアブリッジ「1」にeth1を追加します。これにはインターフェースモードのbridge-groupコマンドを使います。

       awplus(config)# interface eth1
       awplus(config-if)# bridge-group 1
       awplus(config-if)# exit

3. ソフトウェアブリッジ「1」にeth2を追加します。

       awplus(config)# interface eth2
       awplus(config-if)# bridge-group 1
       awplus(config-if)# exit

ローカルブリッジとしての設定は以上です。

## リモートブリッジ（L2TPv3）

L2TPv3は、既存のIPv4/IPv6ネットワーク経由でLAN同士をブリッジ接続するための仕組みです。
本製品では、固定IP/IPv6アドレスを持つ拠点間のL2接続（ブリッジ接続）に使います。
L2TPv3の詳細設定については、「VPN」の「L2TPv3」をご覧ください。

### 基本設定（タグなしフレーム）

ここでは、下記の構成において、ルーターA・Bのeth0同士をリモートブリッジ接続し、タグなしフレームのブリッジングを行います。

以下では、ルーターA側の設定例を示します。
なお、前提事項として、ルーターA（自装置）のWAN側IPアドレスは10.1.1.1、ルーターB（対向装置）のWAN側IPアドレスは10.2.2.2とし、ルーターA・B間で通信を行うために必要なIPの設定はすんでいるものとします。

1. L2TPv3トンネルインターフェースtunnel0を作成します。
   L2TPv3の詳細設定については、「VPN」の「L2TPv3」をご覧ください。

       awplus(config)# interface tunnel0
       awplus(config-if)# tunnel mode l2tp v3
       awplus(config-if)# tunnel source 10.1.1.1
       awplus(config-if)# tunnel destination 10.2.2.2
       awplus(config-if)# tunnel local id 101
       awplus(config-if)# tunnel remote id 102
       awplus(config-if)# mtu 1500
       awplus(config-if)# exit

2. ソフトウェアブリッジ「1」を作成します。これにはbridgeコマンドを使います。

       awplus(config)# bridge 1

3. ソフトウェアブリッジ「1」にeth0を追加します。これにはインターフェースモードのbridge-groupコマンドを使います。

       awplus(config)# interface eth0
       awplus(config-if)# bridge-group 1
       awplus(config-if)# exit

4. ソフトウェアブリッジ「1」にtunnel0を追加します。

       awplus(config)# interface tunnel0
       awplus(config-if)# bridge-group 1
       awplus(config-if)# exit

設定は以上です。

### 応用設定（タグ付きフレーム）

ここでは、下記の構成において、ルーターA・B間でvlan2、vlan3のタグ付きフレームをブリッジングします。

以下では、ルーターA側の設定例を示します。
なお、前提事項として、ルーターA（自装置）のWAN側IPアドレスは10.1.1.1、ルーターB（対向装置）のWAN側IPアドレスは10.2.2.2とし、ルーターA・B間で通信を行うために必要なIPの設定はすんでいるものとします。

1. LAN側インターフェースeth0上にvlan2、vlan3のタグ付きパケットを送受信する802.1Qサブインターフェースeth0.2とeth0.3を作成します。これにはencapsulation dot1qコマンドを使います。

       awplus(config)# interface eth0
       awplus(config-if)# encapsulation dot1q 2
       awplus(config-if)# encapsulation dot1q 3
       awplus(config-if)# exit

2. L2TPv3トンネルインターフェースtunnel0を作成します。
   L2TPv3の詳細設定については、「VPN」の「L2TPv3」をご覧ください。

       awplus(config)# interface tunnel0
       awplus(config-if)# tunnel mode l2tp v3
       awplus(config-if)# tunnel source 10.1.1.1
       awplus(config-if)# tunnel destination 10.2.2.2
       awplus(config-if)# tunnel local id 101
       awplus(config-if)# tunnel remote id 102
       awplus(config-if)# mtu 1500

3. トンネルインターフェースtunnel0上に802.1Qサブインターフェースを2つ作成します。これにはencapsulation dot1qコマンドを使います。
   これらのサブインターフェースは、指定したVLAN IDのタグ付きフレームを送受信するためのものです。

       awplus(config-if)# encapsulation dot1q 2
       awplus(config-if)# encapsulation dot1q 3
       awplus(config-if)# exit

4. ソフトウェアブリッジ「2」、「3」を作成します。これにはbridgeコマンドを使います。
   これらのソフトウェアブリッジには、それぞれvlan2、vlan3のタグ付きフレームをブリッジングさせます。

       awplus(config)# bridge 2
       awplus(config)# bridge 3

5. eth0.2、eth0.3をそれぞれソフトウェアブリッジ「2」、「3」に割り当てます。これにはインターフェースモードのbridge-groupコマンドを使います。

       awplus(config)# interface eth0.2
       awplus(config-if)# bridge-group 2
       awplus(config-if)# exit
       awplus(config)# interface eth0.3
       awplus(config-if)# bridge-group 3
       awplus(config-if)# exit

6. 802.1Qサブインターフェース「tunnel0.2」、「tunnel0.3」をそれぞれソフトウェアブリッジ「2」、「3」に割り当てます。
   サブインターフェース名「tunnel0.X」の「X」には、encapsulation dot1qコマンドで指定したVLAN IDが入ります。

       awplus(config)# interface tunnel0.2
       awplus(config-if)# mtu 1500
       awplus(config-if)# bridge-group 2
       awplus(config-if)# exit
       awplus(config)# interface tunnel0.3
       awplus(config-if)# mtu 1500
       awplus(config-if)# bridge-group 3
       awplus(config-if)# exit

設定は以上です。

## その他

### ブリッジできない制御パケット

以下の制御パケットはブリッジできません。

01-80-C2-00-00-00 | Spanning Tree BPDU
01-80-C2-00-00-01 | IEEE802.3x PAUSE
01-80-C2-00-00-02 | IEEE802.3ad LACP
01-80-C2-00-00-03 | IEEE802.1X EAPOL
01-80-C2-00-00-0E | IEEE802.1AB LLDP

### 設定・状態の確認

設定済みのソフトウェアブリッジと所属インターフェースはshow bridgeコマンドで確認できます。

    awplus> show bridge

ソフトウェアブリッジのフォワーディングデータベースはshow bridge macaddrコマンドで確認できます。

    awplus> show bridge macaddr

### MACフィルター

MACフィルター（ブリッジフィルター）は、ソフトウェアブリッジを通過するフレームの内容にもとづき、フレームの転送可否を決定する機能です。
本機能は、MACフィルターを作成して、ソフトウェアブリッジまたは所属インターフェース（以下、ブリッジポート）に適用することで有効になります。

#### フィルターの構成

MACフィルターは次に示す2種類のルールのリストから構成されます。両方のリストで許可されたパケットだけが次の処理に進みます。

1. プロトコルルール（protocolコマンドで作成）
   ブリッジ対象のプロトコルを絞り込むために使います。
   各プロトコルルールでは、次の(a)、または(a)と(b)の組み合わせで対象プロトコルを指定し、許可（ブリッジ対象にする）、拒否（ブリッジ対象にしない）を指示します。
   - (a) Ethernetのフレームフォーマット（エンキャプセレーション）
   - (b) 指定したフレームフォーマットにおけるプロトコルタイプ値。省略時は該当フレームフォーマットの全プロトコル
   初期状態ではプロトコルルールは存在しておらず、すべてのプロトコル（すべてのフレーム）がブリッジ対象になっています。
2. MACフィルタールール（ruleコマンドで作成）
   Ethernetヘッダーおよび任意位置のデータ、IP/IPv6ヘッダー、TCP/UDPヘッダーの内容によってフレームの転送可否を決定するために使います。
   参照可能な情報は次のとおりです。
   - フレーム
     - 宛先MACアドレス
     - 送信元MACアドレス
     - プロトコルタイプ（Ethertypeのみ）※フレームフォーマットがEthernet Version 2のときだけ有効
     - データフィールド（ペイロード）内の任意位置のバイナリーデータ
   - IPパケット
     - 始点IPアドレス
     - 終点IPアドレス
     - 上位プロトコル（TCP、UDP、任意のプロトコルタイプ）
   - IPv6パケット
     - 始点IPv6アドレス
     - 終点IPv6アドレス
     - 上位プロトコル（TCP、UDP、任意のプロトコルタイプ）
   - TCP/UDPパケット
     - 始点ポート番号
     - 終点ポート番号

#### フィルターの適用場所

MACフィルターは、各ソフトウェアブリッジにおいて、下記の4箇所で適用できます。

1. ブリッジポートでの受信時（受信MACフィルター）
2. ソフトウェアブリッジへの入力時（受信MACフィルター）
3. ソフトウェアブリッジからの出力時（送信MACフィルター）
4. ブリッジポートからの送信時（送信MACフィルター）

#### フィルター処理の流れ

フレームがソフトウェアブリッジを通じて転送されるためには、該当ソフトウェアブリッジと所属インターフェース（ブリッジポート）に適用されているMACフィルターをすべて通過する必要があります。
ソフトウェアブリッジを通過するフレームに対するフィルター処理の流れは次のとおりです。

1. ブリッジポートでの受信時
   - ブリッジポートに受信MACフィルター（ingress）が適用されている場合
     該当ブリッジポートでフレームを受信した直後に以下のチェックを行います。
     (1) MACフィルター内のプロトコルルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-protocol-actionコマンドで設定したデフォルトアクション（permit、deny）を実行します。
     - permit → (2) MACフィルタールールのチェックに進みます。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     (2) MACフィルター内のMACフィルタールールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-actionコマンドで設定したデフォルトアクション（permit、deny、none）を実行します。
     - permit → 処理終了。転送判断を経て該当フレームを送信します。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     - none → ブリッジポート入力時の処理を完了し、手順2に進みます。
   - ブリッジポートに受信MACフィルター（ingress）が適用されていない場合
     手順2に済みます。
2. ソフトウェアブリッジへの入力時
   - ソフトウェアブリッジに受信MACフィルター（ingress）が適用されている場合
     該当ソフトウェアブリッジでフレームの転送判断を行う直前に以下のチェックを行います。
     (1) MACフィルター内のプロトコルルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-protocol-actionコマンドで設定したデフォルトアクション（permit、deny）を実行します。
     - permit → (2) MACフィルタールールのチェックに進みます。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     (2) MACフィルター内のルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-actionコマンドで設定したデフォルトアクション（permit、deny、none）を実行します。
     - permit → 処理終了。転送判断を経て該当フレームを送信します。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     - none → ソフトウェアブリッジ入力時の処理を完了し、手順3に進みます。
   - ソフトウェアブリッジに受信MACフィルター（ingress）が適用されていない場合
     手順3に済みます。
3. ソフトウェアブリッジからの出力時
   - ソフトウェアブリッジに送信MACフィルター（egress）が適用されている場合
     該当ソフトウェアブリッジでフレームの転送判断を行った直後に以下のチェックを行います。
     (1) MACフィルター内のプロトコルルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-protocol-actionコマンドで設定したデフォルトアクション（permit、deny）を実行します。
     - permit → (2) MACフィルタールールのチェックに進みます。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     (2) MACフィルター内のルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-actionコマンドで設定したデフォルトアクション（permit、deny、none）を実行します。
     - permit → 処理終了。転送判断を経て該当フレームを送信します。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     - none → ソフトウェアブリッジでの転送後の処理を完了し、手順4に進みます。
   - ソフトウェアブリッジに送信MACフィルター（egress）が適用されていない場合
     手順4に済みます。
4. ブリッジポートからの送信時
   - ブリッジポートに送信MACフィルター（egress）が適用されている場合
     該当ブリッジポートからフレームを送信する直前に以下のチェックを行います。
     (1) MACフィルター内のプロトコルルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-protocol-actionコマンドで設定したデフォルトアクション（permit、deny）を実行します。
     - permit → (2) MACフィルタールールのチェックに進みます。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     (2) MACフィルター内のルールを順番にチェックし、最初にマッチしたルールで指定された処理（permit、deny）を実行します。どのルールにもマッチしなかった場合は default-actionコマンドで設定したデフォルトアクション（permit、deny、none）を実行します。
     - permit → 処理終了。転送判断を経て該当フレームを送信します。
     - deny → 処理終了。該当フレームを転送せず、ここで破棄します。
     - none → 処理終了。転送判断を経て該当フレームを送信します。
   - ブリッジポートに送信MACフィルター（egress）が適用されていない場合
     処理終了。該当フレームを送信します。

#### MACフィルターの作成

MACフィルターは複数のプロトコルルール、MACフィルタールールから構成されるリストです。グローバルコンフィグモードのmac-filterコマンドでリストを作成し、protocolコマンド（MACフィルターモード）でプロトコルルールを、ruleコマンド（MACフィルターモード）でMACフィルタールールを追加していきます。

1. MACフィルター「denyA」を作成します。これには、mac-filterコマンドを使います。
   これにより、MACフィルター「denyA」の内容を設定するためのMACフィルターモードに移動します。

       awplus(config)# mac-filter denyA

2. 特定のプロトコルだけをブリッジしたい場合は、protocolコマンド（MACフィルターモード）でプロトコルルールを定義します。
   たとえば、IPとARPだけをブリッジしたいときは次のようにします。

       awplus(config-macfilter)# protocol 001 permit ethii ether-type ip
       awplus(config-macfilter)# protocol 002 permit ethii ether-type arp
       awplus(config-macfilter)# default-protocol-action deny

   Note

   プロトコルフィルタールールでは、どのルールにもマッチしなかったフレームは許可されます（ブリッジ対象になります）。そのため、特定のプロトコルだけをブリッジしたいときは、この例のようにdefault-protocol-actionコマンド（MACフィルターモード）でマッチしなかったフレームを破棄するよう設定を変更してください。

3. 次にruleコマンド（MACフィルターモード）でMACフィルタールールを追加していきます。

       awplus(config-macfilter)# rule dstA deny dmac 0000.5e00.530a smac any proto any
       awplus(config-macfilter)# rule srcA deny dmac any smac 0000.5e00.530a proto any
       awplus(config-macfilter)# rule others permit dmac any smac any proto any

   Note

   MACフィルタールールでは、どのルールにもマッチしなかったフレームは破棄される点に注意してください。この例ではリストの末尾にすべてを許可するルール「others」を配置することで、それまでのルールにマッチしなかったフレームを許可しています。

   Note

   1つのソフトウェアブリッジ上で複数のMACフィルターを使用する場合は、処理順序が最後になるMACフィルター以外のデフォルトアクションを「none」に設定する必要があります。これには、default-actionコマンドを使います。

#### MACフィルターの適用

作成したMACフィルターは、ブリッジポートかソフトウェアブリッジに適用することで初めて有効になります。
MACフィルターをブリッジポートやソフトウェアブリッジに適用するには、インターフェースモードのmac-filter-groupコマンドを使います。このとき適用方向（ingress、egress）とMACフィルター名を指定してください。
たとえば、ソフトウェアブリッジ1に受信MACフィルター「denyA」を適用するには、次のようにします。

    awplus(config)# interface br1
    awplus(config-if)# mac-filter-group ingress denyA

ここで、「br1」はソフトウェアブリッジ1を表す仮想的なインターフェース（ブリッジインターフェース）です。ブリッジインターフェースについては後述します。
また、ブリッジポートeth1に送信MACフィルター「port_out」を適用するには、次のようにします。

    awplus(config)# interface eth1
    awplus(config-if)# mac-filter-group egress port_out

MACフィルターの適用を解除するには、mac-filter-groupコマンドをno形式で実行します。このときは、適用方向（ingress、egress）だけを指定します。
たとえば、ソフトウェアブリッジ1（br1）から受信MACフィルターを削除するには次のようにします。

    awplus(config)# interface br1
    awplus(config-if)# no mac-filter-group ingress

#### 統計情報

ソフトウェアブリッジに適用したMACフィルターの統計情報は、show mac-filterコマンドで確認できます。

    awplus# show mac-filter
    Iface            Rule         Options                                 Pkt Count
                     Dir / Action                                        Byte Count
    -------------------------------------------------------------------------------
    br1              001          Protocol   : Ethernet II                        0
                     in  / permit Ether-type : ip                                 0
    br1              002          Protocol   : Ethernet II                        0
                     in  / permit Ether-type : arp                                0
    br1              Protocol (default action)                                    0
                     in  / deny                                                   0
    br1              dstA         DMAC  : 0000.5e00.530a                          0
                     in  / deny   SMAC  : any                                     0
                                  Proto : any
    br1              srcA         DMAC  : any                                     0
                     in  / deny   SMAC  : 0000.5e00.530a                          0
                                  Proto : any
    br1              others       DMAC  : any                                     0
                     in  / permit SMAC  : any                                     0
                                  Proto : any
    br1              Rule (default action)                                        0
                     in  / deny                                                   0

MACフィルターの統計情報はclear mac-filter counterコマンドでクリアできます。

    awplus# clear mac-filter counter

### ルーティングとPPPoE接続について

ソフトウェアブリッジに割り当てたインターフェースはL2インターフェース（ブリッジポート）となり、L3インターフェース（ルーティング用インターフェース）としての機能を失います。
たとえば、eth0にIPアドレスやIPv6アドレスを設定していたとしても、eth0をソフトウェアブリッジに割り当てた時点でeth0のIP/IPv6アドレスは削除されます。また、eth0をソフトウェアブリッジに割り当てた後で、eth0にIP/IPv6アドレスを設定することはできません。
また、ソフトウェアブリッジに割り当てたインターフェース上ではPPPoE接続もできません。
ソフトウェアブリッジと他のネットワークとの間でルーティングを行う場合、および、ソフトウェアブリッジに割り当てたインターフェース上でPPPoE接続を行う場合は、次に述べるブリッジインターフェースを使用してください。

#### ブリッジインターフェース

ブリッジインターフェースは、ソフトウェアブリッジ全体を表す仮想的なインターフェースで、ブリッジとして動作している本製品へのIP/IPv6アクセスや、ブリッジインターフェースと他のインターフェースとの間のIP/IPv6ルーティングに使用します。
ブリッジインターフェースは、VLAN対応スイッチにおけるVLANインターフェースを思い浮かべるとわかりやすいでしょう。
ブリッジインターフェースは、bridgeコマンドでソフトウェアブリッジを作成すると自動的に作られます。インターフェース名は「brX」（Xはブリッジ番号）です。

    awplus(config)# bridge 1

これにより、ブリッジインターフェース br1 が作成されます。
作成したブリッジインターフェースにはIPアドレスやIPv6アドレスを設定して、装置自身へのアクセスに使ったり、他のインターフェースとのルーティングを行ったりすることが可能です。

    awplus(config)# interface br1
    awplus(config-if)# ip address 192.168.100.1/24

Note

なお、ブリッジインターフェース（brX）でサポート可能なL3機能は以下に限定されます。

- 運用・管理機能
- スタティックルーティング
- ダイナミックルーティングプロトコル（RIP、OSPF、BGP）
- DHCPクライアント
- MSS書き換え
- MAP-E
- DS-Lite
- 国内標準プロビジョニング方式
- ダイナミックDNSクライアント
- DHCPサーバー
- DNSリレー

ブリッジインターフェース上にはPPP（PPPoE）インターフェースを作成して、PPPoE接続を行うことも可能です。
たとえば、eth1をソフトウェアブリッジに割り当てている場合、eth1上にPPPインターフェースを作成して本製品自身がPPPoE接続を行うことはできませんが、所属先のブリッジインターフェース上でencapsulation pppコマンドを実行し、PPPインターフェースを作成することにより、ソフトウェアブリッジでPPPoEパケットを転送しながら、本製品自身もPPPoE接続を行う構成が可能です。

    awplus(config)# interface br1
    awplus(config-if)# encapsulation ppp 0

Note

PPPoEパススルー機能を使用すれば、前述の構成（PPPoEパケットを転送しながら、本製品自身もPPPoE接続を行う構成）をよりシンプルな設定で実現できます。詳しくは同機能のページをご覧ください。

Note

ブリッジインターフェース（brX）上でPPPoEを使用する場合は、MACフィルターで下記のPPPoE関連パケットが破棄されないように注意してください。

- PPPoE Discoveryパケット（Ethertype 8863）
- PPPoE Sessionパケット（Ethertype 8864）

プロトコルルール（protocolコマンド）では、フレームフォーマットとして「ethii」を指定し、ether-typeパラメーターにキーワード「pppoe-disc」、「pppoe-sess」を指定することで前記パケットを指定できます（キーワードの代わりにEthertype値「8863」、「8864」を指定することもできます）。

    awplus(config-macfilter)# protocol p1 permit ethii ether-type pppoe-disc
    awplus(config-macfilter)# protocol p2 permit ethii ether-type pppoe-sess

MACフィルタールール（ruleコマンド）では、protoパラメーターにEthertype値「8863」、「8864」を指定することで前記パケットを指定できます。

    awplus(config-macfilter)# rule r1 permit proto 8863
    awplus(config-macfilter)# rule r2 permit proto 8864

なお、該当ソフトウェアブリッジでMACフィルターを使っていない場合は問題ありません。