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

2020-06-18 09:29:40 +08:00
 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 怎么办...
2379 次点击
所在节点    程序员
14 条回复
fredcc
2020-06-18 09:33:53 +08:00
物理宿主机是多台么,如果不是网关机器做个快照,VMware 层面拉起来不就好了。
saytesnake
2020-06-18 09:38:38 +08:00
@fredcc 嗯,这样也行,但也达不到客户的高可用需求,其实说白了,就是想在 Linux 系统层面搞定这个问题,我们也提过直接怼两台 F5 就什么都搞定了,但被回绝了 😂
Srar
2020-06-18 10:34:10 +08:00
vrrp
julyclyde
2020-06-18 10:52:05 +08:00
NAT 本身是有状态的
做 HA 的话还得考虑状态在多台服务器之间相互同步
mhycy
2020-06-18 10:58:04 +08:00
ESXI 自己就能做 HA
saytesnake
2020-06-18 11:20:55 +08:00
@Srar KA 的话,多网卡以及各自的 DNAT 下不知道怎么弄。

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

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

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

@mhycy vCenter 层面是没有问题的,就是系统层面,如果只是 SNAT,那简单了,DNAT 的话,还想不到怎么弄。
realpg
2020-06-18 13:53:11 +08:00
NAT 的 HA 建议上硬件 支持双击热备双主的防火墙那种

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

PS. 此技术应该叫 Fault Tolerance

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682547

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX