数据包传输过滤

概述

数据包传输过滤功能根据 与ip filter命令定义的过滤进行比较、 决定数据包接收方。 与传统的过滤型路由控制相似, 不过有以下两大差异。

  • 数据包传输过滤与路由控制的处理分别进行。与静态路由或动态路由的设置完全无关。
  • 过滤型路由控制中能够实现网关的负载均衡及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_IDGATEWAY 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)
[说明]

在接口适用数据包传输过滤。将指定的接口中接收的数据包与指定的数据包传输过滤的设置进行比较,决定接收方的网关。

[初始值]

未设置

返回顶部Return to Top