在点对点隧道中,我能够两次获得相同的 IP。这看起来像是一个错误,我认为这可能与网络掩码的某些内部表示有关。可以使用以下步骤重现它。
我创建了一个这样的 tun 隧道:
ip tuntap add dev tun3 mode tun user alice group alice
ip address add 10.8.0.1 peer 10.8.0.2/32 dev tun3
我列出了地址:
$ ip address list dev tun3
…
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun3
…
如您所见,似乎没有与 10.8.0.1 关联的网络掩码。但 ifconfig 报告 /32:
$ ifconfig tun3
…
inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.2
…
如果我用来iproute2
添加相同的地址 10.8.0.1/32,则没有错误,该地址被添加然后列出。
# ip address add 10.8.0.1/32 dev tun3
$ ip address list dev tun3
…
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun3
…
inet 10.8.0.1/32 scope global tun3
…
问题是,为什么?我原本以为是:
RTNETLINK answers: File exists
如果你想知道我为什么要尝试这个,我当时想帮助这个问题。
答案1
除了使用ifconfig
进行 IP 分配之外,您还可以继续使用ip
iproute2 包中的 。 它的手册对此进行了非常清晰的描述:
man ip-address
:“…
对等地址pointopoint 接口的远程端点地址。同样,ADDRESS后面可以跟一个斜杠和一个十进制数,用于编码网络前缀长度。如果指定了对等地址,则本地地址不能具有前缀长度。网络前缀与对等端相关联,而不是与本地地址相关联。
“…”