作者:网络之路一天  首发公众号:网络之路博客(ID:NetworkBlog)

回顾下传统选路的几种方式

(1)负载均衡:有两条默认路由同时存在路由表,防火墙通过算法自动选择一条线路出去。

(2)主备模式:配置了优先级,比如默认走电信,联通备用。

(3)基于内网的“负载分担”:比如某几个网段走电信,某几个网段走联通

(4)基于ISP选路:比如电信走电信、联通走联通

 

 

两条外线都是同一个运营商场景

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_DNS


两个外网线路是不同运营商场景

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_运营商_02


上面对四种方式的作用与场景做了一个简单的回顾,对于外网线路而言,无法就两种典型的场景,一个是都是同一个运营商,另外一种就是两个外网线路不是同一个运营商,那么针对这些方式以及场景,博主来以上面两个拓扑来讲解这四种传统的选路方式,这一篇主要讲解主备方式,以及在主备方式中会遇到哪些问题。

 

主备方式会遇到哪些问题

主备方式其实适用于所有场景,只要客户要求说要求主备,不管是同一个运营商还是不同的运营商都是可以的,虽然说是万金油,但是需要注意一些问题

(1)不管哪种场景,防火墙需要能够感知到主用线路故障,这个感知不单单是说物理线路,更多的是它的连通性。(比如电信的线路是好的,但是就是没有网络的情况)

(2)DNS问题,在同一个运营商的场景,DNS都使用的一个场景的没任何问题,但是如果是不同运营商的场景,那么DNS该如何去分配给客户端呢?都分配电信的DNS,那么一旦电信出现问题,切换到联通,导致解析过慢或者失败的问题,如果主用电信 备用联通,对于切换到联通后,还是会存在延迟问题。

 

解决问题一:防火墙感知线路故障

总结出来了会出现哪些问题,那么就要解决它,想让防火墙能够感知到线路的故障,不管是物理直连的还是相对于直连身后的互联网,必须定一个监控点,通过这个监控点的连通性来决定该线路是否是好的,竟然监控点决定了这个线路的好坏,所以在实际中建议搭建选择靠谱点的监控点,比如公有阿里云的DNS 223.5.5.5、114.114.114.114以及百度的180.76.76.76,这样不至于监控点出问题让防火墙误以为线路故障了。在USG防火墙中,监控某个点的技术有三个个技术一个是ip-link,一个是NQA、一个是BFD,这里比较推荐用ip-link,主要配置简单,配合切换最适合了,而BFD与NQA则会繁琐一些。ip-link的原理是我们在配置定义的时候,可以指定的目的IP周期性地发送探测报文并等待应答,来判断链路是否发生了故障。(配置会在实验环境进行演示)

 

解决问题二:DNS问题

如果客户环境多个线路不是同一个运营商的场景,DNS的分配建议是直接使用公有DNS,比如阿里云、114或者百度的,这样不管从电信的线路出去还是联通的线路出去,这些公有DNS都能够为你解析,也解决了不管目前主用线路是电信还是联通都能够解析,客户不需要关心DNS的问题,唯一的确定就是比起电信、联通自己的DNS速度解析方面差那么一点点。

 

实际案例:多ISP外网下的主备组网

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_03

客户环境:内网有两个网段,网关都在核心,防火墙上面接了双线路,一个电信、一个联通,希望默认都走电信,当电信线路出现故障后,能够自动切换到联通,保证网络通畅。都22篇了,交换机跟防火墙的基础配置就不在过多的讲解了,这里给出配置,电信、联通、边缘路由器根据自己规划跑个OSPF能通就行。

 

1、核心交换机配置

sysname Core

#

vlan batch 10 20 255

#

dhcp enable

#

interface Vlanif10

 ip address 192.168.10.254 255.255.255.0

 dhcp select interface

 dhcp server dns-list 223.5.5.5 114.114.114.114

#

interface Vlanif20

 ip address 192.168.20.254 255.255.255.0

 dhcp select interface

 dhcp server dns-list 223.5.5.5 114.114.114.114

#

interface Vlanif255

 ip address 192.168.255.1 255.255.255.0

#

interfaceGigabitEthernet0/0/1

 port link-type access

 port default vlan 10

#

interfaceGigabitEthernet0/0/2

 port link-type access                   

 port default vlan 10

#

interfaceGigabitEthernet0/0/3

 port link-type access

 port default vlan 20

#

interfaceGigabitEthernet0/0/4

 port link-type access

 port default vlan 20

#

interfaceGigabitEthernet0/0/24

 port link-type access

 port default vlan 255

#

ip route-static 0.0.0.00.0.0.0 192.168.255.2

 

2、防火墙基础配置

#

interfaceGigabitEthernet1/0/0

 undo shutdown

 ip address 192.168.255.2 255.255.255.0

#

interfaceGigabitEthernet1/0/1

 undo shutdown

 ip address 202.100.1.1 255.255.255.0

#

interfaceGigabitEthernet1/0/2

 undo shutdown

 ip address 61.128.1.1255.255.255.0

#

firewall zone trust

 set priority 85

 add interface GigabitEthernet1/0/0

#

firewall zone untrust

 set priority 5

 add interface GigabitEthernet1/0/1

 add interface GigabitEthernet1/0/2

#

security-policy

 rule name internet

  source-zone trust

  destination-zone untrust

  source-address 192.168.10.0 mask255.255.255.0

  source-address 192.168.20.0 mask255.255.255.0

  action permit

#

nat-policy

 rule name internet

  source-zone trust

  destination-zone untrust

  action source-nat easy-ip

#

ip route-static192.168.10.0 255.255.255.0 192.168.255.1

ip route-static192.168.20.0 255.255.255.0 192.168.255.1

#

 

3、主备线路配置(重点)

主备在实际中最常用的就是默认走电信或者联通,另外一根做备用,当出现问题后能够自动切换,保证网络通畅。在之前的讲解中说过,想要能够让防火墙去感知线路出现了故障,那么就需要找到一个监测点,这里就以实际中常用为主223.5.5.5,监控这个,一旦这个出现故障就切换,这里采用ip-link技术

 

[USG6000V1]ip-link  check enable   //开启ip-link检测

[USG6000V1]ip-linkname dx    //起一个ip-link进程的名字,可以定义很多监测点

[USG6000V1-iplink-dx]destination223.5.5.5 interface GigabitEthernet1/0/1 mode icmp next-hop 202.100.1.2   //建议完整参数都调用,这里表示用G1/0/1接口的地址下一跳网关是202.100.1.1发送ICMP出去访问223.5.5.5,配置这个后,防火墙会周期性的从1口发包出去ping 223.5.5.5,如果通,则状态显示up,如果不通则状态显示down。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_04

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_运营商_05


当刚配置完后,防火墙上面有提示,检测失败,状态变成了down,并且display ip-link也可以看到状态。在配置防火墙的时候我们漏掉了一个地方没配置,那就是出口的配置,竟然是主备模式,那自然是一主一备,对于在防火墙上面的体现就是用两条默认路由,优先级不一样,主的优先级高,备用的优先级低就可以了。

 

[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 202.100.1.254

[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 61.128.1.254preference 70


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_DNS_06


路由表只会显示优先级高的那条。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_07


当我们配置默认路由后,神奇的事情发生了,ip-link起来了,为什么说神奇呢,因为博主之前一直在强调一个事情,就是防火墙自身的流量发出去一定要通过安全策略放行local的流量,但这次的安全策略并没有放行Local的流量,它能够通。(PS:这里博主查了资料,在V2R5版本后,ip-link是不受安全策略的影响,不需要放行Local的策略的,但是如果说遇到早期的下一代防火墙 V1版本,注意下,如果一直没起来,则放行下Local安全策略,你会发现就up了,不过博主还是强烈建议配置Local的策略放行,在测试与排错非常方便。)

 

ip-link虽然up了,这样还不够,这个时候可以分析下,主备切换的主要依靠就是那两条默认路由,通过优先级控制的,默认走的电信,如果主用线路发生了故障,但是默认路由它会存在,那路由表的路由会一直存在这条优先级高的,永远不会切换到联通这条备用线路,所以这个时候需要把ip-link与默认主线路路由做一个关联,当ip-link失效后,所关联的主路由也随之失效。

 

[USG6000V1] ip route-static 0.0.0.0 0.0.0.0 202.100.1.2 track ip-link dx

 

这个时候来验证测试下,是否生效,可以把电信另外一边的口直接shutdown,模拟线路出问题的故障。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_运营商_08

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_09

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_10

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_11

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_运营商_12


可以看到,当把电信另外一边的接口关闭模拟故障后,ip-link直接发出提示,状态变成了down,由于变成了down状态,所关联的电信默认路由自然就失效了,路由被直接切换到了联通线路。

 

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_DNS_13



客户端测试ping 223.5.5.5也是通的。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_DNS_14


现在走的是联通的,因为电信的出现了故障,这个时候可以把电信的线路恢复下。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_15

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_DNS_16


这个时候ip-link检测到线路恢复了,状态变成up,自然对应的主路由也随之恢复,线路切换到了电信。


华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_运营商_17


客户端长ping测试,切换没有带来丢包,当然实际中根据应用APP感知的不同,可能出现的情况也不一样,有的可能会卡顿一下,有的可能需要重新登录,总体来说影响是不大的。

 

注意事项总结

在我们遇到有主备线路切换的时候,那么要注意几点。

(1)DNS问题,如果双线路不是同一个运营商,建议使用公有DNS下发,这样保障线路切换的时候客户端不受影响

(2)定义ip-link,注意先开启,然后在创建ip-link进程,在定义的时候,建议关联接口、模式以及下一跳(这里说明下,如果是拨号口的话则不需要写下一跳)

(3)设置双线路路由的优先级,主路由如果不加优先级默认是60,并且直接关联ip-link到主路由,备用路由优先级则必须是60以上,(这里一定要注意,有的朋友习惯在WEB界面配置,直接把网关填写了,在这个地方填写了网关,优先级是无法更改的,所以如果双线路,又是主备的情况下,一定用静态路由的配置方式。)

(4)防火墙其余的配置只要接口地址对接以及安全策略、NAT策略配置正确的话,就不会出现什么情况,如果出现问题根据之前学到的依次排查即可。

华为防火墙智能选路篇之传统方案(主备方式会遇到哪些问题)_优先级_18

 作者:网络之路一天  首发公众号:网络之路博客(ID:NetworkBlog)