You are on page 1of 2

防火墙包过滤、源 NAT 调试命令:match 帮助手册

1. 命令格式
[DPTECH-Developer-Shell] match -h
Usage: match [table] [options]
Tables include:
--pf pf_policy
--snat snat
Options include:
-s, --sip ip Source address
-d, --dip ip Destination address
-p, --proto proto Layer 4 Protocol number, eg. 6
-q, --sport port Source port
-r, --dport port Destination port
-m, --szone zone_id Source security zone
-n, --dzone zone_id Destination security zone
-i, --ifindex ifindex Packages out ifindex in snat
-b, --debug Match debug enable

2. 应用举例
1) 包过滤
一个报文从 untrust 域到 trust 域,源 IP 为 192.168.0.11,目的 IP 为 10.11.9.5,协议为
tcp(协议号 6),源端口为 2800,目的端口为 80,需要查看此条流量是否能匹配上包过
滤可以使用如下命令:

match --pf -m 3 -n 1 -s 192.168.0.11 -d 10.11.9.5 -p 6 -q 2800 -r 80

其中-m 表示源安全域的 ID,-n 表示目的安全域的 ID,此两项为必选项,因为包过滤是基


于安全域的,所以查找包过滤必选定出入方向的安全域。
目前暂不支持使用安全域名称和协议名称,只能使用安全域 ID 和协议号来查找。如源域
untrust 的 ID 为 3,目的域 trust 的 ID 为 1,就使用-m 3 –n 1。

2) 源 NAT
一个报文源 IP 为 192.168.0.11,目的 IP 为 10.11.9.5,协议为 tcp(协议号 6)。源端口
为 2800.,目的端口为 80,根据路由查得此报文重 vlan-if13 口转发出设备,需要查看此
条报文是否做源 NAT,可以使用如下命令:

match --snat -s 192.168.0.11 -d 10.11.9.5 -p 6 -q 2800 -r 80 -i 0x300000c

其中-i 表示报文出接口的 ifindex,此项为必选项,因为源 NAT 是基于出接口配置,所以


查找源 NAT 必选选定出接口。
目前暂不支持直接使用接口名称和协议名称查找,只能使用接口的 ifindex 和协议号来查
找。如接口 vlan-if13 的 ifindex 为 0x300000c,就用-i 0x300000c。
(文档中提到的参数查看方式:
在业务板上:

[DPTECH-Developer-Shell]echo   "vlan 15" > /proc/net/hs_table 
[DPTECH-Developer-Shell]cat /proc/net/hs_table 
vlan name vlan-if15
ifindex 0x300000f
zone id 1 ,zone_priority 0
mac 00:24:ac:ff:fc:05
the device in vlan 15 is : 0x200000f 
[DPTECH-Developer-Shell]
)

You might also like