1.7 配置注意事项和故障排除指导
1.7.1 安全区域
在防火墙上创建一个新的安全区域后,必须为该安全区域配置安全级别,否则无法将接口加入到安全区域中,如下所示。
[FW]firewall zone name abc [FW-zone-abc]add interface GigabitEthernet 0/0/1 Error: Please set the priority on this zone at first.
为安全区域配置安全级别的操作如下,安全级别全局唯一,不能和已经存在的安全区域的级别相同。
[FW-zone-abc]set priority 10
我们在使用安全区域的时候,最容易出现的问题就是忘记把接口加入安全区域。由于接口没有加入安全区域,防火墙在转发报文的时候无法判断报文的路线,无法确定域间关系,最终导致防火墙将报文丢弃,业务不通。
此时,我们可以使用display zone命令来查看防火墙上安全区域的配置情况以及接口加入安全区域的情况,检查我们用到的接口是否加入安全区域。
[FW]display zone
local
priority is 100
#
trust
priority is 85
interface of the zone is (1):
GigabitEthernet0/0/1
#
untrust
priority is 5
interface of the zone is (1):
GigabitEthernet0/0/2
GigabitEthernet0/0/3
#
dmz
priority is 50
interface of the zone is (0):
#
abc
priority is 10
interface of the zone is (0):
#
另外,业务不通时,我们还可以从丢包这个角度来排除故障。使用display firewall statistic system discard命令查看防火墙的丢包统计信息,如果发现如下信息,说明防火墙因为无法确认域间关系而丢包。
[FW]display firewall statistic system discard Packets discarded statistic Total packets discarded: 5 Interzone miss packets discarded: 5
造成上述丢包的原因就是接口没有加入安全区域。此时就可以进一步检查接口是否加入安全区域了,可见通过查看防火墙丢包信息能比较快速地定位问题所在。
1.7.2 状态检测和会话机制
状态检测防火墙核心的技术就是分析通信双方的连接状态,然后建立会话辅助后续报文转发。所以当业务不通时,在防火墙上检查会话是否成功建立,也是一个定位故障的重要切入点。
配置完成后,如果业务不通,我们可以在防火墙上使用display firewall session table命令查看是否存在该业务的会话,然后分情况进一步排查。
1.防火墙上不存在该业务的会话
如果防火墙上没有为该业务建立会话,可能的原因包括:第一,业务报文没有到达防火墙;第二,业务报文被防火墙丢弃。对于第一个原因,我们需要确认业务报文在到达防火墙之前是否经过了其他的网络设备,是否被这些网络设备丢弃。如果确认其他网络设备没有问题,此时就要把排查的关注点聚焦在报文被防火墙丢弃这个环节。
我们依然使用display firewall statistic system discard命令查看防火墙的丢包统计信息,除了因为无法确认域间关系而导致的丢包之外,如果发现如下信息,说明防火墙因为无法找到ARP表项而丢包。
[FW]display firewall statistic system discard Packets discarded statistic Total packets discarded: 2 ARP miss packets discarded: 2
造成上述丢包的原因可能是防火墙无法从上下行设备获得ARP表项,此时需要检查防火墙上下行连接的设备的ARP功能是否工作正常。
如果发现如下信息,说明防火墙因为无法找到路由而丢包。
[FW]display firewall statistic system discard Packets discarded statistic Total packets discarded: 2 FIB miss packets discarded: 2
造成上述丢包的原因是防火墙上的路由配置出现问题,此时应该检查防火墙上是否存在去往目的地址的路由。
如果发现如下信息,说明防火墙因为无法找到会话而丢包。
[FW]display firewall statistic system discard Packets discarded statistic Total packets discarded: 2 Session miss packets discarded: 2
造成上述丢包的原因可能是防火墙只收到了后续报文,没有收到首包报文,此时请检查网络环境中是否存在报文来回路径不一致的情况。如果需要的话,可以在防火墙上执行undo firewall session link-state check命令关闭状态检测功能,然后再验证业务是否正常。
如果发现如下信息,说明防火墙因为创建会话失败而丢包。
[FW]display firewall statistic system discard Packets discarded statistic Total packets discarded: 2 Session create fail packets discarded: 2
造成上述丢包的原因可能是防火墙上的会话数量已经达到规格限制,无法再创建新的会话。此时应该检查防火墙上是否存在大量的其他业务的会话,并且长时间没有老化,占用了系统资源。例如,防火墙上存在大量DNS会话,但是会话中的报文个数统计量很少,几乎没有后续报文,此时就可以将DNS的会话老化时间缩短为3s,使其加速老化,配置命令如下。
[FW]firewall session aging-time dns 3
2.防火墙上存在该业务的会话
如果防火墙上已经为该业务建立了会话,我们还要使用 verbose 参数进一步观察会话的信息。如果发现如下信息,说明会话的正向方向上有统计信息(有报文经过),而反向方向上没有统计信息(没有报文经过)。
[FW]display firewall session table verbose Current Total Sessions : 1 icmp VPN:public-->public Zone: trust-->untrust TTL:00:00:10 Left:00:00:04 Interface: GigabitEthernet0/0/1 NextHop:172.16.0.1 MAC:54-89-98-fc-36-96 <--packets:0 bytes:0 -->packets:5 bytes:45 192.168.0.1: 54187-->172.16.0.1:2048
造成会话反向方向上没有统计信息的原因可能是回应报文没有到达防火墙或者回应报文被防火墙丢弃,此时应首先检查报文在到达防火墙之前是否被其他网络设备丢弃,然后在防火墙上查看丢包统计信息,参考上面介绍过的内容,根据显示结果进行相应的处理。
强叔提问
1.防火墙和交换机、路由器的主要区别是什么?
2.我们常说的第一代、第二代和第三代防火墙都指的是哪些防火墙?
3.被业界权威的第三方安全测评机构NSS实验室评为最快防火墙的是华为哪一款防火墙产品?
4.请分别说出防火墙上默认的Local、Trust、DMZ和Untrust安全区域的安全级别。
5.给出如下一条会话,大家能指出里面的五元组信息吗?
telnet VPN:public-->public 192.168.0.2:51870-->172.16.0.2:23
6.防火墙关闭状态检测功能后,对于收到的SYN+ACK类型的TCP报文,如果防火墙上配置的规则允许报文通过,那么防火墙接下来如何处理该报文?