有没有现有的Linux/POSIX C/C++库或示例代码来说明如何将套接字从一个物理接口重新绑定到另一个接口?将套接字重新绑定到不同的接口
例如,我在一个与物理连接A相关联的套接字上ping传输,并且我想将该套接字重新绑定到物理连接B,并使ping数据包继续在连接B上发送和接收(在短暂切换期间的延迟)。
我只需要这个用于无会话协议。
谢谢
更新:
我试图提供与PPP和以太网设备使用故障转移解决方案。
我有一个基本的脚本,可以通过使用iptables,NAT和路由表完成90%的功能。
问题是当故障转移发生时,ping继续在辅助连接上发送,但是,它们的源IP来自旧连接。
我已经和一些在商用路由器上工作的人讲过话了,他们的建议是将套接字重新绑定到辅助接口。
更新2:
我很抱歉没有指定此更早。该解决方案将在路由器上运行。我无法更改ping程序,因为它会在客户端计算机上运行。我仅以ping为例,任何不基于会话的连接都应该能够切换。我在几台商用路由器上测试了这个功能,它确实有效。不幸的是,他们的软件是专有的,但是,从各种对话和测试中,我发现它们在故障转移时重新绑定套接字。
我可能在这里错过了一些东西,但你试过只关闭套接字,然后绑定到其他接口? – Duck 2009-05-06 02:51:51
谢谢鸭, 我会尝试一下,看看会发生什么。 – 2009-05-06 21:06:49