Wie verhält sich der Befehl genau: Änderung der IP-Adresse?

12

Ich habe mit IPv6 herumgespielt und Lebensdauern angesprochen. Ich habe herausgefunden, dass das valid_lftAttribut eine v6-Adresse bei korrekter Verwendung automatisch verschwinden lässt. Um die Lebensdauer einer Adresse zu verlängern, würde ich

ip addr change 1:2:3:4::1/112 dev eth0 valid_lft 86000

Die Verwendung von ip addr changeerscheint nicht in einer Manpage, auf die ich Zugriff habe (Debian, Ubuntu und online ), und auch nicht in der offiziellen Dokumentation . Ich habe es in einem Artikel gefunden, der sich auf eine E-Mail von 2009 an die IPv6-ops-Mailingliste bezieht.

Nach dem, was ich bestimmen konnte, kann man immer ip addr changestatt verwenden ip addr add, denn wenn eine Adresse nicht existiert, ipwird eine hinzugefügt, nur wenn sie ip addr addverwendet wurde.

Ist das richtig, dh kann jemand erklären, was genau ip addr changetut und wie es sich unterscheidet ip addr add?

Bananguin
quelle

Antworten:

6

Wenn Sie sich nicht sicher sind, was etwas tut, und die Dokumentation nichts sagt, gelangen Sie zu den Quellen, nämlich Zeile 1588 :

if (matches(*argv, "change") == 0 ||
    strcmp(*argv, "chg") == 0)
    return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);

Also, was macht es? Gibt das Ergebnis der Ausführung der in Zeile 1379 definiertenipaddr_modify() Funktion mit den Argumenten und zurück .RTM_NEWADDRNLM_F_REPLACE

Nach dem, was ich bestimmen konnte, kann man immer ip addr changestatt verwenden ip addr add, denn wenn eine Adresse nicht existiert, ipwird eine hinzugefügt, nur wenn sie ip addr addverwendet wurde.

Ist das richtig, dh kann jemand erklären, was genau ip addr changetut und wie es sich unterscheidet ip addr add?

Nein, adderstellt oder führt die angegebenen Argumente aus (falls vorhanden), changesucht nach dem Argument und ersetzt es.

Übrigens replacescheint es ein Kompromiss zwischen addund changeda es eine gemischte Menge von Argumenten verwendet.

Braiam
quelle
Und wie wirken sich diese Flaggen aus? Weil sie in der Kommandozeile nicht wirklich angezeigt werden. Zumal es so changefunktioniert, addwenn die zu ändernde Adresse noch nicht existiert. Ich hätte nicht gedacht, dass ich die Kernelquelle durchsuchen müsste (da dort letztendlich die Flags übergeben werden), um herauszufinden, was eines der beliebtesten Befehlszeilentools für die Netzwerkverwaltung tut. Das sind nicht die 90er ... :-) Aber trotzdem danke!
Bananguin