Print

某局点PBR异常问题处理经验案例

2019-10-25 发表

组网及说明

某局点出口是一台MSR G2,下联核心交换机,上联公网设备。


问题描述

原先业务一直正常,近期采购一台第三方厂商的审计设备,旁挂于MSR,希望内网流量上网时经过审计设备。在内网口部署策略路由强制上审计设备后,发现内网上不了外网了

过程分析


1.未使用策略路由时,ping公网网关正常:

ping 60.60.0.1
Ping 60.60.0.1 (60.60.0.1): 56 data bytes, press CTRL_C to break
56 bytes from 60.60.0.1: icmp_seq=0 ttl=254 time=10.000 ms
56 bytes from 60.60.0.1: icmp_seq=1 ttl=254 time=1.000 ms
56 bytes from 60.60.0.1: icmp_seq=2 ttl=254 time=1.000 ms
56 bytes from 60.60.0.1: icmp_seq=3 ttl=254 time=1.000 ms
56 bytes from 60.60.0.1: icmp_seq=4 ttl=254 time=1.000 ms

--- Ping statistics for 60.60.0.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.000/2.800/10.000/3.600 ms
< H3C>%Dec 13 17:40:14:345 2017 H3C PING/6/PING_STATISTICS: Ping statistics for 60.60.0.1: 5 packet(s) transmit                   ted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 1.000/2.800/10.000/3.600 ms.

2.审查组网思路,在内网接口用策略路由将内网流量强制上审计设备,审计设备用默认路由指向防火墙,在防火墙上再匹配默认路由指向公网出口,部署思路也没有问题。

3.调用策略路由后ping公网网关不通:

ping 60.60.0.1
Ping 60.60.0.1 (60.60.0.1): 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out

--- Ping statistics for 60.60.0.1 ---
5 packet(s) transmitted, 0 packet(s) received, 100.0% packet loss
< H3C>%Dec 13 17:45:41:409 2017 H3C PING/6/PING_STATISTICS: Ping statistics for 60.60.0.1: 5 packet(s) transmitted, 0 packet(s) received, 100.0% packet loss.

4.tracert测试转发路径,发现流量从内网口匹配策略路由后上了审计设备,然后在防火墙设备和审计设备之间来回转发,路由环路导致上外网不通。

tracert 60.60.0.1
traceroute to 60.60.0.1 (60.60.0.1), 30 hops at most, 40 bytes each packet, press CTRL_C to break
 1  192.168.1.1 (192.168.1.1)  1.000 ms  1.000 ms  0.000 ms
 2  192.168.0.20 (192.168.0.20)  2.000 ms  0.000 ms  0.000 ms
 3  192.168.0.10 (192.168.0.10)  1.000 ms  1.000 ms  1.000 ms
 4  192.168.0.20 (192.168.0.20)  1.000 ms  4.000 ms  3.000 ms
 5  192.168.0.10 (192.168.0.10)  2.000 ms  1.000 ms  2.000 ms
 6  192.168.0.20 (192.168.0.20)  1.000 ms  2.000 ms  5.000 ms
 7  192.168.0.10 (192.168.0.10)  2.000 ms  1.000 ms *
 8  192.168.0.20 (192.168.0.20)  2.000 ms  3.000 ms  7.000 ms
 9  * 192.168.0.10 (192.168.0.10)  3.000 ms  3.000 ms
10  192.168.0.20 (192.168.0.20)  4.000 ms  6.000 ms  3.000 ms
11  192.168.0.10 (192.168.0.10)  2.000 ms  4.000 ms  2.000 ms
12  192.168.0.20 (192.168.0.20)  6.000 ms  3.000 ms  2.000 ms
13  192.168.0.10 (192.168.0.10)  3.000 ms  6.000 ms  2.000 ms
14  192.168.0.20 (192.168.0.20)  3.000 ms  2.000 ms  5.000 ms
15  192.168.0.10 (192.168.0.10)  4.000 ms  3.000 ms  2.000 ms

5.查看相应的快速转发表项,发现到公网网关的流量一直只匹配到出接口GE1/0/2,没有从GE1/0/0出去,导致环路。

[H3C]dis ip fast-forwarding cache
Total number of fast-forwarding entries: 2
SIP             SPort DIP             DPort Pro Input_If    Output_If   Flg
192.168.1.2     273   60.60.0.1       2048  1   GE1/0/1     GE1/0/2     1
60.60.0.1       273   192.168.1.2     0     1   GE1/0/2     N/A         1
 

6.查询防火墙的转发模式,默认情况下,不关心报文入接口,只关心报文的五元组情况,只要五元组相同,入接口不同的流量建立的是相同的快转表项,从而导致转发失败。

 

将默认的快转负载分担功能关闭后(undo ip fast-forwarding load-sharing),关心报文入接口,五元组相同,入接口不同的流量会建立新的快转表项,内网能正常访问外网。

[H3C]dis ip fast-forwarding cache
Total number of fast-forwarding entries: 4
SIP             SPort DIP             DPort Pro Input_If    Output_If   Flg
192.168.1.2     274   60.60.0.1       2048  1   GE1/0/2     GE1/0/0     1
192.168.1.2     274   60.60.0.1       2048  1   GE1/0/1     GE1/0/2     1
60.60.0.1       274   192.168.1.2     0     1   GE1/0/0     GE1/0/1     1
60.60.0.1       274   192.168.1.2     0     1   GE1/0/2     N/A         1

解决方法

默认情况下,V7防火墙不关心报文入接口,只要五元组相同,入接口不同的流量建立的是相同的快转表项,当配置命令undo ip fast-forwarding load-sharing后,关心报文入接口,五元组相同,入接口不同的流量会建立新的快转表项。