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

如何防止数据跨 NIC 流动

  •  
  •   sherlock1122 · 2021-10-07 21:24:15 +08:00 · 1694 次点击
    这是一个创建于 1154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两个节点,每个节点有 2 个 NIC,分别是千兆和万兆口。IP 分别是:
    Host1:
    nic1:192.168.100.10
    nic2:10.0.100.10

    Host2:
    nic1:192.168.100.11
    nic2:10.0.100.11

    Host1 里面有发送到 10.0.100.11 的数据,当停掉 host1 的 nic2:ifdown nic2,数据就会从 nic1 的默认网关出去,怎么避免这个行为呢?
    经过测试,(策略)路由好像解决不了问题,因为 ifdown nic2 之后,nic2 相关的路由都被删除了。
    11 条回复    2021-10-08 16:17:33 +08:00
    sujin190
        1
    sujin190  
       2021-10-07 21:30:33 +08:00 via Android
    nic2 被停了,那数据不走 nic1 就没地方走了啊,所以不让走 nic1 是为啥
    also24
        2
    also24  
       2021-10-07 21:33:04 +08:00
    默认网关的意思就是没有匹配的路由的时候就走它嘛,不然的话这些流量就只能进黑洞了

    ip route add blackhole 10.0.100.10/8
    Kinnice
        3
    Kinnice  
       2021-10-07 23:52:55 +08:00
    所有的路由都自己配
    weyou
        4
    weyou  
       2021-10-08 07:55:32 +08:00 via Android
    删除默认路由应该就不会自动走 nic1 了。不过你的想法真是奇怪, 走默认路由不是很正常?
    sherlock1122
        5
    sherlock1122  
    OP
       2021-10-08 08:20:23 +08:00 via Android
    @weyou
    @sujin190 万兆流量进入千兆网最后也不可达,相反会对千兆路由产生大量的负担。
    weyou
        6
    weyou  
       2021-10-08 08:25:28 +08:00 via Android
    @sherlock1122 tcp 的话不存在这个问题,如果是 udp 才 可能 有这个问题
    sherlock1122
        7
    sherlock1122  
    OP
       2021-10-08 09:47:56 +08:00
    @weyou 为什么不存在?还可能存在更严重的问题,例如刚好 IP 10.0.100.11 在千兆网络上的另外一个机器(不同于 host 2 )上,且刚好都安装了 mongodb,就会产生服务的访问数据错误,后果很严重。
    weyou
        8
    weyou  
       2021-10-08 11:50:05 +08:00 via Android
    如果是你自己的本地的机器,比如恰好有相同的数据库相同的端口密码,自然会有影响,但都是你自己可控的,一般也不是用这种方式来解决的,因为很显然,两台机器使用了相同的 ip 才是问题的根源。

    如果不是你本地机器,10 开头的是私有地址,理论上在公网上不会存在这类地址。就算存在于某些地方的超级局域网,数据库暴露在公网也非常少见,就算有也会有防火墙。ok,你运气超好,真的被你碰上了,密码不对也你也连不上。访问错误能产生多少带宽啊。ok,你运气超好,密码也被你碰对了,恰好里面有相同的数据库名字供你查询产生带宽消耗,这时候你要怀疑的是这台机器是不是就是你自己的,而不是来问这个网络问题。
    sherlock1122
        9
    sherlock1122  
    OP
       2021-10-08 12:35:11 +08:00
    @weyou 算了,你的认知可能理解不到。
    2i2Re2PLMaDnghL
        10
    2i2Re2PLMaDnghL  
       2021-10-08 14:46:00 +08:00
    你先画个网络拓扑出来,不然鸡同鸭讲。

    从字面上来看的话,我认为你可以 blackhole 掉 10/8 然后添加两条 10.0/9 和 10.128/9 via nic2
    这样有 nic2 会根据最长匹配前缀走 nic2,ifdown nic2 了以后就会 blackhole
    sherlock1122
        11
    sherlock1122  
    OP
       2021-10-08 16:17:33 +08:00
    @2i2Re2PLMaDnghL 你这个方法很赞哇。
    我之前想到的是在 nic1 上用 iptables 封掉发往 10.0.100.11 为目的 ip 的包。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5849 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:34 · PVG 10:34 · LAX 18:34 · JFK 21:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.