当前位置:首页 >> 计算机硬件及网络 >>

策略路由和NAT实现负载均衡实例(华为防火墙)

一、组网需求:
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 产品在配置上有所不同,需要根据具体产品的操作手册确认