华为防火墙故障案例:FW接收到正向报文,但未正确转发
现象描述
FW未正确转发报文,可能是物理链路故障导致,也可能是网络层或应用层相关的配置不当导致。
对于网络层或应用层转发的故障,不同业务场景问题现象不一样,请根据不同的业务场景,判断FW是否正确转发报文。
相关告警与日志
无
原因分析
- 接口链路故障。如接口速率与对端不匹配、接口网线接触不良、接口网线老化等。
- 不同业务场景下,网络层或应用层相关配置不当。
操作步骤
- 接口链路故障。
执行display interface interface命令查看接口下是否存在错包,如果存在,则表明接口链路存在故障。
<sysname> display interface GigabitEthernet 1/0/1 GigabitEthernet1/0/1 current state : UP Line protocol current state : UP ... Input: 277618 packets, 46890659 bytes 275866 unicasts, 1740 broadcasts, 12 multicasts, 0 pauses 0 overruns, 0 runts, 0 jumbos, 0 FCS errors 0 length errors,? 0 code errors, 0 align errors 0 fragment errors,? 0 giants, 0 jabber errors 0 dribble condition detected,? 0 other errors Output: 303774 packets, 157242945 bytes 285539 unicasts, 6 broadcasts, 18229 multicasts, 0 pauses 0 underruns, 0 runts, 0 jumbos, 2343 FCS errors 0 fragment errors, 0 giants, 0 jabber errors 0 collisions, 0 late collisions 0 ex. collisions, 0 deferred, * other errors
接口链路故障的常见可能原因及处理方法如下表所示。
表1 接口链路故障 可能原因
处理方法
接口速率与对端不匹配
进入接口配置界面,在“高级”选项中,调整接口速率与对端保持一致,或者勾选“自协商”启动接口自协商模式。
接口网线接触不良
将接口网线重新拔插后重新测试。
接口网线老化
更换接口网线后重新测试。
- 不同业务场景下,网络层或应用层相关配置不当。
- 多出口场景下,通过查看会话确定出接口或下一跳地址是否符合预期。
<sysname> display firewall session table verbose destination global 10.1.2.1 http vpn: public --> public ID: a58f39198cd38484085ac40960 Create Time :2018-04-03 23:08:16 Zone: local --> untrust TTL: 00:00:05 Left: 00:00:02 Recv Interface: InLoopBack0 Interface: GigabitEthernet1/0/1 NextHop: 10.1.2.2 MAC: 0000:5e00-0143 <--packets: 0bytes:0 --> packets:1 bytes:44 10.1.1.1:56495 --> 10.1.2.1:80 PolicyName: Policy_sec_out
多出口场景下转发异常的可能原因及处理方法如下表所示。
表2 多出口场景转发异常 可能原因
处理方法
存在等价路由,FW自动选择出接口
请针对业务流量配置明细路由。
明细路由不正确
修改明细路由。
- 需要做地址转换的场景下,通过查看会话确定是否正确完成地址转换。
<sysname> display firewall session table verbose Current Total Sessions : 1 icmp VPN:public --> public ID: a58f3fe91023015aa15344e75b Zone: local--> trust TTL: 00:00:20 Left: 00:00:09* Interface: GigabitEthernet0/0/0 NextHop: 192.168.2.2 MAC: 4437-e697-78fe <--packets:3 bytes:252 -->packets:3 bytes:252 192.168.1.1:43985[1.1.1.1:2107]-->192.168.2.2:2048
需要做地址转换的场景下转发异常的可能原因及处理方法如下表所示。
表3 地址转换场景转发异常 可能原因
处理方法
到达外网的流量未做NAT
配置源NAT策略,用于对到达外网的流量进行NAT。
NAT模式为No-PAT,即NAT转换时只转换地址,不转换端口,公网地址和私网地址一对一映射,导致只有一个或部分地址能上网。
若无特殊需求,请将NAT模式修改为NAPT模式,即允许转换时同时转换地址和端口。
- FW作为DNS代理的场景下,如果出现网络故障,在FW上通过域名向目标服务器发起ping测试,如sec.huawei.com,确认是否可以识别域名。
如果无法识别,请在FW上配置相应的DNS服务器后再做ping测试。
- IPSec场景下,如果IPSec隧道建立成功后网络不通,执行display ipsec sa命令查看IPSec安全联盟的信息。如下所示,Outbound和Inbound方向的报文计数均为1,表示流量并未经过IPSec隧道传输。
<sysname> display ipsec sa ipsec sa information: =============================== Interface: Vlanif100 =============================== ----------------------------- IPSec policy name: "20" Sequence number : 4 Acl group : 3203 Acl rule : 0 Mode : ISAKMP ----------------------------- Connection ID : 2163 Encapsulation mode: Tunnel Holding time : 0d 0h 0m 24s Tunnel local : 192.168.1.1 Tunnel remote : 192.168.2.1 Flow source : 172.16.1.0/255.255.255.0 0/0 Flow destination : 172.16.2.0/255.255.255.0 0/0 [Outbound ESP SAs] SPI: 80050620 (0x4c579bc) Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1 SA remaining key duration (kilobytes/sec): 1843200/3577 Max sent sequence-number: 1 UDP encapsulation used for NAT traversal: N SA encrypted packets (number/bytes): 0/0 [Inbound ESP SAs] SPI: 2281786057 (0x88014ac9) Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1 SA remaining key duration (kilobytes/sec): 1843200/3577 Max received sequence-number: 1 UDP encapsulation used for NAT traversal: N SA decrypted packets (number/bytes): 0/0 Anti-replay : Enable Anti-replay window size: 1024
IPSec场景下转发异常的可能原因及处理方法如下表所示。
表4 IPSec场景下转发异常 可能原因
处理方法
未匹配感兴趣流
请检查流量的源目的IP是否和配置的acl匹配。
协商报文做了NAT处理
- 查看端口号为500或4500的会话,确认协商报文是否做了NAT。
- 若协商报文做了NAT,请在两端设备配置NAT策略,使协商报文不做NAT处理。
感兴趣流做了NAT
- 从一端的内网ping对端内网地址,在FW上查会话,确认流量是否做了NAT。
- 针对感兴趣流配置NAT策略,使感兴趣流不做NAT处理。
两端设备的认证算法实现不一致,交互报文认证失败
- 通过display ipsec statistics命令查看是否有因IPSec认证算法认证失败而产生的丢包:
<sysname> display ipsec statistics IPSec statistics information: ... dropped security packet detail: can not find SA: 0, wrong SA: 0 authentication: 34, replay: 0
- 调整认证算法后测试观察。
FW上配置的NAT Server生成了反向的Server-map表,导致隧道流量命中该表项
找出对应的NAT Server配置,给该配置增加no-reverse参数。
多出口场景,开启了IP欺骗攻击防范功能后,路由反查导致丢包
多出口场景下请执行undo firewall defend ip-spoofing enable命令关闭IP欺骗攻击防范。
IPSec隧道异常
请参考故障处理:IPSec。
- 如果FW上配置了内容安全过滤,先在允许的情况下取消引用内容安全相关配置或者执行engine bypass命令开启IAE Bypass状态后,查看网络是否恢复正常。如果是的话,则代表是内容安全配置引起。此场景下转发异常的可能原因及处理方法如下表所示。
表5 内容安全过滤转发异常 可能原因
处理方法
内容安全相关的配置阻断了流量
结合业务需要,调整内容安全相关配置,实现精细化控制。
来回路径不一致的场景下不支持内容安全过滤,如:双机热备负载分担模式下,可能出现正向流量经过主机而反向流量经过备机,如果配置了邮件过滤功能,可能导致邮件收发异常。
如需配置内容安全,请确保来回路径一致,否则可能导致业务异常。
- 转发多通道协议等业务流量场景中,通常需要配置ASPF/NAT ALG功能。执行display firewall session table命令查看会话。如表所示,“+”表示该会话对应的流量经过了ASPF/NAT ALG处理。
<sysname> display firewall session table Current Total Sessions :1 syslog VPN: public --> public 10.1.1.1:38514+ --> 10.1.2.1:514
转发多通道协议等业务流量场景中,转发异常的可能原因及处理方法如下表所示。
表6 多通道协议业务转发异常 可能原因
处理方法
未开启ASPF/NAT ALG功能
- 先执行reset firewall session table指定具体参数清空相应会话,再执行reset firewall server-map命令清空server-map表。
- 执行firewall detect protocol 或detect protocol命令开启对应协议的ASPF/NAT ALG功能。
- 验证网络是否恢复正常。
不需要开启ASPF/NAT ALG功能,但实际开启了ASPF/NAT ALG功能
比如,对于SIP协议,终端设备已经开启了NAT ALG功能的情况下,如果中间设备也开启了NAT ALG,可能会导致转发异常。
- 先执行reset firewall session table指定具体参数清空相应会话,再执行reset firewall server-map命令清空server-map表。
- 执行undo detect protocol命令关闭对应协议的ASPF/NAT ALG功能。
- 验证网络是否恢复正常。
多通道协议使用的端口为非知名端口,FW无法识别
- 通过port-mapping命令配置端口映射使FW能够把该业务识别为知名应用。
- 若配置端口映射后ASPF/NAT ALG功能仍然未生效,需要请发起方调整为知名端口。
- 跨虚拟系统转发场景中,如果在其中一个虚拟系统中能查看到会话,而另一个虚拟系统中没有会话,则可能是FW上的路由配置错误,请检查跨虚拟系统的路由配置。
- 多出口场景下,通过查看会话确定出接口或下一跳地址是否符合预期。