ip6tables IPv6 地址范围比较

ip6tables IPv6 地址范围比较

我正在使用 ip6tables 来限制与服务器的连接。我使用 ip6tables 和“-m iprange --src-range %s-%s”来指定允许连接的主机。

  1. 如果我将范围指定为 8000::0 - ffff::ffff,结果如下所示。

    Chain ripp_0_0 (1 引用)

    目标协议选择源目标
    接受所有::/0 ::/0 源 IP 范围 8000::-ffff::ffff

  2. 如果我将范围指定为 0::0 - ffff::ffff,结果如下所示。

    Chain ripp_0_0 (1 引用)

    目标协议选择源目标
    接受全部::/0 ::/0 源 IP 范围::-ffff::ffff

我的客户端具有链路本地地址 fe80::e91b:befe:97dc:9df5。对于情况 1,ip6tables 工作正常,允许连接。对于情况 2,也应该允许连接,但连接被拒绝。

ip6tables 比较地址的算法是什么。有人能提供一些线索来解决这个问题吗?

此致。

答案1

不确定 ip6tables 的内容,但 ffff::ffff 的意思和你想象的不一样。它扩展为 ffff:0000:0000:0000:0000:0000:0000:ffff。因此,我认为 0::0 到 ffff::ffff 的范围只会在所有中间单词中显示零。如果这就是你的意思,请尝试 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff。

或者,如果您想表示“一半地址空间”和“全部地址空间”,则只需使用 8000::/1 和 ::/0。在使用 IPv6 时,了解网络掩码对于保持理智至关重要。

答案2

::/128是“未指定的地址”;netfilter 可能对此感到困惑,因为这不是一个有效的地址。请尝试 ::1。

相关内容