这样情况下的 NAT 服务器如何做 HA?

saytesnake
一个客户的情况是这样的,

自己的一个 VMware 环境,托管在机房,网络拓扑也很简单,

机房 BGP --> 交换机 --> N 台 ESXi,其它细节的忽略。

机房的 BGP 有一个主 IP,额外送了两个独立 IP,与主 IP 共享带宽。

客户在 vCenter 上创建了一台虚拟机,当成网关服务器,即 SNAT/DNAT,弄了四个网卡,例如:

eth0:192.168.1.254
eth1:1.1.1.1
eth2:2.2.2.2
eth3:3.3.3.3

SNAT 走 1.1.1.1 给到内网其它服务器上网,DNAT 看情况有的是一对一到某台内网机,有的是 80/443 或其它端口到某台机器,三个外网 IP 都有走。

这台网关服务器系统是 CentOS 7 Minimal,很干净,iptables,ssh 走 key,fail2ban,安全方面还行。

现在客户说虽然目前为止,这台 192.168.1.254 很稳定,但也考虑到万一挂了,甚至是对应的 ESXi 挂了,全无补救措施,想做一个 HA 。

显然这样的设计是考虑到成本的问题,也不能跟客户说啥直接上两台 F5 之类的...就是这个 192.168.1.254 ,应该怎么做一个 HA 比较合适...如果是 KA+LVS-NAT 这样弄的话,多网卡多 IP 怎么办...
14 条回复  •  2020-06-18 14:54:06 +08:00
fredcc
fredcc10 小时 43 分钟前
物理宿主机是多台么,如果不是网关机器做个快照,VMware 层面拉起来不就好了。
1
saytesnake
saytesnake10 小时 38 分钟前
@fredcc 嗯,这样也行,但也达不到客户的高可用需求,其实说白了,就是想在 Linux 系统层面搞定这个问题,我们也提过直接怼两台 F5 就什么都搞定了,但被回绝了 😂
2
Srar
Srar9 小时 43 分钟前 via iPhone
vrrp
3
julyclyde
julyclyde9 小时 25 分钟前
NAT 本身是有状态的
做 HA 的话还得考虑状态在多台服务器之间相互同步
4
mhycy
mhycy9 小时 19 分钟前
ESXI 自己就能做 HA
5
saytesnake
saytesnake8 小时 56 分钟前
@Srar KA 的话,多网卡以及各自的 DNAT 下不知道怎么弄。

@julyclyde 是的,就是不晓得怎么弄比较好...

@mhycy vCenter 下是可以的,但这个 NAT 服务器本来就是虚拟机,NAT 都是走系统层面的...客户也担心系统被入侵或者挂了之类的。
6
imnpc
imnpc8 小时 51 分钟前
这个比较麻烦吧 我们一般采用 ECS+内网 IP + 负载均衡,
如果自建,建议也是参照同样方案搞,
阿里云 /腾讯云 /Linode/VULTR 都是提供同样方案
7
runntuu
runntuu8 小时 46 分钟前
@saytesnake 两台 F5 。。一台 F5+许可都要 20w+了
正常的拓扑是机房 BGP --> FW/路由器 --> 交换机 --> N 台 ESXi,生产环境专业的事情交给专业的设备来做
vCenter 开启 vSphere HA,ESXi 预留 2N 的物理资源。
8
mhycy
mhycy8 小时 25 分钟前
@saytesnake
是基于 vCenter 做 ESXI 内的 VPS 的 HA
软路由本身是个虚拟机然后做 HA 没什么问题,你需要两个 ESXI 都有独立接口接上层交换而已
9
saytesnake
saytesnake7 小时 21 分钟前
@imnpc 云上的 NAT 网关就搞定了,自建的话,实现也比较简单,就是这个高可用一下子不知道怎么弄。

@runntuu 是的,“BGP --> FW/路由器” 这块是托管机房弄的,客户这边只需要装上交换机即可,方便是方便,就是灵活度少了,目前有考虑放弃虚拟机软路由,直接弄一台自己的路由器在上面一层。

@mhycy vCenter 层面是没有问题的,就是系统层面,如果只是 SNAT,那简单了,DNAT 的话,还想不到怎么弄。
10
realpg
realpg6 小时 24 分钟前
NAT 的 HA 建议上硬件 支持双击热备双主的防火墙那种

软件实现,我估计你们提 F5 他们都不干的话,怕是买不起
11
realpg
realpg6 小时 18 分钟前
没仔细看 NAT 的主要麻烦在 SNAT 服务器场景很多时候 SNAT 表没了就没了 DNAT 做好忽略非法规则 无影响的 如果这样可以接受 那就没成本了
12
onion83
onion836 小时 7 分钟前
SNAT 高可用问题:再配置一个实例做 keepalived,部署在不同物理机上,将 192.168.1.254 作为 VIP 即可。
13
mhycy
mhycy5 小时 23 分钟前
@saytesnake
不管是 SNAT 还是 DNAT 都没问题啊,针对的是 VM 本身双机同步运行,切换对应用层透明
本身就是二层上面 ESXI 的 HA 已经做好了 ARP 切换的事情,还不到应用层进行处理

PS. 此技术应该叫 Fault Tolerance
14