FQDN Filter功能

概要

可以在ip filter 命令的源地址和目标地址中指定FQDN了。
在过滤型路由或数据包转发过滤中,通过使用指定了FQDN的 ip filter命令,可以对没有固定IP地址的服务器或者一个FQDN包含多个固定IP地址的服务器为对象进行路由控制。

限制事项

使用FQDN过滤功能有以下的限制。

  • 使用本功能时,路由器必须以DNS代理服务器运行。
  • 使用本功能的路由器下属的终端,必须指定本路由器为DNS服务器。
  • 指定的FQDN只有通过域名解析得到的IP地址才是过滤的对象。从访问Web服务器得到的HTML文件等中派生出的别的Web服务器的通信或者是重定向等,不是过滤的对象。
  • 检索的顺序为ip host 命令、dns static命令、DNS缓存。
  • 基于本功能而决定的路由记录在fastpath的流列表中,之后相同条件的数据包就在fastpath中进行处理。即使由于DNS缓存的TTL满了而导致改写了DNS信息时,只要流列表中记录的信息不变,fastpath中还是根据之前的目的地进行路由。流列表的信息的寿命可以用ip flow timer 命令进行设置。
  • 必须注意1个IP地址对应多个FQDN的情况。比如,google搜索网站和yotube视频网站可能使用同一个IP地址。按照google是pass、youtube是reject的顺序进行设置的话,在进行了google搜索后访问youtube时,youbute的IP地址和刚才访问的google一致时,youtube也为pass。(google和youtube为不同的IP地址的话,youtube将会按照设置被reject)
  • 本功能只支持IPv4的通信。

对应机型和固件版本

雅马哈路由器以下的机型和固件版本中支持FQDN过滤功能。

机型 固件
RTX820 Rev.11.03.23以后

命令

IP数据包的过滤的设置

[格式]
ip filter filter_num pass_reject src_addr[/mask] [dest_addr[/mask] [protocol [src_port_list [dest_port_list]]]]
no ip filter filter_num [pass_reject ...]
[设置值和默认值]
  • filter_num
    • [设置值]:静态过滤编号 (1~21474836)
    • [默认值]:-
  • pass_reject
    • [设置值]:
      设置值 说明
      pass 一致的话通过 (不记录log )
      pass-log 一致的话通过 (记录log )
      pass-nolog 一致的话通过 ( 不记录log )
      reject 一致的话丢弃 ( 记录log )
      reject-log 一致的话丢弃 (记录log )
      reject-nolog 一致的话丢弃 (不记录log )
      restrict 线路连接时通过,切断时丢弃 ( 不记录log)
      restrict-log 线路连接时通过,切断时丢弃 ( 记录log )
      restrict-nolog线路连接时通过,切断时丢弃 (不记录log )
    • [默认值]:-
  • src_addr ... IP数据包的源地址
    • [设置值]:
      • IP地址
        • A.B.C.D (A~D: 0~255 或者 *)
          • 上述表记中在A~D中填入*的话,表示该8比特对应所有的值
        • 地址中间可以使用-连接2个上述项,表示-之前的上述项,和-之后的上述项之间的范围
        • 可以使用,来设置多个上述项。也可以和FQDN混合设置
      • FQDN
        • 任意的字符串 (半角 255个字符以内。不能使用/ :。因为,用来分隔字符串,所以也不能使用)
        • 以*开始的FQDN是以*之后的字符串作为判断的条件
          例如*.example.co.jp和www.example.co.jp 、mail.example.co.jp等一致
        • 可以使用,来设置多个上述项。也可以和IP地址混合设置
      • * (所有的地址)
    • [默认值]: -
  • dest_addr ... IP数据包的目的地址
    • [设置值]:
      • src_addr相同的形式
      • 省略时和一个*相同
    • [默认值]: -
  • mask ... 网络地址的掩码 (src_addrdest_addr为IP地址时可以设置。FQDN和*时不能设置)
    • [设置值]:
      • A.B.C.D (A~D: 0~255)
      • 0x为首的十六进制数
      • 掩码比特数
      • 省略时为0xffffffff
    • [默认值]: -
  • protocol ... 过滤的数据包的种类
    • [设置值]:
      • 表示协议的十进制数 (0~255)
      • 表示协议的助记符
        助记符 十进制数 说明
        icmp 1 ICMP 数据包
        tcp 6 TCP 数据包
        udp 17 UDP 数据包
        ipv6 41 IPv6 数据包
        gre 47 GRE 数据包
        esp 50 ESP 数据包
        ah 51 AH 数据包
        icmp6 58 ICMP6 数据包
      • 上述项可以用逗号分隔排列 (5个以内)
      • 特殊设置
        icmp-error TYPE 为 3、4、5、11、12、31、32中的 ICMP 数据包
        icmp-info TYPE为 0、8~10、13~18、30、33~36中的 ICMP 数据包
        tcpsyn SYN 含有flag的 tcp 数据包
        tcpfin FIN 含有flag的 tcp 数据包
        tcprst RST 含有flag的 tcp 数据包
        established 允许含有ACK的flag的tcp 数据包从内向外的连接,不允许从外向内的连接
        tcpflag=value/mask
        tcpflag!=value/mask
        TCP的flag的值和mask的值的逻辑与(AND)和value一致,或者不一致的TCP 数据包
        value和mask为以0x 为首的十六进制数0x0000~0xffff
        * 所有的协议
      • 省略时和*相同
    • [默认值]: -
  • src_port_list ... 在protocol中含有任意TCP(tcp/tcpsyn/tcpfin/tcprst/established/tcpflag)、UDP(udp) 时,为TCP/UDP的源端口号。protocol为单独的 ICMP(icmp)时,为ICMP类型。
    • [设置值]:
      • 表示端口号的十进制数
      • 表示端口号的助记符 (一部分)
        助记符 端口号
        ftp 20,21
        ftpdata 20
        telnet 23
        smtp 25
        domain 53
        gopher 70
        finger 79
        www 80
        pop3 110
        sunrpc 111
        ident 113
        ntp 123
        nntp 119
        snmp 161
        syslog 514
        printer 515
        talk 517
        route 520
        uucp 540
        submission 587
      • 可以用-连接2个上述项,表示-之前的上述项,和-之后的上述项之间的范围。
      • 上述项可以用逗号分隔排列(10个以内)
      • * (所有的端口)
      • 省略时和*相同
    • [默认值]: -
  • dest_port_list
    • [设置值]:在protocol中含有任意TCP(tcp/tcpsyn/tcpfin/tcprst/established/tcpflag)、UDP(udp) 时,为TCP/UDP目的端口号。protocol 是 ICMP(icmp)时,为ICMP Code。
    • [默认值]:-
[说明]

设置IP 数据包的过滤。本命令设置的过滤可以被用在 ip filter directed-broadcastip filter dynamicip filter setip forward filterip fragment remove df-bitip interface rip filterip interface secure filterip route命令中。

[Note]

使用restrict-log 和 restrict-nolog,只在线路连接时通过,因此也对不发送到线路的数据包有效。例如,对核准时间的 NTP 数据包也适用。
对于ICMP 数据包、想对ICMP Type和ICMP Code进行过滤检查时,可以在protocol中单独指定 'icmp' 。只有单独在protocol中指定 'icmp'时才会在src_port_list中检查ICMP Type,dest_port_list中检查ICMP Code。在 protocol 中列举了 'icmp'和其他的协议时, 发现src_port_listdest_port_list的指定的TCP/UDP端口号,不进行ICMP 数据包的比较。另外,在protocol中指定了 'icmp-error' 或 'icmpinfo'时,将无视src_port_list和 dst_port_list 中的指定。在protocol中指定为 '*',或者列举了多个包含TCP/UDP的协议时, 发现了src_port_listdest_port_list的指定的 TCP/UDP 端口号,只有数据包为 TCP或者 UDP时才进行端口号的比较。数据包为其他协议 (包含ICMP) 时,src_port_listdest_port_list的指定为不存在的,和过滤进行比较。

在Rev.10.00系列以后的所有固件中,可以在 protocol中指定'tcpsyn'。

RTX1200 Rev.10.01.47以后的固件以及Rev.11.01系列的所有固件中,在src_port_list 或者 dest_port_list中可以指定submission。

RTX1500 / RTX1100 / RT107e Rev.8.03.68 以后,RTX3000 Rev.9.00.31以后的固件中以及Rev.10.00 系列的所有固件中,可以指定 ICMP的type和code。

因为可以在src_addrdest_addr中指定 FQDN ,可以对没有固定IP地址的服务器或者同一FQDN有多个固定IP地址的服务器进行过滤。使用FQDN时,本路由器必须为DNS代理服务器,路由器下属的终端必须设置本路由器为DNS服务器。
src_addrdest_addr中指定FQDN,在RTX810 Rev.11.01.28中可以指定。
发生了和指定的FQDN一致的通信时,符合设置的FQDN的IP地址信息将被保存。保存的期间可以用ip filter fqdn timer命令设置。

[设置例]

在LAN1上收发的IPv4 ICMP ECHO/REPLY通过 pass-log记录7

# ip lan1 secure filter in 1 2 100
# ip lan1 secure filter out 1 2 100
# ip filter 1 pass-log * * icmp 8
# ip filter 2 pass-log * * icmp 0
# ip filter 100 pass * *

从LAN2发送的IPv4 Redirect中,只是不让"for the Host"通过

从LAN2发送的IPv4 Redirect中,只是不让"for the Host"通过
# ip lan2 secure filter out 1 100
# ip filter 1 reject * * icmp 5 1
# ip filter 100 pass * *

FQDN 过滤中使用的缓存的计时器的设置

[格式]
ip filter fqdn timer time [auto=switch]
no ip filter fqdn timer [time]
[设置值和默认值]
  • time
    • [设置值]:秒数 (1~2147483647)
    • [默认值]:600
  • switch
    • [设置值]:
      设置值 说明
      on 使用自动设置
      off 不使用自动设置
    • [默认值]:on
[说明]

设置在FQDN过滤中使用的缓存的计时器。
ip filter名的源地址或者目的地址中设置了FQDN时,发生了和指定的FQDN一致的通信的话,计时器开始工作。在time指定的秒数间,没有发生和FQDN过滤一致的通信的话,将删除对应的FQDN和IP地址的缓存。

auto=on时,计时器将设置为以下值。

  • 使用fastpath的通信,将fastpath的流列表的计时器中最大的值设置为本计时器的值。
  • 不使用fastpath的通信,将time的值作为计时器的值。

auto=off时,一直将 time的值作为计时器的值。

设置例

过滤型路由中,默认路由使用PP1,Microsoft Update使用 PP2

ip filter 1000 pass * update.microsoft.com,*.update.microsoft.com,*.windowsupdate.com
ip filter 1001 pass * download.windowsupdate.com,*.download.windowsupdate.com
ip filter 1002 pass * download.microsoft.com,*.download.microsoft.com
ip filter 1003 pass * wustat.windows.com,ntservicepack.microsoft.com
ip route default gateway pp 2 filter 1000 1001 1002 1003 gateway pp 1

# show ip route
Destination         Gateway          Interface       Kind  Additional Info.
default             -                    PP[02]    static  filter:1000,1001,1002,1003
default             -                    PP[01]    static
192.168.100.0/24    192.168.100.1        LAN1  implicit

过滤中记载的FQDN参考了https://support.microsoft.com/ja-jp/kb/888764

数据包转发过滤中,默认路由使用PP1,google相关的使用 PP2

ip route default gateway pp 1
ip lan1 forward filter 100
ip filter 2000 pass * *.google.co.jp,*.google.com
ip forward filter 100 1 gateway pp 2 filter 2000

相关技术资料

返回顶部Return to Top