我有多个networking适配器,并且需要能够指定我的套接字用于出站连接的适配器,以便我可以有一个或多个套接字绑定到每个networking。 我已经看了这个问题的其他答案,但似乎无法使其工作。
将套接字绑定到我想要连接的适配器的IP address不起作用。 SO_BINDTODEVICE似乎也不工作,试图通过适配器名称或适配器索引,调用成功,但套接字无法连接。 我无法find使用SO_BINDTODEVICE来澄清正确用法的完整示例。
使用上述方法的症状是服务器接收到连接,但connect()在客户端上失败,错误代码为2(?)。 我读了ip路由是需要的,以确保答复数据包发送通过相同的适配器,他们收到,但似乎无法得到正确的ip route命令。
The tables Teth0 and Twlan0 have been added. For eth0, the IP address is 192.168.1.23, the gateway is 192.168.1.1 For wlan0, the IP address is 192.168.2.100, the gateway is 192.168.2.1 ip route add 192.168.1.1/32 dev eth0 src 192.168.1.23 table Teth0 ip route add default via 192.168.1.1 table Teth0 ip rule add from 192.168.1.23 table Teth0 ip route add 192.168.2.1/32 dev wlan0 src 192.168.2.100 table Twlan0 ip route add default via 192.168.2.1 table Twlan0 ip rule add from 192.168.2.100 table Twlan0
ip路由刷新caching
我在GumStix Overo(Omap3)上m using Open Embedded Linux 2.6.36。
任何提示将不胜感激,因为我在这里坚果;)
你正在试图定义两条到外界的默认路由。 你应该只有一个默认的网关/路由。
赔率是这是怎么回事:
有一些中等质量的工具可以为你处理这个问题,但是这不适用于静态的IP地址,绝对不是一个坏的路由表。