RHEL7やCentOS7では、多くのエンジニアが使っていたであろうifconfig等のコマンドが利用不可になる。 これは、net-toolsというパッケージが非推奨という扱いであり、デフォルトで含まれなくなるためだ。 (実際にnet-toolsは長い間、開発が止まっている) 今後、同様の操作をする場合は、iproute2パッケージに含まれるコマンドを利用することになる。

もちろん、nettoolsが無くなっちゃうからiproute2を使う、という後ろ向きな理由もあるが、 もっと前向きな理由もあるはず。そこで、

そもそも、なぜiproute2に移行しなくてはいけないのか?

について、気になって色々と調べてみたので、本記事では調べて分かった、 移行に前向きになる理由3つを以下にまとめてみる。


1. 高機能だから

ネットワーク周りの高機能な操作、例えばネットワークトラフィックを制御しようとすると、 net-toolsでは対応できない。iproute2では、これが実現可能となる。 具体的には、tcコマンドで対応可能となる。

また、ルーティングテーブルを複数保持するような複雑なルーティングを実現したい場合は、 net-toolsでは対応できないため、iproute2が必要となる。

(個人的感想:といっても、ほとんどのエンジニアには不必要なコマンドな気がする。。。)

2. 速いから

net-toolsのコマンドであるifconfigは、例えば/procから情報を収集して、情報を出力している。 一方で、iproute2はNetlink APIを利用しており、 ソケットライクな方式にて、カーネルとネットワーク関連の情報をやりとりする。

具体例として、この記事によると、ミリ秒単位の世界では速度差があるようだ。

(個人的感想:といっても、体感的には変わらないからあんまり気にしなくても。。。)

3. 慣れたら便利だから

net-toolsでは、ネットワーク周りの操作をするときに、複数のコマンドを覚えておく必要があった。 例えば、ifconfig, route, arp 等の別々のコマンドが必要となる。

一方で、iproute2では、ipコマンドを覚えておけば、後は直感的な操作で対応できる。 例えば、

  • ルーティングテーブルを見たい -> ip route show
  • IPアドレスを確認したい -> ip addr show

と打てば良い。実際のコマンドの文字列を見ると、やりたいことと沿っていると思う。また、より便利なことに上記のコマンドは短縮できる。つまり、

  • ルーティングテーブルを見たい -> ip r s
  • IPアドレスを確認したい -> ip a s

と、短縮コマンドが使えるのだ。(この辺りは、CiscoのIOSを使ったことがあれば、ピンとくるかも)

上記のように直感的なコマンド形式が使える、かつ短縮コマンドが使える点から、iproute2が良い。

(個人的感想:といっても、どうせtab補完とか、historyから呼び出すからあんまり変わらないかも。。。)


まとめ

高機能で、速くて、便利だから、iproute2を使うべき。

(個人的感想:なんだかんだいつか慣れるもんだ)


参考