コマンドの正確な動作は何ですか:ip address change?


12

私は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メーリングリストへの電子メールを参照している記事でそれを見つけました。

私が遊んでいると判断できたことから、のip addr change代わりにいつでも使用できると思いip addr addます。アドレスが存在しないip場合ip addr addは、使用された場合でもアドレスが追加されるためです。

それは正しいですか、つまり、正確に何ip addr changeが行われ、どのように異なるのかを誰かが説明できip addr addますか?

回答:


6

何かがわからない場合や、ドキュメントに記載されていない場合は、ソース(1588行目)にアクセスします。

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

それで、それは何をしますか?1379行で定義されipaddr_modify()関数を引数とで実行した結果を返します。RTM_NEWADDRNLM_F_REPLACE

私が遊んでいると判断できたことから、のip addr change代わりにいつでも使用できると思いip addr addます。アドレスが存在しないip場合ip addr addは、使用された場合でもアドレスが追加されるためです。

それは正しいですか、つまり、正確に何ip addr changeが行われ、どのように異なるのかを誰かが説明できip addr addますか?

いいえ、add与えられた引数があればそれを作成または実行しchangeますが、引数を探して置き換えます。

ところで、それは議論の混合バッグを使用するのでreplaceaddとの間の妥協のようchangeです。


そして、それらのフラグの効果は何ですか?コマンドラインでは実際には表示されないためです。特に、変更するアドレスがまだ存在しないかのchangeように機能addします。ネットワーク管理用の最も人気のあるコマンドラインツールの1つが何であるかを見つけるために、カーネルソースを掘り下げる必要があるとは思いませんでした(フラグが最終的に渡される場所だからです)。これは90年代ではありません... :-)とにかくありがとう!
Bananguin 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.