题
我想送数据之间的两个网接口与一个交叉电缆在Linux。这两个网接口正在同一个盒子。我定义的以太网接口有不同的静态ip地址(1.2.3.4和5.6.7.8)和已使用的座发送字节从一个IP地址。我想强调的是,我想让数据离开盒子的一个接口框并获得上收到的其他接口相同的框。一个后果是,拔掉电缆将防止之间的通信的客户和服务器上的一样的箱子。
内核是比我聪明我想,并决定它不需要发送信息的在线和路线数据之间的直接插座境内,因而否定了该试验。我已经尝试使用SO_BINDTODEVICE力的客户数据发送出特定的接口,但是服务器从来没有看到它。我真的被卡住,这似乎并不喜欢它应该是这个困难的。
有两条路线-n表
Dest Gateway Genmask flags metric use interface
1.2.3.0 0.0.0.0 255.255.255.0 U 0 0 eth0
5.6.7.0 0.0.0.0 255.255.255.0 U 0 0 eth1
解决方案
您不能1.2.3.4/24之间的通信使用IP来5.6.7.8/24没有去,虽然路由器。问题是,IP只能跟其他计算机在同一网段。要calulate你需要做一个逻辑的和网络地址的接口地址和子网掩码在两者之间。这会给你的网络地址。如果两个网络地址不同,那么路由器将需要。在您的例子中,你将有网络地址1.2.3.0和5.6.7.0。因为这些是不同的它将会以发送数据。
更重要的是大多数网络堆栈是足够聪明地看到,如果这两个接口都是在同一台计算机上也不会的方式将数据发送给所有的phyical接口。它可能只派虽然IP堆栈的消息。但同样也将需要vaild地址为它工作。
您应该甚至能够测试仅使用环回网络设备中的类似的设置。 (虚拟网络卡。)
其他提示
尝试使用的以下两个IP地址:
- 192.168.64.1
- 192.168.64.2
我不确定这是问题所在,但1.2.3.4和5.6.7.8不在同一个子网。(因为当你在敷面膜每一个,你没有得到相同的网址,作为目标列示。)
不隶属于 StackOverflow