这样情况下的 NAT 服务器如何做 HA? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
saytesnake
V2EX    程序员

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

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

    自己的一个 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  
    PRO
       2020-06-18 13:53:11 +08:00
    NAT 的 HA 建议上硬件 支持双击热备双主的防火墙那种

    软件实现,我估计你们提 F5 他们都不干的话,怕是买不起
    realpg
        12
    realpg  
    PRO
       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     Solana     5858 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 08:44 PVG 16:44 LAX 01:44 JFK 04:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86