多厂商防火墙系列之七: Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换 | 网络之路博客(公众号同名)(其他平台网络之路Blog)
登录
  • 欢迎网络之路博客网站,分享有用的知识点,公众号:网络之路博客,B站:网络之路Blog
  • 如果您觉得本站对您有帮助,那么赶紧使用Ctrl+D 收藏吧,支持我们下
  • 远程技术支持的淘宝店铺已经开张了哦,传送门:需要的朋友可以点击查看

多厂商防火墙系列之七: Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换

【汇总】多厂商防火墙系列

文档帖子汇总学习视频Book与实验手册学习必备软件
    博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com

简介

failover Active/Active是与context结合,实现一个context出现了故障,自动切换到另外一个,实现流量不间断转发,当然不间断是需要合理的配置holdtime时间的,默认情况下 可能会需要45s的切换时间来完成。

 image001.png

第一个拓扑是failover Active/Active的,只能实现FW出现了故障才会切换,而SP出现了故障缺不能实现切换,导致一部分内部网络无法上外网的问题。
基于第一个拓扑的原因,第二个拓扑Cisco-SP1和Cisco-SP2多加入了一条线路,来完成双HSRP的工作,这样能解决无论是FW还是边界路由器故障,都能实现完美的切换。
如果是第一次做这个模型,强烈建议做第一个没有HSRP的,不然你很容易奔溃的。

 image002.jpg

这个拓扑是实际拓扑,全部的接口都连接在一个交换机上,其实对于这个模型,最难点不是配置,而是交换机VLAN的划分,和firewall接口的划分,这是比较麻烦的。 关于接口的划分,在做这个模型实验的时候,连接一个接口 就记下来,不然后面全部搞混淆了。

基本VLAN划分

这里trunk是因为FW的接口要起子接口,所以与firewall 之间起trunk 来解决问题。

Cisco-SW(config)#vlan 2
Cisco-SW(config-vlan)#name HSRP_1
Cisco-SW(config-vlan)#vlan 3
Cisco-SW(config-vlan)#name HSRP_2
VLAN2作为Cisco-SP1的使用,包括HSRP协商的接口和firewall的接口
VLAN3作为Cisco-SP2的使用,包括HSRP协商的接口和firewall的接口

Cisco-SW(config-vlan)#vlan 4
Cisco-SW(config-vlan)#name A/A
单独划分一个VLAN,作为failover的协商和statefull的复制。

Cisco-SW(config)#vlan 5
Cisco-SW(config-vlan)#name Cisco-Inside.1
Cisco-SW(config-vlan)#vlan 6
Cisco-SW(config-vlan)#name Cisco-Inside.2
VLAN5和VLAN6是Cisco-Inside.1和Cisco-Inside.2分别划分。

Cisco-SW(config-vlan)#int range f1/6 -7 , f1/8 -9
Cisco-SW(config-if-range)#Cisco-SWitchport mode trunk
起trunk,是因为在实际中可能接口不是那么多,所以这里我用子接口作为配置,虽然配置繁琐了点,但是对于自己的思路,跟方案也算一种提升咯。

Cisco-SW(config)#int range f1/0 – 1
Cisco-SW(config-if-range)#Cisco-SWitchport mode access
Cisco-SW(config-if-range)#Cisco-SWitchoport access vlan 2

Cisco-SW(config)#int range f1/2 – 3
Cisco-SW(config-if-range)#Cisco-SWitchport mode access
Cisco-SW(config-if-range)#Cisco-SWitchport access vlan 3

Cisco-SW(config-if-range)#
Cisco-SW(config-if-range)#int range f1/4 -5
Cisco-SW(config-if-range)#Cisco-SWitchport mode access
Cisco-SW(config-if-range)#Cisco-SWitchport access vlan 4

Cisco-SW(config)#int f1/10
Cisco-SW(config-if)#Cisco-SWitchport mode access
Cisco-SW(config-if)#Cisco-SWitchport access vlan 5

Cisco-SW(config-if)#int f1/11
Cisco-SW(config-if)#Cisco-SWitchport mode access
Cisco-SW(config-if)#Cisco-SWitchport access vlan 6
这里把对应的VLAN划分不同的VLAN中,这张表就对应我图上的VLAN 信息。 这是在连接接口的时候 连接一个写上一个,不然后面就奔溃了。这里我用ASA做的,所以接口跟拓扑上有点点不同。

 image003.jpg

在做firewall之前 把其他的基本配置先解决

Cisco-Inside.1
Cisco-Inside.1(config)#int f0/0
Cisco-Inside.1(config-if)#ip add 10.1.1.1 255.255.255.0
Cisco-Inside.1(config-if)#no shut
Cisco-Inside.1(config-if)#exit
Cisco-Inside.1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.254
把默认路由给做了,指向Cisco-primary的地址。下面两条路由是指向私网网段的,为了后续通信正常,先做了。这个是关键 容易被忽略

Cisco-Inside.2
Cisco-Inside.2(config)#int f0/0
Cisco-Inside.2(config-if)#ip add 20.1.1.1 255.255.255.0
Cisco-Inside.2(config-if)#no shutdown
Cisco-Inside.2(config-if)#ip route 0.0.0.0 0.0.0.0 20.1.1.254

internet
Cisco-Intnet(config)#int lo 0
Cisco-Intnet(config-if)#ip add 1.1.1.1 255.255.255.255
Cisco-Intnet(config)#int f0/0
Cisco-Intnet(config-if)#ip add 12.1.1.1 255.255.255.0
Cisco-Intnet(config-if)#int f0/1
Cisco-Intnet(config-if)#ip add 13.1.1.1 255.255.255.0
Cisco-Intnet(config)#line vty 0 4
Cisco-Intnet(config-line)#pasCisco-SWord cisco

Cisco-SP1
Cisco-SP1(config)#int f0/0
Cisco-SP1(config-if)#ip add 12.1.1.2 255.255.255.0
Cisco-SP1(config-if)#no shut

Cisco-SP1(config-if)#ip add 192.168.2.1 255.255.255.0
Cisco-SP1(config-if)#no shutdown

Cisco-SP1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.1

Cisco-SP1(config)#access-list 1 permit 10.1.1.0 0.0.0.255
Cisco-SP1(config)#access-list 1 permit 20.1.1.0 0.0.0.255

Cisco-SP1(config)#ip nat inside source list 1 interface f0/0 overload

Cisco-SP1(config)#int f0/0
Cisco-SP1(config-if)#ip nat outside

Cisco-SP1(config-if)#int range f0/1 , f1/0
Cisco-SP1(config-if-range)#ip nat inside
这里没有在access-list 中运行 192.168.1.0这网段,所以无法进行测试了。

Cisco-SP2(config)#int f0/1
Cisco-SP2(config-if)#ip add 13.1.1.2 255.255.255.0

Cisco-SP2(config-if)#int f0/0
Cisco-SP2(config-if)#ip add 192.168.1.2 255.255.255.0
Cisco-SP2(config-if)#no shut

Cisco-SP2(config-if)#int f1/0
Cisco-SP2(config-if)#ip add 192.168.2.2 255.255.255.0
Cisco-SP2(config-if)#no shutdown

Cisco-SP2(config)#access-list 1 permit 10.1.1.0 0.0.0.255
Cisco-SP2(config)#access-list 1 permit 20.1.1.0 0.0.0.255
Cisco-SP2(config)#ip nat inside source list 1 interface f0/1 overload

Cisco-SP2(config)#int f0/1
Cisco-SP2(config-if)#ip nat outside

Cisco-SP2(config-if)#int range f0/0 , f1/0
Cisco-SP2(config-if-range)#ip nat inside

Cisco-SP1(config)#ip route 10.1.1.0 255.255.255.0 192.168.1.3
Cisco-SP1(config)#ip route 20.1.1.0 255.255.255.0 192.168.2.3

Cisco-SP2(config)#ip route 10.1.1.0 255.255.255.0 192.168.1.3
Cisco-SP2(config)#ip route 20.1.1.0 255.255.255.0 192.168.2.3

HSRP_1的设置。
Cisco-SP1最为作为Cisco-SP1的Active,Cisco-SP2作为Standby
Cisco-SP1(config-if)#int f0/1
Cisco-SP1(config-if)#standby 1 ip 192.168.1.254
Cisco-SP1(config-if)#standby 1 priority 110
Cisco-SP1(config-if)#standby 1 preempt
Cisco-SP1(config-if)#standby 1 track f0/0 20

Cisco-SP2
Cisco-SP2(config)#int f0/0
Cisco-SP2(config-if)#standby 1 ip 192.168.1.254
Cisco-SP2(config-if)#standby 1 preempt
Cisco-SP2(config-if)#standby track f0/1

这样HSRP_1的Active为Cisco-SP1,Standby为Cisco-SP2,当Cisco-SP1的上行和下行链路出现故障,都会自动切换,因为track了上行链路。

HSRP_2的设置。
Cisco-SP2最为Active,Cisco-SP1作为Standby
Cisco-SP1(config-if)#int f1/0
Cisco-SP1(config-if)#standby 2 ip 192.168.2.254
Cisco-SP1(config-if)#standby 2 preempt
Cisco-SP1(config-if)#standby 2 track f0/0

Cisco-SP2(config-if)#int f1/0
Cisco-SP2(config-if)#standby 2 ip 192.168.2.254
Cisco-SP2(config-if)#standby 2 preempt
Cisco-SP2(config-if)#standby 2 priority 110
Cisco-SP2(config-if)#standby 2 track f0/1 20

HSRP_2的Active为Cisco-SP2,Standby为Cisco-SP1。都tackle了上行链路,能执行自动切换。

 image004.jpg

这样 HSRP与基本路由器的配置完毕了。下面开始failover的配置,它还是简单点的,因为只需要配置一边,另外一边可以通过failover自动复制过去。

Cisco-primary(config)# mode multiple 第一件事,肯定是变成multiple mode了,然后重启

Cisco-primary(config-subif)# int e0/2
Cisco-primary(config-if)# no shutdown

Cisco-primary(config)# int e0/2.3
Cisco-primary(config-subif)# vlan 2
Cisco-primary(config-if)# int e0/2.4
Cisco-primary(config-subif)# vlan 3

Cisco-primary(config)# int e0/1
Cisco-primary(config-if)# no shutdown
Cisco-primary(config-if)# int e0/1.3
Cisco-primary(config-subif)# vlan 5
Cisco-primary(config-subif)# int e0/1.4
Cisco-primary(config-subif)# vlan 6

划分子接口,e0/2.3是作为连接Cisco-SP1的outside接口,e0/2.4作为Cisco-SP2的outside接口。e0/1.3作为Cisco-Inside.1的网关 e0/1.4作为Cisco-Inside.2的网关。

配置context

这里我是用ASA做的,所以就不需要用admin作为测试了,创建两个。

Cisco-primary(config)# context Cisco-SP1
Creating context ‘Cisco-SP1’… Done. (2)
Cisco-primary(config-ctx)# allocate-interface e0/2.3
Cisco-primary(config-ctx)# allocate-interface e0/1.3

Cisco-primary(config-ctx)# config-url flash:Cisco-SP1.cfg

Cisco-primary(config-ctx)# context Cisco-SP2
Creating context ‘Cisco-SP2’… Done. (3)
Cisco-primary(config-ctx)# allocate-interface e0/2.4
Cisco-primary(config-ctx)# allocate-interface e0/1.4

Cisco-primary(config-ctx)# config-url flash:Cisco-SP2.cfg

context创建完毕了,接口也划分进来了。开始配置context

FW:Cisco-SP1
Cisco-primary(config-ctx)# changeto context Cisco-SP1
Cisco-primary/Cisco-SP1(config)# int e0/2.3
Cisco-primary/Cisco-SP1(config-if)# nameif outside
INFO: Security level for “outside” set to 0 by default.
Cisco-primary/Cisco-SP1(config-if)# ip add 192.168.1.3 255.255.255.0 standby 192.168.1.4
Cisco-primary/Cisco-SP1(config-if)# route outside 0 0 192.168.1.254

 image005.jpg

把默认路由设置为Cisco-SP1的VIP,然后测试能够通信。

Cisco-primary/Cisco-SP1(config)# int e0/1.3
Cisco-primary/Cisco-SP1(config-if)# nameif inside
INFO: Security level for “inside” set to 100 by default.
Cisco-primary/Cisco-SP1(config-if)# ip add 10.1.1.254 255.255.255.0 standby 10.1.1.253

 image006.jpg

测试Cisco-Inside.1的连通性没问题。

FW:Cisco-SP2

Cisco-primary/Cisco-SP1(config-if)# changeto context Cisco-SP2
Cisco-primary/Cisco-SP2(config)# int e0/2.4
Cisco-primary/Cisco-SP2(config-if)# nameif outside
INFO: Security level for “outside” set to 0 by default.
Cisco-primary/Cisco-SP2(config-if)# ip add 192.168.2.3 255.255.255.0 standby 192.168.2.4
Cisco-primary/Cisco-SP2(config-if)# route outside 0 0 192.168.2.254

Cisco-primary/Cisco-SP2(config)# int e0/1.4
Cisco-primary/Cisco-SP2(config-if)# namei
Cisco-primary/Cisco-SP2(config-if)# nameif insiINFO: Security level for “inside” set to 100 by default.
Cisco-primary/Cisco-SP2(config-if)# ip add 20.1.1.254 255.255.255.0 standby 20.1.1.253

 image007.jpg

关于context配置最重要的就是Standby的地址 别忘记配置了,剩下的就是failover了。

Failover

Cisco-primary这边。
Cisco-primary(config)# failover group 1
Cisco-primary(config-fover-group)# Cisco-primary

Cisco-primary(config)# failover group 2
Cisco-primary(config-fover-group)# secondary

在context中配置有点特别,需定义两个组,然后让这些context加入这个组中,规定谁是context,谁是secondary。也许会奇怪那到了Standby那边它怎么来区分,这个后面会提到。

Cisco-primary(config)# context Cisco-SP1
Cisco-primary(config-ctx)# join-failover-group 1
Cisco-primary(config-ctx)# context Cisco-SP2
Cisco-primary(config-ctx)# join-failover-group 2

Cisco-primary(config)# int e0/0 这里用e0/0来做failover的,只需要no shut
Cisco-primary(config-if)# no shutdown

Cisco-primary(config)# failover lan interface lan e0/0
Cisco-primary(config)# failover interface ip lan 30.1.1.1 255.255.255.0 standby 30.1.1.2
Cisco-primary(config)# failover lan unit Cisco-primary
Cisco-primary(config)# failover link lan 开启状态备份,这里与failover使用同一个接口
Cisco-primary(config)# failover
会发现这里没用 failover lan enable ,因为之前提到过 ASA只允许使用LAN-Based,所以不需要选择。我感觉failover lan unit Cisco-primary不需要申明,因为在group中已经申明了。但是测试结果必须Cisco-primary这边申明它是Cisco-primary才能进行failover

Standby这边就容易很多了,配置都是复制过来的,只需要配置failover。
standby(config)# int e0/0
standby(config-if)# no shutdown
standby(config)# failover lan interface lan e0/0
standby(config)# failover interface ip lan 30.1.1.1 255.255.255.0 standby 30.1.1.2
standby(config)# failover lan unit secondary
standby(config)# failover link lan
standby(config)# failover

 image008.jpg

在开始复制Cisco-primary这一端的配置了。

 image009.jpg

状态都已经过来了,但是会有几个小问题。会发现 group 1 和group 2都为active,这跟我们需求是不同的,肯定group2为standby。

 image010.jpg

这里Cisco-SP2在主这一边,必须是Standby,而不是Active,需要改动下。把Active让过去。

Cisco-primary(config)# no failover active group 2 这个在Cisco-primary这边敲
或者在Standby这边敲 failover active group 2

 image011.jpg

这下正常了,在这边group 1 为Active,group2为Standby, 在那一边的话,就是group1为Standby group 2为Active。

这里说一个问题,如果你的IP address是做了failover以后在配置的话,那么你的group1的配置是在Cisco-primary这边配置,group2就因该到Standby那边配置了,因为group2在Standby那边是Active状态,Standby的状态是不允许配置的。

1测试下telnet。

 image012.jpg
 image013.jpg
 image014.jpg
 image015.jpg

Cisco-SP1和Cisco-SP2都有转换项,开始测试下 HSRP Down的情况。

Cisco-SP1(config)#int f0/1
Cisco-SP1(config-if)#shutdown

 image016.jpg

这样走Cisco-SP2了,测试下 firewll出现了故障,切换是否正常。

Cisco-SP1(config)#int f0/1
Cisco-SP1(config-if)#no shutdown

pixfirewall(config)# reload

 image017.jpg
 image018.jpg

Cisco-Inside.1的转换项还存在。 Cisco-Inside.2 telnet出去telnet 1.1.1.1也没问题。 实现了无论是双HSRP和 failover 故障都能自动切换。如果需要收敛时间快点,那就需要考虑到OSPF的收敛 HSRP 和failover的helodtime时间,合理的时间能让整个网络的性能更加收敛快速。
双HSRP 的模型 由于是第一次做,这次实验花了6个小时 才搞定,中间主要是接口太多,一下不清晰 就被绕进去了,排错就弄了好久。 不过最后总算是搞定了。 这里的双ISP肯定是根据内部用户来区分的,如果要做到电信走电信,网通走网通,这个估计要流量负载分担的设备才能做到,毕竟需要知道电信网通所有的网段才行。 如果是第一次做这个模型,强烈建议做第一个提供没有HSRP的,不然你很容易奔溃的。

下载地址

百度盘地址
如果下载地址失效,请联系博主或者在下面留言,谢谢。

关于博客资源下载说明

首先,感谢大家对网络之路博客的支持,本站所有资源都是开放下载,不做任何限制,资源都是上传在百度盘,分为两种类型:
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
想第一时间收到最新更新内容吗,点击获取~~~

点击查看详情

(广告)博主自主原创最新实战课程

点击查看详情


(广告)远程技术支持(设备调试),有搞不定的找我,价格实惠,为您解决实际工作上的问题

远程技术调试与技术支持,点击查看详情


原创与收集的内容,允许转载,转载时请务必以超链接形式标明文章原始出处,博客地址http://ccieh3c.com。

喜欢 (3)
[]
分享 (0)
公众号:网络之路博客(其他平台网络之路Blog)
分享一些自己懂的技术知识点,希望对大家有帮助。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 下载地址没有啊
    江流儿2016-08-22 16:30 回复 Windows XP | Chrome 47.0.2526.108