如何防止数据跨 NIC 流动

2021-10-07 21:24:15 +08:00
 sherlock1122
两个节点,每个节点有 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 相关的路由都被删除了。
1707 次点击
所在节点    程序员
11 条回复
sujin190
2021-10-07 21:30:33 +08:00
nic2 被停了,那数据不走 nic1 就没地方走了啊,所以不让走 nic1 是为啥
also24
2021-10-07 21:33:04 +08:00
默认网关的意思就是没有匹配的路由的时候就走它嘛,不然的话这些流量就只能进黑洞了

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

如果不是你本地机器,10 开头的是私有地址,理论上在公网上不会存在这类地址。就算存在于某些地方的超级局域网,数据库暴露在公网也非常少见,就算有也会有防火墙。ok,你运气超好,真的被你碰上了,密码不对也你也连不上。访问错误能产生多少带宽啊。ok,你运气超好,密码也被你碰对了,恰好里面有相同的数据库名字供你查询产生带宽消耗,这时候你要怀疑的是这台机器是不是就是你自己的,而不是来问这个网络问题。
sherlock1122
2021-10-08 12:35:11 +08:00
@weyou 算了,你的认知可能理解不到。
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
2021-10-08 16:17:33 +08:00
@2i2Re2PLMaDnghL 你这个方法很赞哇。
我之前想到的是在 nic1 上用 iptables 封掉发往 10.0.100.11 为目的 ip 的包。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/806275

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX