是否有现有的Linux / POSIX C / C ++库或示例代码可用于如何将套接字从一个物理接口重新绑定到另一个物理接口?
例如,我正在使用与物理连接A关联的套接字传输ping,并且我想将该套接字重新绑定到物理连接B,并在切换期间短暂延迟后继续在连接B上发送和接收ping数据包。
我只需要这个功能用于无会话协议。
谢谢!
更新:
我正在尝试为PPP和以太网设备提供故障转移解决方案。
我有一个基本脚本,可以通过使用iptables,NAT和路由表完成90%的功能。
问题是当发生故障转移时,ping继续在次要连接上发送,但它们的源IP来自旧连接。
我与几位从事商业路由器工作的人交谈过,他们建议将套接字重新绑定到次要接口。
更新2:
我很抱歉没有更早地指明这一点。此解决方案将在路由器上运行。我无法更改ping程序,因为它将在客户机上运行。我使用ping只是一个例子,任何非会话型连接都应能够切换。我在几个商业路由器上测试了此功能,它确实有效。不幸的是,他们的软件是专有的,但是从各种对话和测试中,我发现他们在故障转移时重新绑定了套接字。
例如,我正在使用与物理连接A关联的套接字传输ping,并且我想将该套接字重新绑定到物理连接B,并在切换期间短暂延迟后继续在连接B上发送和接收ping数据包。
我只需要这个功能用于无会话协议。
谢谢!
更新:
我正在尝试为PPP和以太网设备提供故障转移解决方案。
我有一个基本脚本,可以通过使用iptables,NAT和路由表完成90%的功能。
问题是当发生故障转移时,ping继续在次要连接上发送,但它们的源IP来自旧连接。
我与几位从事商业路由器工作的人交谈过,他们建议将套接字重新绑定到次要接口。
更新2:
我很抱歉没有更早地指明这一点。此解决方案将在路由器上运行。我无法更改ping程序,因为它将在客户机上运行。我使用ping只是一个例子,任何非会话型连接都应能够切换。我在几个商业路由器上测试了此功能,它确实有效。不幸的是,他们的软件是专有的,但是从各种对话和测试中,我发现他们在故障转移时重新绑定了套接字。