资源描述
一、组网需求:
1.正常情况下10.0.0.2从出口12.12.12.0NAT转化成100.0.0.0的地址,20.0.0.2从出口13.13.13.0NAT转化成200.0.0.0的地址,实现负载均衡。
2.FW双出口的某一条链路down,所有用户NAT成同一地址段出去,实现链路冗余。
二、实验组网
四、关键配置
USG5360 (V100R003C01SPC007):
ip address-set 100and200 type object
address 0 10.0.0.0 mask 24
address 1 20.0.0.0 mask 24
#
ip address-set 10.0.0.2 type object
address 0 10.0.0.0 mask 24
#
ip address-set 20.0.0.2 type object
address 0 20.0.0.0 mask 24
#
acl number 3001
rule 0 permit ip source 10.0.0.0 0.255.255.255
acl number 3002
rule 0 permit ip source 20.0.0.0 0.255.255.255
#
nat address-group 100 NAT1 100.0.0.1 100.0.0.100
nat address-group 200 NAT2 200.0.0.1 200.0.0.100
#
traffic classifier 12
if-match acl 3001
traffic classifier 13
if-match acl 3002
#
traffic behavior 12
remark ip-nexthop 12.12.12.2 output-interface GigabitEthernet0/0/0
traffic behavior 13
remark ip-nexthop 13.13.13.2 output-interface GigabitEthernet0/0/1
#
qos policy re
classifier 12 behavior 12
classifier 13 behavior 13
#
interface GigabitEthernet0/0/0
ip address 12.12.12.1 255.255.255.252
#
interface GigabitEthernet0/0/1
ip address 13.13.13.1 255.255.255.252
#
interface GigabitEthernet0/0/2
ip address 20.0.0.1 255.255.255.0
#
interface GigabitEthernet0/0/3
ip address 10.0.0.1 255.255.255.0
#
firewall zone local
set priority 100
#
firewall zone trust
set priority 85
qos apply policy re outbound
add interface GigabitEthernet0/0/2
add interface GigabitEthernet0/0/3
#
firewall zone untrust
set priority 5
#
firewall zone name t100
set priority 10
add interface GigabitEthernet0/0/0
#
firewall zone name t200
set priority 11
add interface GigabitEthernet0/0/1
#
nat-policy interzone trust untrust outbound
#
nat-policy interzone trust t100 outbound
policy 0
action source-nat
policy source address-set 100and200
address-group NAT1
#
nat-policy interzone trust t200 outbound
policy 0
action source-nat
policy source address-set 100and200
address-group NAT2
#
ip route-static 0.0.0.0 0.0.0.0 13.13.13.2
ip route-static 0.0.0.0 0.0.0.0 12.12.12.2
#
五、实现原理
按照实验要求,如果我们用传统的NAT,将10.0.0.2 nat 成100.0.0.0/24网段,将20.0.0.2 nat 成200.0.0.0/24网段,这种方法是实现不了当FW双线上连线路任意断掉一条业务不断的实验要求。那么我们应如何解决这个问题呢?首先我们要了解防火墙的处理流程,如下图:
NAT实际上在防火墙中也属于域间策略的一种,即从上图中我们可以知道NAT是在路由选路后进行的,而NAT的配置很简单,只是将匹配的地址(acl)进行一个地址转换的操作(如果不选no-pat方式还包括端口),所以我们不可能从NAT上进行某种操作来实现冗余。这时我们就可以考虑使用策略路由,建议大家在这个时候根据流程图画一张该实验的分析图。如下图:
注:方便起见,图中文字的接口用IP地址来表示具体三层接口。
从上图中,我们就可以知道,根据不同的下一跳接口,可以分类出两种不同的域间策略,这时我们就可以在不同的域间进行不同NAT,实现了实验要求的NAT需求。那么第二个实验要求能不能实现呢?
答案是确定能实现的。我们可以仔细思考一下,利用策略路由我们可以实现不同源地址同一目的地址的不同下一跳操作(有点绕),而下一跳地址是否有效是由三层端口的链路状态决定的。那么此时,我们将FW上联线路断掉其中一条,自然FW就只存在唯一一条有效的路由下一跳,上图中的流程就不存在了双线,因为只有一个下一跳,也就只有一个目的域,即两个NAT中只有一个生效。
六、总结
通过上述分析,我们了解了利用策略路由+NAT实现双链路负载冗余的需求,即通过有限的功能实现变化多端的应用。从原理上分析,此解决方案是比较可行的,但在具体应用过程中,仍有几点需要注意:
1.FW是基于会话的,如果真实的会话改变,那么必须手动清空会话表才能恢复业务,或者停止业务到一个会话的老化时间,再发起。
2.策略路由判断下一跳的方式,不同的产品是有差异的,要看产品具体的实现方式,USG5000的策略路由是通过检测路由表来判断下一跳是否有效,当存在默认路由的情况下,此方案就不能做到链路冗余,需要将默认路由修改为静态路由。
3.我司FW产品在配置上有所不同,需要根据具体产品的操作手册确认
展开阅读全文