IPアドレス変更コマンドの正確な動作は何ですか?

IPアドレス変更コマンドの正確な動作は何ですか?

私はIPv6とアドレスライフサイクルで遊んだ。valid_lftこのプロパティを正しく使用すると、v6アドレスが自動的に消えることがわかりました。住所のライフサイクルを延長するため

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

ip addr change私がアクセスできるマニュアルページ(Debian、Ubuntu、およびオンライン)そしてそこにもない公式文書。私記事2009年にipv6-opsメーリングリストに送信されたEメールへの参照。

私が判断できるところによれば、アドレスが存在しなければ使用される場合、アドレスが追加されるので、常にip addr change代わりに使用できるようです。ip addr addipip addr add

これは正しいですか?つまり、ip addr changeそれが正確に何であるのか、そしてどう違うのかを説明できる人はいますかip addr add

ベストアンサー1

どの操作が実行されるのかわからず、文書に記載されていない場合は、ソースを見つけることができます。1588ライン:

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

それで、それは何をしますか?ipaddr_modify()関数実行結果を返すライン1379の定義パラメータRTM_NEWADDRNLM_F_REPLACE

私が判断できるところによれば、アドレスが存在しなければ使用される場合、アドレスが追加されるので、常にip addr change代わりに使用できるようです。ip addr addipip addr add

これは正しいですか?つまり、ip addr changeそれが正確に何であるのか、そしてどう違うのかを説明できる人はいますかip addr add

いいえ、add与えられた引数が生成または実行され(与えられた場合)、change引数を見つけて置き換えます。

ところで、パラメータ混合を使用するため、 とパラメータの間の妥協案replaceのようです。addchange

おすすめ記事