当ブログは YAMDAS Project の更新履歴ページです。2019年よりはてなブログに移転しました。

Twitter はてなアンテナに追加 Feedlyに登録 RSS

Linuxがifconfigやnetstatといった昔からおなじみのネットワークコマンドを置き換える本当の理由

もはや Linux で ifconfig や netstat といった昔からある(つまり Unix 由来の)ネットワークツールを非推奨にして、ss や ip といったものに置き換えているという話をワタシが知ったのは……記憶を辿ると、どうやら山形浩生経由らしい。

この方針に対し、古手のシステム管理者には、なんで安定して動いているものを置き換えなければならないのかとイライラする向きもあるのだが、それが必要な理由について解説している。

まず一つには、/proc 配下のいろんなファイルを読む ifconfig や netstat は、iproute2 の一部であり netlink ソケットを利用する ss や ip よりもコマンドの実行が非効率というのがある。これが大規模なシステムだと問題になるというのだ。

そしてもう一つには、古いコマンドはある意味板ばさみにあるということ。つまり、片方ではこうしたネットワークのコマンドは、Linux カーネル自身のネットワーキングの有様を知りたいから利用するのだが、もう片方ではこれらのコマンドは、コマンドラインからの出力という伝統的なインタフェースでの利用を想定しており(追記@takeh_t さんからご指摘いただいているが、ここは誤訳っぽくて、問題はコマンドラインという形式ではなく、コマンドラインの出力内容が実態と乖離していることが問題ということです)、それがカーネルのネットワーキングの現実を反映できなくなっているとのこと。

そして、カーネルの現実にコマンドを合わせようとすればするほどスクリプトを破壊することになってしまう。このように不正確だし修正するのが大変な ifconfig や netstat といったプログラムの置き換えは誠実なアプローチとのこと。

ふーむ、そうなのか。ネタ元は Slashdot

Linuxネットワークプログラミング

Linuxネットワークプログラミング

[YAMDAS Projectトップページ]


クリエイティブ・コモンズ・ライセンス
YAMDAS現更新履歴のテキストは、クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。

Copyright (c) 2003-2019 yomoyomo (E-mail: ymgrtq at yamdas dot org)