一、概况
- 背景介绍
现今企业多是有两条出口宽带连接两个运营商,这是出于冗余性考虑,防止出现单条链路的故障导致的必须业务流量传输的中断;
这种在出口设备上(如防火墙)的配置并不是完全是作为主备链路使用(即主用一条,另一条在主用的链路出现故障时才临时使用)
在多数情况下,出口设备(如防火墙)是配置的负载均衡(通过策略路由的方式来引导两股不同IP的流量从不同的运营商侧线路走,即两条链路都使用)且在出现链路故障的时候可以自动切换传输流量的线路;又由于出口设备还需要配置NAT,所以还需要配置故障时NAT的自动切换。
我们接下来就选择下图中的其中一个防火墙来详细展开配置说明(客户端侧的路由器使用默认路由来作为出口路由,如果是使用BGP则情况更为复杂,我们先不考虑这种情况)
注:不同流量的IP有三种类型
(一)源IP不一样
(二)目的IP不一样
(三)源IP和目的IP都不一样
- 配置位置
二、客户需求
(本文只基于需求一做的实验,后面两种思路相同读者可以自己尝试)
需求类型一:基于不同的源IP对访问同一目的IP的流量进行分流处理
需求类型二:基于不同的目的IP对访问同一目的IP的流量进行分流处理
需求类型三:基于不同的源目IP对访问同一目的IP的流量进行分流处理
三、实现功能图解
- 功能示意图
- 出现故障自动切换
四、基础配置说明
- 拓扑
- 基础配置
- 各设备接口IP配置
如图所示;- R1路由器
o 配置两个环回接口L 1和L 2用于模拟内网的流量;
o 开启OSPF流量和防火墙内网接口建立OSPF邻居共享链路信息(包括环回接口);
o 接收并配置由防火墙的OSPF进程下发的默认路由。- Firewall
o 开启内网端口的OSPF进程,和R1建立OSPF邻居
o 配置两个出口默认路由
五、主要配置说明
- 配置思路
- 配置的顺序
o 从内部到外部进程执行的顺序是:策略路由->路由->NAT;
o 所以,配置的顺序也是策略路由->路由->NAT;- 总体思路
o 策略路由和默认路由可以通过Track+sla的联动实现热备切换,来切换相应流量的出接口,策略路由有两种思路后面再细说
o NAT可以和路由图进行联动,通过匹配对应流量的源IP以及出接口来进行对应的出接口的NAT转换
- 具体配置
目前配置设备:FireWall
配置部分零、配置SLA+Track
a、配置SLA1来检测去往ISP1的线路状况
ip sla monitor 1
type echo protocol ipIcmpEcho 23.23.23.3 source-interface Serial2/0
frequency 5
ip sla monitor schedule 1 life forever start-time now
b、配置SLA2来检测去往ISP2的线路状况
ip sla monitor 2
type echo protocol ipIcmpEcho 24.24.24.4 source-interface Serial2/1
frequency 5
ip sla monitor schedule 2 life forever start-time now
c、将SLA装配到Track内
track 1 rtr 1 reachability
track 2 rtr 2 reachability
配置部分一、策略路由
a、配置策略用路由图
a1、使用ACL列表来匹配源IP,用于装入路由图
注:本文为了方便只使用了匹配源IP的标准ACL来进行分流;而在现网环境中,需要匹配源目IP的扩展ACL,因为每个运营商通过BGP宣告给客户端的IP网段可能是不同的,我们需要根据这个来选择客户端NAT的出口以及要访问哪个运营商。
access-list 1 permit 1.1.1.1
access-list 2 permit 2.2.2.2
a2、使用路由图来匹配并且设置对应流量的下一跳,其中下一跳可以通过装配的Track来进行检测
语句说明
下文中的set ip next-hop verify-availability 23.23.23.3 1 track 1
- 大意
根据Track检测的链路是否正常来选择是否对匹配条目执行set next-hop,正常则执行,不正常则不执行;- Track前面的数字
表示下一跳列表的序号,序号越小优先级越高,在设置了多个的set next-hop情况下只会选择序号最小且有效的那个执行,其他的作为备用- Track后面的数字
表示对应Track的序号
&思路一
通过设置主备两个可自动检测链路状态的set next-hop
,在出现链路故障的情况下,通过策略路由
的方式实现链路的热备切换;下文为思路一的解决方案(包括括号内的内容);
&思路二
只设置一个可自动检测链路状态的set next-hop
,在出现链路故障的情况下,对应的set next-hop失效,相应的策略路由失效,通过路由
的方式实现链路的热备切换;下文删掉括号内的内容即为思路二的解决方案;
route-map pbr permit 5
match ip address 1
set ip next-hop verify-availability 23.23.23.3 1 track 1
(set ip next-hop verify-availability 24.24.24.4 2 track 2)
route-map pbr permit 10
match ip address 2
set ip next-hop verify-availability 24.24.24.4 1 track 2
(set ip next-hop verify-availability 23.23.23.3 2 track 1)
b、装配策略
int f0/0
ip policy route-map pbr
配置部分二、路由
a、配置两默认路由,且装配Track进行检测,当Track的链路出现问题,则对应的路由条目也会失效
ip route 0.0.0.0 0.0.0.0 Serial2/0 track 1
ip route 0.0.0.0 0.0.0.0 Serial2/1 track 2
配置部分三、NAT
a、配置对应的路由图来抓取源IP和出接口匹配的流量,用于后续的NAT转换
a1、抓取来自1.1.1.1的出接口为S2/0的流量
route-map nat1 permit 5
match ip address 1
match interface Serial2/0
a1、抓取来自1.1.1.1的出接口为S2/1的流量
route-map nat2 permit 5
match ip address 1
match interface Serial2/1
a1、抓取来自2.2.2.2的出接口为S2/1的流量
route-map nat3 permit 5
match ip address 2
match interface Serial2/1
a1、抓取来自2.2.2.2的出接口为S2/0的流量
route-map nat4 permit 5
match ip address 2
match interface Serial2/0
b、配置nat转换
ip nat inside source route-map nat1 interface Serial2/0 overload
ip nat inside source route-map nat2 interface Serial2/1 overload
ip nat inside source route-map nat3 interface Serial2/1 overload
ip nat inside source route-map nat4 interface Serial2/0 overload
c、配置nat外侧和内侧
int f0/0
ip nat inside
int s2/0
ip nat outside
int s2/1
ip nat outside
六、功能测试
- 通过扩展ping来实现分流检测
ping 3.3.3.3 source 1.1.1.1
ping 3.3.3.3 source 2.2.2.2
七、拓展
虽然热备可以解决一时之需,但是还是有很多注意点
- 一、要确保单条线路的带宽可以负载原本跑在两条线路上的流量,如果不行就需要使用Qos功能筛选掉一部分,以免出现某些重要报文的丢失
- 二、每个运营商所保存的Internet条目不一样,所以在进行热备之后,可能会出现需要跨运营商访问的情况,但是由于竞争关系(如果不限制运营商间的带宽,则客户端无论访问的IP是哪个运营商的速度都差不多,这不利于运营商发挥自身的优势),运营商之间的链路带宽很小,这也会限制客户端在热备后访问部分IP的效率;所以,在现网中不只要基于源IP进行分流,还需要基于运营商通过BGP传递过来的路由做分流。
- 路由条目数
- 三、现在有“负载均衡器”,可以更加便捷的实现我们以下的热备过程;负载均衡器有以下功能
- 路由自动同步(在公网有部署服务器可以实时更新全球的路由条目,负载均衡器根据条目实时同步自身路由条目)
- 基于源目的策略路由即策略NAT
- 保证路由和NAT的同步