$Date: 2023/07/06 20:22:18 $
パケット転送フィルターは、 ip filterコマンドで定義したフィルターとの比較にもとづいて、 パケットの転送先を決める機能です。 従来のフィルター型ルーティングと似ていますが、 次の2点が大きく異なります。
パケット転送フィルターの処理の位置づけは次のようになっています。
パケット転送フィルターの処理は、ルーティングの処理の直前にあります。 受信したパケットのうち、 パケット転送フィルターで設定した条件に該当するものについては、 その設定にしたがって転送先のゲートウェイを決めます。 一方、該当する条件がないときには、 そのパケットはルーティングの処理にもとづいて、ゲートウェイを決めます。
ヤマハRTシリーズでは、以下の機種およびファームウェアで、パケット転送フィルターをサポートしています。
機種 | ファームウェア |
---|---|
vRX VMware ESXi版 | すべてのリビジョン |
vRX Amazon EC2版 | |
RTX3510 | |
RTX1300 | |
RTX1220 | |
RTX830 | |
NVR700W | |
RTX1210 | |
RTX5000 | |
RTX3500 | |
FWX120 | |
RTX810 | |
RTX1200 | |
RTX3000 | Rev.9.00.24以降 |
RTX1500 | Rev.8.03.68以降 |
RTX1100 | Rev.8.03.68以降 |
RT107e | Rev.8.03.68以降 |
例として、次のような方針でパケットを転送することを考えます。
まず、パケットの条件を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
※ ip filterコマンドのSyslogで出力する内容に準じます。
パケット転送フィルターには、次の制限事項があります。
ID ... | パケット転送フィルターの識別子 (1 .. 255) |
ORDER ... | 評価の順番 (1 .. 255) |
GATEWAY ... | 転送先のゲートウェイ
|
FILTER_ID ... | ip filterコマンドの識別子 |
KEEPALIVE_ID ... | ip keepaliveコマンドの識別子 |
INTERFACE ... | インターフェース
|
ID ... | ip forward filterコマンドで指定した パケット転送フィルターの識別子 (1..255) |