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网关。节点的端口段分配策略采用静态分配和动态分配两种。