
Em um túnel ponto a ponto, consegui ter o mesmo IP duas vezes. Parece um bug, acho que pode estar relacionado a alguma representação interna da máscara de rede. Ele pode ser reproduzido com as etapas abaixo.
Eu criei um túnel tun assim:
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
Listei o endereço:
$ ip address list dev tun3
…
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun3
…
Como você pode ver, parece não haver máscara de rede associada ao 10.8.0.1. Mas ifconfig relata /32:
$ ifconfig tun3
…
inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.2
…
Se eu iproute2
adicionar o mesmo endereço 10.8.0.1/32, não há erro, o endereço é adicionado e depois listado.
# 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
…
A questão é: por quê? Eu estava esperando um:
RTNETLINK answers: File exists
Caso você esteja se perguntando por que eu tentaria isso, eu estava tentando ajudar comessa questão.
Responder1
Em vez de usar ifconfig
para atribuição de IP, você pode usar ip
o pacote iproute2. Seu manual descreve isso claramente:
man ip-address
: "…
ENDEREÇO do paro endereço do terminal remoto para interfaces pointopoint. Novamente, o ENDEREÇOpode ser seguido por uma barra e um número decimal, codificando o comprimento do prefixo da rede.Se um endereço de peer for especificado, o endereço local não poderá ter um comprimento de prefixo.O prefixo da rede está associado ao peer e não ao endereço local.
…"