NAT高可靠

1. 双机热备

双机热备对于防火墙来说是一个必不可少的功能,两台防火墙上的NAT配置也需要完全相同,这样就会出现一个问题:如果两个防火墙分别将两条不同的流映射到相同的公网地址,并且端口也相同的话,势必会造成表项的混乱,所以我们引入了地址池优先级的概念。

在双机热备的环境中,如果地址池被配置为高优先级,在进行端口映射的时候端口取值范围为102435000;如果地址池被配置为低优先级,其端口取值范围为3500165535。这样主备两台防火墙虽然使用相同的NAT地址池中的地址,但是由于地址池的优先级不同,所以就不会出现NAT转换后公网IP和公网端口完全相同的情况了。

故障场景 双层架构 三层架构
forwarder单节点故障 流量hash到新forwarder节点,director需要承担单节点会话丢失的瞬时upcall 流量hash到新forwarder节点,director需要承担单节点会话丢失的瞬时upcall
forwarder可用区故障 流量hash到另一个可用区的forwarder节点,director需要承受1/2总流量的瞬时upcall flow master需要承担单节点会话丢失瞬时的upcall
director故障 存量会话不受影响,丢失一半新建能力 存量会话不受影响,丢失一半新建能力
flow master故障 不涉及 无影响,另一个flow master承担会话缓存能力

2. 分布式源端NAT

典型的是google cloud nat的思路,每个源端节点分配transit_ip的部分端口,相当于把两节点主主式的nat网关节点进一步扩大到N个节点主主式的nat网关。节点的端口段分配策略采用静态分配和动态分配两种。