TCP 负载均衡架构方案提问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aino
V2EX    问与答

TCP 负载均衡架构方案提问

  •  
  •   aino 2018-08-23 15:23:51 +08:00 1964 次点击
    这是一个创建于 2676 天前的主题,其中的信息可能已经有所发展或是发生改变。

    V2 大佬多过来提问一下

    目前项目接入了很多不同协议的硬件设备,为了识别协议每个都开了一个端口,通过固定的端口去判断是什么厂商协议。

    目前情况就是端口泛滥,分布式不知道怎么做。

    想整一个网关层开放一个端口一个固定 IP,然后分流去各个服务器处理。求大佬教育!!!!!!!!!!

    10 条回复    2018-08-23 17:13:37 +08:00
    mhycy
        1
    mhycy  
       2018-08-23 15:30:21 +08:00
    端口泛滥分布式不知道怎么做的意思是?
    另:固定端口固定 IP 会遇到协议识别问题
    s609926202
        2
    s609926202  
       2018-08-23 15:31:17 +08:00
    占楼问:TCP 下的负载均衡如何获取 client ip,,,
    aino
        3
    aino  
    OP
       2018-08-23 15:34:44 +08:00
    @mhycy
    1、意思是现在为了识别是那一家厂商的协议就得在服务器上开放一个端口去识别它,想做成之开放一个端口并且能够识别得出是哪家厂商协议的。
    2、我想固定端口 IP 主要是为了以后服务器分布式,多 IP,让设备不用更改 IP,就在网关层去分发下去。
    aino
        4
    aino  
    OP
       2018-08-23 15:36:21 +08:00
    @s609926202 这个问题问的好!我也想多,nginx 分流下发到服务器可以的,当是服务器上报到设备,分流的情况怎么找到设备的 IP 呢
    mhycy
        5
    mhycy  
       2018-08-23 15:51:30 +08:00
    @aino
    设备不更改 IP 也要考虑到机房搬迁的可能性
    建议使用域名绑定 ip,这样设备只需要连接之前动态查询现在的 IP 就好

    至于网关的单端口多协议负载均衡,有一个前提:协议的定义是已知且容易区分的
    需要考虑协议识别的资源消耗,虽说只要识别出个头就可以直接转发了

    至于多出来的那个如何读取到客户端 ip 的问题,
    代理式负载均衡无解,除非这是路由设备,那么通过 NAT 形式是可以拿到源 IP 的
    s609926202
        6
    s609926202  
       2018-08-23 16:27:12 +08:00
    @mhycy
    TCP 下我看 AWS 可以开启代理协议标头获取 IP,试过一次把站点搞崩后没敢再试、
    mhycy
        7
    mhycy  
       2018-08-23 16:29:13 +08:00
    @s609926202
    你说的是 HTTP ?

    TCP 上承载的协议不明的话除了 IP 包头加料(用扩展字段)好像没别的方案了。。
    keramist
        8
    keramist  
       2018-08-23 16:29:55 +08:00 via Android
    haproxy 行的话就上吧
    vanlink
        9
    vanlink  
       2018-08-23 17:12:19 +08:00
    @s609926202
    请参考 https://www.weibo.com/ttarticle/p/show?id=2313501000014137437101208291
    一般没这么用的,需要改造真实服务器的 tcp 协议栈。
    还是得在应用层做文章。
    vanlink
        10
    vanlink  
       2018-08-23 17:13:37 +08:00
    那得做应用层协议识别,费时费力,一般没这么干的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1999 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:42 PVG 08:42 LAX 16:42 JFK 19:42
    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