华为防火墙双向热备的问题
2018-12-25 13:25:52
熟悉华为防火墙的知道华为没有如juniper防火墙那样类似于堆叠的HA技术,一般是通过vrrp虚拟路由来实现防火墙的热备。
当然是用vrrp的技术有点是切换没有延时,主备线路无缝切换。
于是想当然的再本次项目中是用vrrp组成热备。测试结果从内部访问外部的vrrp效果一流,完全满足需求。
配置如下
interface Eth-Trunk10
port-master GigabitEthernet0/0/1 port-slave GigabitEthernet0/0/2
service-manage enable
service-manage ping permit
service-manage ssh permit
interface Eth-Trunk10.10
vlan-type dot1q 10
description to_qianduan
ip address 100.180.10.252 255.255.255.0
vrrp vrid 10 virtual-ip 100.180.10.1 master (备机为slave)
service-manage enable
service-manage ping permit
service-manage ssh permit
interface Eth-Trunk10.20
vlan-type dot1q 20
description to_zhongtai
ip address 100.180.20.252 255.255.255.0
vrrp vrid 20 virtual-ip 100.180.20.1 master (备机为slave)
service-manage enable
service-manage ping permit
service-manage ssh permit
interface Eth-Trunk10.30
vlan-type dot1q 30
description to_DB
ip address 100.180.30.252 255.255.255.0
vrrp vrid 30 virtual-ip 100.180.30.1 master (备机为slave)
service-manage enable
service-manage ping permit
service-manage ssh permit
interface Eth-Trunk10.100
vlan-type dot1q 100
description to_manger
ip address 100.180.100.252 255.255.255.0
ip address 10.100.100.252 255.255.255.0 sub
vrrp vrid 100 virtual-ip 100.180.100.1 master (备机为slave)
vrrp vrid 101 virtual-ip 10.100.100.1 master (备机为slave)
service-manage enable
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
service-manage telnet permit
interface Eth-Trunk10.104
vlan-type dot1q 104
description to_test
ip address 100.180.104.252 255.255.255.0
vrrp vrid 104 virtual-ip 100.180.104.1 master (备机为slave)
service-manage enable
service-manage ping permit
测试结果 很满意,于是依着葫芦画瓢,在外网接口也这么配置,噩梦开始了
配置之后5分钟后网络必断,测试了一个晚上,都没有找到结果,一开始怀疑是vrrp的虚拟mac ISP那么没有收到,通过debug发现虚拟MAC 收到了,没有问题,但网络就是不通。其实以前在hillstone和juniper 防火上遇到过一模一样的问题,通过arp-proxy解决的,可在这里行不通
第二天求助于华为的工程师,给出的答案是不能使用子端口,必须使用物理端口,并且要在接口下vrrp virtual-mac enable
试了一下果真通了,高兴了不到5分钟,又断线了。悲剧中
后来想起天融信防火墙使用的双向NAT技术,不走路由,通过NAT到内网,达到热备的目的。测试了一天发现华为肯定是有双向NAT技术的,只是怎么配置不大清楚,找了一大堆资料,都没有我需要的问题解答。其中最接近的是
https://forum.huawei.com/enterprise/zh/thread-262223.html
后来还是询问华为 通过双向NAT 访问内部,内部PC机不配合网关。 可能是描述的有点问题,华为的人不理我了。
直接自己研究
比如防火墙1的的 ISP g0/0 配置100.100.100.100 g0/1配置 192.168.0.1
pc 配置ip:192.168.0.100 网关配置192.168.0。1
比如防火墙2的的 ISP g0/0 配置200.200.200.200 g0/1配置 192.168.0.2
如果外网要访问内部的PC机就会配置基于目的的NAT映射。这里比如80端口
当任意一个人要访问 192.168.0.100:80 的时候
映射流程是这样的。 如果这个时候由于某些原因pc机无法配置网关,或者说有第二条线路也要访问192.168.0.100:80这个地址 怎么办,就如我们现在遇到的问题PC可以配置多条网关,单只有一个生效
0.0.0.0< =>100.100.100.100:80<>192.168.0.1:xxxx<====>192.168.0.100:80
第二个防火的NAT策略将不生效。
0.0.0.0< =>200.200.200.200:80<> 192.168.0.2:xxxx<====>192.168.0.100:80
想要这两条策略同时生效就要配置NAT地址引入双向NAT。这里我们配置双向地址为 192.168.0.10-20 地址池为test,具体使用test中哪一个地址由防火墙通过计算得到。
那么防火墙1的NAT策略就会变成
0.0.0.0< =>100.100.100.100:80<>192.168.0.1:xxxx<>test:xxxx<>192.168.0.100:80
那么防火墙2的NAT策略就会变成
0.0.0.0< =>100.100.100.100:80<>192.168.0.2:xxxx<>test:xxxx<>192.168.0.100:80
原理就是这么个原理。但是实际配置中遇到很多问题,我也是3天后,从客户现场回到了武汉,突然想起来的。然后验证。
正常的基于目的的NAT映射配置是直接 1<====>4
而基于源地址的映射是 4<====>1
中间是省略2 和3 这两个地址的。
0
1
2
3
4
0.0.0.0
100.100.100.100:80
192.168.0.1:xxxx
test:xxxx
192.168.0.100:80
0.0.0.0
100.100.100.100:80
192.168.0.2:xxxx
test:xxxx
192.168.0.100:80
而我在其他设备上配置的双向NAT的配置规则是 先配置1<>3之间的目的NAT 在配置4<>3直接的源NAT
简单描述就是 当任何人想访问100.100.100.80这个的地址的时候,会映射到test:xxxx这个端口。 然后192.168.0.100:80这个端口会反向映射到test:xxxx完成整个NAT。
按照这个配置思路,发现NAT不通。
于是换个方法 配置目的NAT 1<>4 源NAT 3<>4 不通
把所有的排列组合列出来
1<>3 4<>3
1<>3 3<>4
1<>4 3<>4
1<>4 4<>3
发现最后一种通了, 通了之后,再次想到华为这个双向NAT的逻辑感觉有点操蛋简单描述就是
当任何人想访问100.100.100.100:80这个地址的之后,先直接转换成的192.168.0.100:80
如果这个时候发现还有对应的192.168.0.100:80的源地址转换,就把这个过程打断,突兀的插入一段源地址。
特此记录下来,以免未来遇到类似的问题,想不起来,还可以有记录可查。
配置如下:
Ip link+双向NAT 组成互联网访问内部服务的热备
ip-link check enable
ip-link 1 destination 114.114.114.114 interface GigabitEthernet0/0/0 mode icmp
hrp track ip-link 1 master
nat address-group index 0 name web 100.180.10.15 100.180.10.20
nat server 0 protocol tcp global interface GigabitEthernet0/0/0 www inside 100.180.100.240 www no-reverse
policy 0
actionsource-nat
policyservice service-set http
policydestination address-set 100.180.100.240
address-groupweb
评论(0)