一、拓扑图
二、组网需求
1、上网需求
真实场景中,内网用户想要上网,在内网出口路由器上需要部署NAT技术,将内网地址转换成外网地址。出接口(G0/0/1、G0/0/2)分别连接两个运营商链路ISP1、ISP2,无论从哪条链路都能上网。
2、内网PC流量走向需求
PC1访问外网的流量只从ISP1链路转发,PC2访问外网的流量只从ISP2链路转发,PC3访问外网的流量可以从ISP1链路或ISP2链路转发。
3、链路故障切换
当ISP1链路发生故障时,内网所有PC访问外网的流量从ISP2链路转发。同理,ISP2链路发生故障,内网所有PC访问外网流量从ISP1链路转发。也就是说ISP1、ISP2无论哪条链路发生故障都不影响内网用户正常访问外网。
三、解决方案
1、路由部署
采用静态路由的方式实现Internet环回地址(模拟外网用户)与内网PC互通。
1.1.外网路由器部署,真实场景中只需考虑内网设备的路由部署,运营商不需要配置路由到内网。
Internet:
ip route-static 0.0.0.0 0 100.1.2.2
ip route-static 0.0.0.0 0 200.1.2.2
ip route-static 100.1.1.0 24 100.1.2.2
ip route-static 200.1.1.0 24 200.1.2.2
ISP1:
ip route-static 1.1.1.1 32 100.1.2.1
ip route-static 10.1.0.0 22 100.1.1.1
说明:10.1.0.0 22包含10.1.0.0-10.1.3.0/24四个子网,这里直接用的汇总路由,也可以针对内网每个网段各配一条静态路由。
ISP2:
ip route-static 1.1.1.1 32 200.1.2.1
ip route-static 10.1.0.0 22 200.1.1.1
1.2.内网路由部署
内网出口路由器:
ip route-static 0.0.0.0 0 100.1.1.2
ip route-static 0.0.0.0 0 200.1.1.2
说明:以上两条默认路由配置后,路由优先级相同实现等价路由负载分担,即满足PC3的需求。
ip route-static 10.1.0.0 22 192.168.1.1
SW1:
ip route-static 0.0.0.0 0 192.168.1.2
以上配置完成后,实现内外网互通。
2、源NAT部署
内网出口路由器:
创建acl匹配内网PC网段,分别在接口G0/0/1、G0/0/2接口应用NAT。配置如下:
acl 2000
rule 5 permit source 10.1.0.0 0.0.3.255
说明:匹配源地址时,可以分别创建rule匹配10.1.1.0/24、10.1.2.0/24、10.1.3.0/24。这里直接以汇总的方式匹配。22位子网掩码也就是255.255.252.0,反掩码则为0.0.3.255。
int g 0/0/1
nat outbound 2000
int g 0/0/2
nat outbound 2000
说明:nat outbound 2000后面还可以接address-group参数,如果接该参数表示以地址池的方式转换,需要先配置相应nat地址池。这里以easy-ip方式将内网地址转换成内网出口路由器的出接口地址。以上配置完成后,即满足NAT转换需求。
测试如下:
在内网出口路由器G0/0/1、G0/0/2接口抓包。内网任意PC机ping 1.1.1.1。如图转换成功。
3.策略路由部署
3.1.先为ISP1和ISP2配置NQA,方便后续直接与路由联动。
内网路由器:
nqa test-instance user1 isp1 //创建nqa实例探测ISP1链路
test-type icmp //设置探测类型
destination-address ipv4 100.1.1.2 //设置探测目标IP
frequency 15 //设置NQA自动执行测试的时间间隔为15秒
interval seconds 5 //设置NQA发送报文的时间间隔为5秒
start now //立即开始
nqa test-instance user2 isp2 //创建nqa实例探测ISP2链路
test-type icmp
destination-address ipv4 200.1.1.2
frequency 15
interval seconds 5
start now
以上配置完成后与默认路由绑定
ip route-static 0.0.0.0 0 100.1.1.2 track nqa user1 isp1
ip route-static 0.0.0.0 0 200.1.1.2 track nqa user2 isp2
3.2. PC1访问外网从ISP1链路转发, PC2访问外网从ISP2链路转发。
内网出口路由器:
acl 2001
rule permit source 10.1.1.0 0.0.0.255 //只匹配PC1所在网段
acl 2002
rule permit source 10.1.2.0 0.0.0.255 //只匹配PC2所在网段
traffic classifier pc1 //创建流分类
if-match acl 2001 //匹配PC1所在的网段
traffic behavior pc1 //创建流行为
redirect ip-nexthop 100.1.1.2 track nqa user1 isp1 //重定向目的地址为100.1.1.2并绑定NQA。
traffic classifier pc2
if-match acl 2002
traffic behavior pc2
redirect ip-nexthop 200.1.1.2 track nqa user2 isp2
traffic policy pc1_and_pc2 //创建流策略
classifier pc1 behavior pc1 //将流分类与流行为绑定。
classifier pc2 behavior pc2
interface g 0/0/0 //进入接口应用流策略
traffic-policy pc1_and_pc2 inbound
测试如下:
未做策略路由之前,PC1和PC2访问外网,随机从ISP1或ISP2转发。做完以上配置满足PC1访问外网流量从ISP1链路转发,PC2访问外网流量从ISP2链路转发。如果不确定是否有做重定向的操作,对于PC1可以修改流行为的重定向IP为ISP2链路,再tracert测试如果经过200.1.1.2表明策略路由配置成功。对于PC2可以修改流行为的重定向IP为ISP1链路,测试同理。
4.链路故障切换
链路正常,查看内网出口路由器路由表信息。
4.1.ISP1链路故障
内网路由器:
interface g 0/0/1 //关闭该接口,模拟故障
shutdown
查看路由表
说明:因为默认路由与nqa做了绑定,所以当nqa探测到ISP1链路(100.1.1.2)故障时,会移除默认路由一下跳为100.1.1.2的路由,同样nqa也与流行为重定向绑定了,PC1的流行为也将失效。这样一来,PC1访问外网只匹配这条默认路由(ISP2链路)转发流量。
4.2.ISP1链路恢复
interface g 0/0/1 //启用该接口,模拟故障恢复
undo shutdown
查看路由表,去往ISP1的路由重新浮现,策略路由也将生效。
4.2.ISP2链路故障与恢复
测试方法与4.1同理,不在重复赘述,只做测试结果。