【发布时间】:2017-05-30 05:58:51
【问题描述】:
我有一个场景,我们的 Linux 运行盒必须接收发往非本地地址的数据包。例如我没有在我的盒子的任何接口上配置 1::1,但我希望收到发往它的数据包。我的数据包到达ip6_rcv_finish()。
这里ip6_input_route() 返回一个指向丢弃函数的dst_entry。如果我将 1::1 添加到其中一个接口,我会看到 ip6_input_route() 返回带有 ip6_input() 的 dst_entry 并且应用程序通过套接字接收数据包。有没有办法在不显式添加地址的情况下实现这一点?
我正在使用 IP_BINDTODEVICE 和 IP_TRANSPARENT 选项。这些选项让我可以将套接字绑定到 1::1,即使该地址未在任何接口上配置。
【问题讨论】:
-
更新另一个相关问题。 IP_TRANSPARENT 不应该在这里提供帮助吗?如果您可以选择绑定到非本地地址,它是否也应该不提供接收该地址的数据包?否则只绑定到非本地地址而不接收相同的数据包有什么用?
-
对于不熟悉此处使用的“压缩 IP 格式”的人,请参阅gestioip.net/docu/ipv6_address_examples.html