简介

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

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

这个拓扑是实际拓扑,全部的接口都连接在一个交换机上,其实对于这个模型,最难点不是配置,而是交换机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做的,所以接口跟拓扑上有点点不同。

在做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了上行链路,能执行自动切换。

这样 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

把默认路由设置为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

测试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

关于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

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

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

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

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

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

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

1测试下telnet。




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

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

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

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

pixfirewall(config)# reload


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

如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog(其他平台同名),版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

Cisco 防火墙Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换相关推荐

  1. CISCO PIX/ASA Failover 技术初步学习

    CISCO PIX/ASA Failover 技术 是一项故障转移配置的技术,需要两台完全一样的设备,通过一个连接,连接到对方(这个连接也叫心跳线).该技术用到的两台设备分为 主用和备用,备用处于待机 ...

  2. 《Cisco防火墙》一8.7 通过NAT规则定义连接限制

    本节书摘来自异步社区<Cisco防火墙>一书中的第8章,第8.7节,作者 [巴西]Alexandre M.S.P. Moraes,更多章节内容可以访问云栖社区"异步社区" ...

  3. 《Cisco防火墙》一6.5 虚拟防火墙的管理访问

    本节书摘来自异步社区<Cisco防火墙>一书中的第6章,第6.5节,作者 [巴西]Alexandre M.S.P. Moraes,更多章节内容可以访问云栖社区"异步社区" ...

  4. cisco 防火墙问题

    背景 公司项目被安全厂商扫描到ssl漏洞,经分析排查是防火墙设备上的服务 第一次接触Cisco防火墙,经过查阅资源和分析,只需关闭外网访问该服务即可 但网上资料都是如何开启,并未说明如何关闭.查看命令 ...

  5. centos 设置双网卡,双网关

    centos 设置双网卡,双网关 centos 设置双网卡,双网关 centos 设置双网卡,双网关 centos操作系统 一个是192段(eth1外网),一个是172(eth0内网)段,我们都知道一 ...

  6. Java黑皮书课后题第6章:**6.29(双素数)双素数是指一对差值为2的素数。例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数。编写程序,找出小于1000的所有双素数

    6.29(双素数)双素数是指一对差值为2的素数.例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数.编写程序,找出小于1000的所有双素数 题目 题目描述 破题 代码 运行示例 ...

  7. python创建双链表_Python双链表原理与实现方法详解

    本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...

  8. 宏正自动科技发表新款8/16端口双滑轨LCD KVM多电脑切换器

    2019独角兽企业重金招聘Python工程师标准>>> CL5808/CL5816整合多项先进技术,有效节省机房空间.提升管理效益           全球数字信息分享领导厂商 – ...

  9. matlab两个图共用一个x轴_Matlab绘制多x轴和多y轴图(双x双y轴/单x双y轴/双x单y轴图等),及坐标轴参数汇总...

    Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践).绘制轴数量.轴位置(XAxisLocation和YAxisL ...

最新文章

  1. php业务网站资源网,企业创意业务网站模板
  2. 试试这个Excel知识测验,得分超过80分算你赢
  3. 立面设计模式–设计观点
  4. 第 16 章 垃圾回收相关概念
  5. 诺顿误杀导致系统崩溃 百万PC面临灾难
  6. linux下命令行安装oracle 11g数据库
  7. Apollo-无人驾驶自定位技术*
  8. 安装程序无法打开注册表项 UNKNOWN\Components\…解决办法
  9. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
  10. java短信接口_短信接口-- java
  11. 详述数据中心内部通风的几种形态
  12. 女人拉屎故事_一个敏锐的女性下午的故事
  13. Ajax的异步和同步
  14. orecle的decode函数用法
  15. 欺骗的艺术——第二部分(11)
  16. 链路聚合—3种模式 详细
  17. 20220316_Scanner、匿名对象、Random、ArrayList
  18. 浙江计算机职业高考试题,浙江省信息技术高考试卷及答案
  19. 什么是电源域(power domain)
  20. 未来计算机功能的要求,未来五年电脑将会具备人类五大感知功能

热门文章

  1. 解决word文件由于扩展名不匹配问题
  2. python如何将字典数据存入excel
  3. NLP专题直播 | 详谈Transformer, BERT, ALBERT, XLNet(ALBERT第一作者亲自讲解)
  4. 桌面图标右键反应慢,至少30s左右出现菜单
  5. android记账本折线图_Android Studio——记账本以及图表可视化实现
  6. js 监听esc按键
  7. 外汇期货股票 投资书籍下载
  8. 显示器支架什么品牌好?
  9. 一种Vin码扫描识别sdk技术
  10. iOS开发——openssl生成CSR (pkcs10) 请求证书