パケット転送フィルター

概要

パケット転送フィルターは、ip filterコマンドで定義したフィルターとの比較にもとづいて、パケットの転送先を決める機能です。従来のフィルター型ルーティングと似ていますが、次の2点が大きく異なります。

  • パケット転送フィルターは、ルーティングの処理とは独立に動作します。静的経路や動的経路の設定とはまったく関係がありません。
  • フィルタ型ルーティングではゲートウェイのロードバランスやhide指定が可能ですが、パケット転送フィルタでは対応していません。

パケット転送フィルターの処理の位置づけは次のようになっています。

パケット転送フィルターの処理の流れ

パケット転送フィルターの処理は、ルーティングの処理の直前にあります。受信したパケットのうち、パケット転送フィルターで設定した条件に該当するものについては、その設定にしたがって転送先のゲートウェイを決めます。一方、該当する条件がないときには、そのパケットはルーティングの処理にもとづいて、ゲートウェイを決めます。

対応機種とファームウェアリビジョン

ヤマハRTシリーズでは、以下の機種およびファームウェアで、パケット転送フィルターをサポートしています。

機種 ファームウェア
RTX5000 Rev.14.00.15以降
RTX820 Rev.11.03.16以降
RTX1200 Rev.10.01.20以降

設定例

例として、次のような方針でパケットを転送することを考えます。

  • 始点アドレスが192.168.0.0/24でプロトコルがUDPのパケットをPP 1へ転送する。
  • 始点アドレスが192.168.1.0/24のパケットをTUNNEL 1へ転送する。
  • 始点アドレスが192.168.2.0/24のパケットをTUNNEL 2へ転送する。

まず、パケットの条件をip filterコマンドで定義します。

ip filter 1001 pass 192.168.0.0/24 * udp * *
ip filter 1002 pass 192.168.1.0/24 * * * *
ip filter 1003 pass 192.168.2.0/24 * * * *

次に、ip forward filterコマンドで、各条件に対応するゲートウェイを指定します。

ip forward filter 100 1 gateway pp 1 filter 1001
ip forward filter 100 2 gateway tunnel 1 filter 1002
ip forward filter 100 3 gateway tunnel 2 filter 1003

100という番号はパケット転送フィルターの識別子で、1〜3の番号は評価するときの順番をあらわしています。

最後に、パケット転送フィルターをインターフェースに対応づけます。

ip lan1 forward filter 100

この例では、LAN1インターフェースで受信したパケットを処理します。

詳細

パケット転送フィルターの設定

パケット転送フィルターを設定するコマンドの書式は次のようになっています。

ip forward filter ID ORDER gateway GATEWAY filter FILTER_ID ...[ keepalive KEEPALIVE_ID ]

IDパケット転送フィルターの識別子です。同じインターフェースに対して、複数のパケット転送フィルターを設定するときには、それらのすべてに対して、同じ番号を指定します。

ORDERは、評価の順番を示すものです。ルータは、若い番号を持つ設定ほど先に評価します。典型的には、次のようにいくつかのコマンドを順番に並べて設定します。

ip forward filter 100 1 gateway tunnel 1 filter 11 12 13
ip forward filter 100 2 gateway tunnel 2 filter 21 22 23
ip forward filter 100 3 gateway tunnel 3 filter 31 32 33

FILTER_ID ...の部分は前に書いているものから順に評価します。前から順に対応するip filterコマンドを調べ、パケットの内容と合致すれば、そのip filterコマンドの設定を採用します。ip filterコマンドの動作がrejectであれば、パケットを転送せずに破棄し、そうでなければ、GATEWAYパラメータで指定されたゲートウェイにパケットを転送します。

KEEPALIVE_IDには、ip keepaliveコマンドの識別子を指定します。ここで指定されたIPキープアライブの結果がdownであれば、そもそも、このゲートウェイを使用しません。すなわち、このコマンド自体を無視することになります。たとえば、次のような設定では、100番のIPキープアライブがupしているときの転送先はPP 1であり、downしているときの転送先はPP 2になります。

ip filter 1000 pass * * tcp * *
ip forward filter 100 1 gateway pp 1 filter 1000 keepalive 100
ip forward filter 100 2 gateway pp 2 filter 1000

ip forward filterコマンドを設定したら、次に、ip INTERFACE forward filterコマンドで、動作させるインターフェースを指定します。このコマンドの書式は次のようになっています。

ip INTERFACE forward filter ID

パラメータIDとして、パケット転送フィルターの識別子を指定します。自分が送信するパケットに適用するときには、INTERFACEにはlocalを指定します。

動作を確認する方法

syslog noticeコマンドでonを設定し、ip filterコマンドでpass-log、reject-log、rejectを指定すれば、そのフィルタに合致したパケットの転送結果をSyslogに出力できます。出力するメッセージのフォーマットは、次のようになっています。

Forward Filter IN_IF, ORDER, FILTER_ID GATEWAY PACKET_INFO

  • IN_IF: パケットの受信インターフェース
  • ORDER: パケット転送フィルターのORDERパラメータ
  • FILTER_ID: パケット転送フィルターのFILTER_IDパラメータ
  • GATEWAY: パケットの転送先のゲートウェイ
  • PACKET_INFO: パケットの情報 (プロトコル、アドレス、ポート番号など) (※)

※ip filterコマンドのSyslogで出力する内容に準じます。

制限事項

パケット転送フィルターには、次の制限事項があります。

  • ゲートウェイのロードバランスはできません。
  • インターフェースのup/downは認識しません。ip routeコマンドではhideオプションをつかうとdownしたインターフェース向けのゲートウェイを無効にできますが、パケット転送フィルターには、そういう仕掛けはありません。
  • 転送先として、下記のゲートウェイは設定できません。
    • PP Anonymousインターフェース
    • フレームリレー回線のDLCI
    • DHCPサーバから受信したゲートウェイ
  • IPv6には対応していません。

コマンド

パケット転送フィルターの定義

[書式]
ip forward filter ID ORDER gateway GATEWAY filter FILTER_ID ...[ keepalive KEEPALIVE_ID ]
no ip forward filter ID ORDER [ gateway GATEWAY [ filter FILTER_ID ...] [ keepalive KEEPALIVE_ID ] ]
[設定値]
  • ID ... パケット転送フィルターの識別子 (1 .. 255)
  • ORDER ... 評価の順番 (1 .. 255)
  • GATEWAY ... 転送先のゲートウェイ
    • IPアドレス
    • pp 番号 ... PPインターフェース
    • tunnel 番号 ... TUNNELインターフェース
  • FILTER_ID ... ip filterコマンドの識別子
  • KEEPALIVE_ID ... ip keepaliveコマンドの識別子
[説明]

パケット転送フィルターを定義する。
IDパラメータは、複数のパケット転送フィルターをグループ化するための識別子である。同じインターフェースに対して複数のパケット転送フィルターを設定するときには、それらのすべてに対して、同じ番号を指定しなければならない。
ORDERパラメータは、評価の順番を示すもので、若い番号を持つものほど優先的に採用される。
FILTER_IDパラメータとしては、ip filterコマンドの識別子を最大16個まで指定できる。複数の識別子を指定したときには、前にあるものが優先的に評価される。前から順に対応するip filterコマンドを調べ、パケットの内容と合致すれば、そのip filterコマンドの設定を採用する。ip filterコマンドの動作がrejectであれば、パケットを転送せずに破棄し、そうでなければ、GATEWAYパラメータで指定したゲートウェイにパケットを転送する。
KEEPALIVE_IDには、ip keepaliveコマンドの識別子を指定する。ここで指定したIPキープアライブの結果がdownであれば、このゲートウェイを使用しない。つまり、該当するip filterコマンドがあったとしても、該当しなかったものとして扱う。
なお、実際に動作させるためには、ip INTERFACE forward filterコマンドも設定する必要がある。

[初期値]

設定されない

インターフェースへのパケット転送フィルターの適用

[書式]
ip INTERFACE forward filter ID
no ip INTERFACE forward filter [ ID ]
[設定値]
  • INTERFACE ... インターフェース
    • LANインターフェイス(lan1、lan2、..)
    • pp ... PPインターフェース
    • tunnel ... TUNNELインターフェース
    • local ... 自分自身が送信するパケットを対象にするときに指定する
  • ID ... ip forward filterコマンドで指定したパケット転送フィルターの識別子 (1..255)
[説明]

インターフェースにパケット転送フィルターを適用する。指定したインターフェースで受信したパケットを、指定したパケット転送フィルターの設定と比較し、転送先のゲートウェイを決定する。

[初期値]

設定されない

ページトップへ戻る