• 请不要在回答技术问题时复制粘贴 AI 生成的内容
saytesnake
V2EX  ›  程序员

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

  •  
  •   saytesnake · Jun 18, 2020 · 3249 views
    This topic created in 2180 days ago, the information mentioned may be changed or developed.
    一个客户的情况是这样的,

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

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

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

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

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

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

    PS. 此技术应该叫 Fault Tolerance
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2909 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 07:30 · PVG 15:30 · LAX 00:30 · JFK 03:30
    ♥ Do have faith in what you're doing.