首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过其子网也与另一个接口的子网相同的虚拟接口发送数据包

通过其子网也与另一个接口的子网相同的虚拟接口发送数据包
EN

Stack Overflow用户
提问于 2019-09-20 23:07:13
回答 1查看 38关注 0票数 0

我有一台带有两个接口eth0和eth1的Linux机器。eth0为192.168.2.30,eth1为172.16.30.20。eth0连接到路由器,路由器也是广域网的网关。eth1已连接到局域网。一切都运行得很好,直到我不得不将一组IP地址为192.168.2.5 - 192.168.2.15的设备连接到eth1也连接到的局域网。

我想向这些设备发送组播数据包。由于多播在相同的子网上工作,因此我使用以下命令创建了一个IP别名。

system("ifconfig eth1:1 192.168.2.100 netmask 255.255.255.0 up");

尽管添加了上述内容,但数据包并未通过eth1。这是因为eth0也具有与eth1: 1相同的子网。

我尝试调用ip route add dev eth1。但是,没有成功。

如果任何人能提供建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-09-21 01:04:25

从外观上看,这里至少有两个问题,根据您选择的解决方案,可能会出现其他问题。

问题一,重叠的子网:解决这个问题的绝对100%正确的方法是更改子网,使它们不重叠。我再怎么强调这在你的情况下有多重要也不为过。如果192.168.2.5 - 192.168.2.15上这些计算机被假定连接到与eth0相同的网络,那么您需要重新考虑您的设置,因为这永远不会起作用,因为您将创建网络环路或错误的路由。

在第一种情况下,192.168.2.5 - 192.168.2.15和192.168.2.15没有以任何方式进行物理连接,如果你上面的人说你不能这样做,你可以尝试在eth1上创建一个NAT,这样你的系统就可以看到不同网络上的子网。但这会使对路由的理解变得混乱,并可能干扰组播流量。

完成此操作后,运行tracerroute以确保流量正确通过。如果不是,请提供输出和您希望它与当前设置一起采用的路由。

如果多播仍然不起作用,那么我建议为它创建另一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58030984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档