# rule

モード
  MACフィルターモード
カテゴリー
  ブリッジング / 一般設定

## 構文

コマンド構文

`(config-macfilter)# rule NAME ACTION [dmac MAC] [smac MAC] [proto TYPE] [offset <0-1499> hex-string DATA] [{after|before} rule EXISTINGNAME]`

`(config-macfilter)# rule NAME ACTION ip [src IP] [dst IP] [proto {<1-255>|tcp|udp}] [sport <1-65535>] [dport <1-65535>] [{after|before} rule EXISTINGNAME]`

`(config-macfilter)# rule NAME ACTION ipv6 [src IP6] [dst IP6] [proto {<1-255>|tcp|udp}] [sport <1-65535>] [dport <1-65535>] [{after|before} rule EXISTINGNAME]`

`(config-macfilter)# no rule NAME`

## コマンド説明

対象MACフィルターにMACフィルタールールを追加する。
no形式で実行した場合は指定したMACフィルタールールを削除する。

## パラメーター

`NAME`
  ルール名
`ACTION`
  マッチしたフレームに対するアクション。次から選択する
  `deny`
    フレームを破棄する
  `permit`
    フレームを許可する
`dmac MAC`
  宛先MACアドレス。MACは次のいずれかの形式で指定する。省略時は「dmac any」
  `HHHH.HHHH.HHHH`
    MACアドレス。16進数で2オクテット（4桁）ごとにピリオドで区切って指定する（例：0000.cd24.0367）
  `any`
    すべてのMACアドレスに合致させる場合に指定する
`smac MAC`
  送信元MACアドレス。MACの指定方法はdmacと同じ。省略時は「smac any」
`proto TYPE`
  Ethernet Version 2におけるプロトコルタイプ（Ethertype）フィールド値（宛先・送信元MACアドレスに続く2バイトの値）。TYPEは次のいずれかの形式で指定する
  `WORD`
    定義済みのプロトコル名またはプロトコル番号（16進数）
  `any`
    すべてのプロトコル
`offset <0-1499>`
  フレームのデータフィールド（ペイロード）内の比較開始位置（バイト）。hex-stringパラメーターと組で指定する。データフィールドの先頭バイトを0として指定する
`hex-string DATA`
  フレームのデータフィールド（ペイロード）と比較する16進表記のバイナリー列。データフィールド内のoffsetパラメーターで指定した位置に本パラメーターで指定したのと同じバイナリー列が存在する場合にマッチする
`after`
  作成するルールを既存ルールの後に挿入したいときに指定する
`before`
  作成するルールを既存ルールの前に挿入したいときに指定する
`rule EXISTINGNAME`
  既存のルール名
`ip`
  IPv4およびTCP/UDPヘッダーでフィルタリングするときに指定する。ipキーワードを指定した場合は、始点IPアドレス（src）、終点IPアドレス（dst）、IPプロトコルタイプ（proto）から少なくとも一つ条件を指定する必要がある。IPプロトコルタイプにtcpかudpを指定した場合は、TCP/UDPポート番号（sport、dport）の指定も可能
`src IP`
  始点IPアドレス。IPは次のいずれかの形式で指定する。省略時はすべてのIPアドレスにマッチする
  `A.B.C.D`
    単一IPアドレス
  `A.B.C.D/M`
    IPアドレスとマスク長。この形式の場合、IPアドレスの先頭からマスク長で指定されたビット数だけが比較対象となる
`dst IP`
  終点IPアドレス。IPの指定方法はsrcと同じ。省略時はすべてのIPアドレスにマッチする
`proto {<1-255>|tcp|udp}`
  特定の上位プロトコルタイプ（IPヘッダーのプロトコルタイプフィールドの値）を持つパケットだけを対象とする場合に指定する。IPプロトコルタイプは10進数で指定する。tcpかudpを指定した場合はTCP/UDPポート番号（sport、dport）も指定可能。省略時はすべての上位プロトコルにマッチする
`sport <1-65535>`
  始点ポート番号。上位プロトコルタイプとしてtcpかudpを指定したときだけ有効。省略時はすべてのポートが対象
`dport <1-65535>`
  終点ポート番号。上位プロトコルタイプとしてtcpかudpを指定したときだけ有効。省略時はすべてのポートが対象
`ipv6`
  IPv6およびTCP/UDPヘッダーでフィルタリングするときに指定する。ipv6キーワードを指定した場合は、始点IPv6アドレス（src）、終点IPv6アドレス（dst）、IPプロトコルタイプ（proto）から少なくとも一つ条件を指定する必要がある。IPプロトコルタイプにtcpかudpを指定した場合は、TCP/UDPポート番号（sport、dport）の指定も可能
`src IP6`
  始点IPv6アドレス。IP6は次のいずれかの形式で指定する。省略時はすべてのIPv6アドレスにマッチする
  `X:X::X:X`
    単一IPv6アドレス
  `X:X::X:X/M`
    IPv6アドレスとマスク長。この形式の場合、IPv6アドレスの先頭からマスク長で指定されたビット数だけが比較対象となる
`dst IP6`
  終点IPv6アドレス。IP6の指定方法はsrcと同じ。省略時はすべてのIPv6アドレスにマッチする

## 使用例

対象MACフィルターに、宛先MACアドレスが0000.5e00.530aのフレームを破棄するMACフィルタールールdstAを追加する。

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

対象MACフィルターに、Ethernetフレームのデータ部の先頭から41～42バイト目が16進数表記で「89ab」のバイナリー列とマッチするフレームを破棄するMACフィルタールール89abを追加する。

    awplus(config-macfilter)# rule 89ab deny offset 40 hex-string 89ab

対象MACフィルターに、始点IPアドレスが192.168.250.0/24（192.168.250.0～192.168.250.255）の範囲におさまるIPパケットを破棄するMACフィルタールールdenyIPnet250を追加する。

    awplus(config-macfilter)# rule denyIPnet250 deny ip src 192.168.250.0/24

## 注意・補足事項

MACフィルターの処理フローについては解説編を参照。
インターフェース（ソフトウェアブリッジまたはブリッジポート）に適用中のMACフィルターの内容を変更すると、該当インターフェースにおけるMACフィルターの統計情報（show mac-filterコマンドで表示されるPkt CountとByte Count）はクリアされる。
MACフィルタールールでは、どのルールにもマッチしなかったフレームは破棄される。そのため、mac-filterコマンドで作成した直後の、ルールを1つも持たないMACフィルターは「すべて破棄」の動作となる。

## コマンドツリー

## 関連コマンド