我有两个networking。
一个是运行IP的标准以太网networking。 第二个networking是Infiniband,除了一些自定义协议之外,还可以与IPoIB(IP over Infiniband)进行对话。
位于此networking上的路由器可以使用10.10.10.x IP地址ping通Infiniband主机,也可以ping本地xx.xxx.79.x地址。
我遇到的问题是,即使路由器已启用ipv4转发,坐在以太网networking上的计算机也无法ping或访问infinibandnetworking上的计算机。
您可以转发数据包到/来自IP和IPoIB Infinibandnetworking吗?
按要求,这是我的路由表。
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 xx.xxx.66.61 0.0.0.0 UG 100 0 0 eth2 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 ib0 xx.xxx.66.60 0.0.0.0 255.255.255.252 U 0 0 0 eth2 xx.xxx.79.128 0.0.0.0 255.255.255.128 U 0 0 0 bond0 255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 bond0
eth2是公网,bond0是私有局域网,ib0是infinibandnetworking。 这台机器是两个networking的默认路由器。
注意:这个链接似乎表明这是可能的。 尽pipe我随后在一台具有旧DDR硬件的testing机上进行了设置,但仍然看不到路由。 您也不能桥接ib0设备
更新并回答。
我遇到的问题实际上与路由有关。 所以是的,它确实有效。 在我的特殊设置中,一些主机在同一networking上有infiniband和以太网卡。 所以答复是通过不同的路线传回客户端。 Linux中的答案是设置反向path过滤 。
net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.all.rp_filter = 2
然后它工作。
您的路线configuration正确。
检查infinibandnetworking上的主机是否将此路由器用作其默认网关,或者它们的默认网关具有通过此路由器configuration的以太网LAN前缀的路由。
还要检查一下路由器上没有任何防火墙规则可以阻止连接,并且你不会尝试执行NAT(在这种情况下,你不需要; RFC1918 IP的限制是你不能将它们公布给公共互联网,而不是你不能在可路由的IP内部使用它们)。 在这种情况下,如果您希望infiniband IP具有Internet访问权限,则应该在边界网关对其进行NAT转换。
看起来这个路由器实际上可能是你的边界网关。 如果是这种情况,并且您正在使用NAT为RFC1918子网提供Internet访问,则应在NAT预路由和正在发送的默认链路开始处添加-j RETURN规则,其中源是RFC1918地址,目标是你的其他子网,以防止NAT在这种情况下发生。 或者,也可以对那些带有eth2输出接口和RFC1918源地址的数据包进行SNAT处理。
您可能还需要检查接口上的MTU设置,但这不应该给默认的ping大小带来问题。 应该将MTU设置为接口在第2层介质上可以转发的最大数据包大小,而不会丢失数据包。 如果太低,也可能导致连接问题。 以太网的典型设置是1500字节。
除此之外,归功于分层模型,当然您可以在IPnetworking之间转发数据包,而不pipe第2层介质如何。 大多数互联网实际上是这样工作的(比如有线调制解调器,它是第2层DOCSIS到以太网桥,也认为所有带有MPLS和以太网接口的模块化思科路由器,以及十亿其他types的设备)。
你不需要一个桥梁。
另外,考虑不要使用来自networking工具的route ,因为它和时间一样古老,缺less很多function(比如正确识别你的全球广播的黑洞路由)。 而是使用iproute2的ip route 。