V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saytesnake
V2EX  ›  程序员

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

  •  
  •   saytesnake · 2020-06-18 09:29:40 +08:00 · 2364 次点击
    这是一个创建于 1379 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个客户的情况是这样的,

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

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

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

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

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

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

    PS. 此技术应该叫 Fault Tolerance
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2514 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 16:01 · PVG 00:01 · LAX 09:01 · JFK 12:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.