
In einem Punkt-zu-Punkt-Tunnel konnte ich zweimal dieselbe IP haben. Das sieht nach einem Fehler aus. Ich denke, das könnte mit einer internen Darstellung der Netzmaske zusammenhängen. Es kann mit den folgenden Schritten reproduziert werden.
Ich habe einen Bottichtunnel wie diesen gebaut:
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
Ich habe die Adresse angegeben:
$ ip address list dev tun3
…
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun3
…
Wie Sie sehen, scheint 10.8.0.1 keine Netzmaske zugeordnet zu sein. Aber ifconfig meldet /32:
$ ifconfig tun3
…
inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.2
…
Wenn ich iproute2
dieselbe Adresse 10.8.0.1/32 hinzufüge, tritt kein Fehler auf, die Adresse wird hinzugefügt und dann aufgelistet.
# 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
…
Die Frage ist, warum? Ich hatte erwartet:
RTNETLINK answers: File exists
Falls Sie sich fragen, warum ich das versuche, ich wollte helfen mitdiese Frage.
Antwort1
Anstatt ifconfig
für die IP-Zuweisung zu verwenden, können Sie auch das Paket iproute2 verwenden ip
. Im Handbuch wird dies recht klar beschrieben:
man ip-address
: "…
Peer-Adressedie Adresse des Remote-Endpunkts für Point-to-Point-Schnittstellen. Auch hier gilt die ADRESSEkann von einem Schrägstrich und einer Dezimalzahl gefolgt werden, die die Länge des Netzwerkpräfixes kodiert.Wenn eine Peer-Adresse angegeben wird, darf die lokale Adresse keine Präfixlänge haben.Das Netzwerkpräfix ist mit dem Peer und nicht mit der lokalen Adresse verknüpft..
…"