【发布时间】:2011-04-25 13:41:06
【问题描述】:
我想知道一种方法可以选择使用 UDP 套接字发送的数据包的 IP 源地址。我需要使用环回接口 lo:0 的 IP 发送,但套接字会自动用输出接口的 IP 填充源 IP。
例如,假设有 2 台机器通过 VLAN 连接,各自的接口地址为 10.10.1.1 和 10.10.1.2。机器环回地址为 100.100.100.1 和 100.100.100.2。
现在,发生的事情是:
Machine 1 Machine 2
---> src: 10.10.1.1/dst: 100.100.100.2
dst: 100.100.100.2/src: 10.10.10.2 <----
我需要以下物品:
Machine 1 Machine 2
---> src: 100.100.100.1/dst: 100.100.100.2
dst: 100.100.100.1/src: 100.100.100.2 <----
有人知道在使用套接字时设置传出源 IP 的任何解决方案吗?
我正在用 C 编程,我正在使用 Linux。
提前致谢。
【问题讨论】:
-
我很好奇你为什么“需要”这样做?
-
机器是直接连接的还是它们之间有交换机/路由器?如果有设备,它在哪一层运行?
标签: c linux networking