【汇总】多厂商防火墙系列
简介
failover Active/Active是与context结合,实现一个context出现了故障,自动切换到另外一个,实现流量不间断转发,当然不间断是需要合理的配置holdtime时间的,默认情况下 可能会需要45s的切换时间来完成。
第一个拓扑是failover Active/Active的,只能实现FW出现了故障才会切换,而SP出现了故障缺不能实现切换,导致一部分内部网络无法上外网的问题。
基于第一个拓扑的原因,第二个拓扑Cisco-SP1和Cisco-SP2多加入了一条线路,来完成双HSRP的工作,这样能解决无论是FW还是边界路由器故障,都能实现完美的切换。
如果是第一次做这个模型,强烈建议做第一个没有HSRP的,不然你很容易奔溃的。
这个拓扑是实际拓扑,全部的接口都连接在一个交换机上,其实对于这个模型,最难点不是配置,而是交换机VLAN的划分,和firewall接口的划分,这是比较麻烦的。 关于接口的划分,在做这个模型实验的时候,连接一个接口 就记下来,不然后面全部搞混淆了。
基本VLAN划分
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(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了上行链路,能执行自动切换。
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
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-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(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
双HSRP 的模型 由于是第一次做,这次实验花了6个小时 才搞定,中间主要是接口太多,一下不清晰 就被绕进去了,排错就弄了好久。 不过最后总算是搞定了。 这里的双ISP肯定是根据内部用户来区分的,如果要做到电信走电信,网通走网通,这个估计要流量负载分担的设备才能做到,毕竟需要知道电信网通所有的网段才行。 如果是第一次做这个模型,强烈建议做第一个提供没有HSRP的,不然你很容易奔溃的。
下载地址
关于博客资源下载说明
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
学习视频系列(总有您想要的)
Book与实验手册(从初级到高级)
数通系列(路由交换 无线、防火墙VPN等)
实战系列(最贴近企业需求的案例)
想第一时间收到最新更新内容吗,点击获取~~~