Linux
CentOS
Network
iP
ifconfig

ifconfig使うの、もうやめるべき?[serverfault]

More than 3 years have passed since last update.

※ serverfault(システム管理者用のQ&Aサイト)の質問とそれに対する回答やコメントをまとめた記事です。

古い話ですが、未だにifconfigを使っているのと、海外のエンジニアたちの会話が少し面白かったのでまとめました。


ifconfigってもう使っちゃいけないんですか?


質問

Infinibandを搭載したサーバでifconfigコマンドを実行したところ、以下のような警告が出力されました。

Ifconfig uses the ioctl access method to get the full address 

information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.

和訳:ifconfigioctl accessメソッドを使ってアドレスを取得しているため、20バイトあるInfinibandアドレスの始めの8バイトしかとれません。ifconfigは古いので、ipを使ってください

これはつまりifconfigを使うのはやめておけってことですか?いずれipコマンドに完全に塗り変えられるのでしょうか?それとも、近々ifconfigも更新されるんでしょうか?


反応


  • 早く切り替えた方がいい。俺は指をifconfigからipに慣らすのに何ヶ月もかかった。


  • ifconfigが非推奨だって?俺は今まで洞穴で暮らしてたのか。

  • 非推奨なのはLinuxだけだよ。FreeBSDではそんな警告見たことない。

  • コマンド名がipなのにリンク層の機能も持ってるって面白いな。


回答1(ベストアンサー)

Thomas Pircherのウェブサイトを引用させてもらいます(cc-by-sa):

/bin/ipコマンドはもう何年も前から存在しているにもかかわらず、皆未だに/sbin/ifconfigを使いたがります。そのため、ifconfigがすぐ使えなくなるということはないと思われます。ただしipの方がはるかにパワフルで、いずれは置き換えられるでしょう。

ここでは新機能の紹介はせずにifconfigとシンタックスを比べてみます。

各種インタフェースと設定の表示

ifconfig

ip addr show
ip link show

インタフェースの起動

ifconfig eth0 up

ip link set eth0 up

インタフェースの停止

ifconfig eth0 down

ip link set eth0 down


反応


  • どの例でもipコマンドの方が長くて複雑じゃないか。それが皆ifconfigを使いたがる理由なんじゃないかな。


  • ipの方が機能が豊富なんだからコマンドが複雑になるのは当たり前じゃないか。それにip addr showip aに省略できる。

  • 一つ皆に覚えておいてほしいのは、この世の何もかもがLinuxではないってことだ。SolarisもAIXも、HP-UXやBSD、SCOだってifconfigを使ってる。Linux管理者じゃなくてUnix管理者になりたいのなら、ifconfigは知っておくべきだ。


回答2

その通り。ipconfigLinuxではiproute2(ipコマンドの正式名)に取って代わられるため、非推奨となっています。

同様に、arproutenetstatも非推奨です。

ただし、iproute2はLinux固有のコマンドで、他のUnixはifconfigを使うので注意が必要です。

Why ifconfig sucks [英語]

↑ここによると、ifconfig10年以上メンテナンスされていません。


反応



  • ifconfigはもともとBSDが開発したもので、Linuxは基本的にBSDのIPスタックを使っていたからな(余談だがこれはWindowsも同じ。ipconfigifconfigが似てるのはこの歴史があるためだ)。Linuxカーネル2.4くらいからBSDのスタックから離れていったけど、これが2001年の始めだったから、Linuxのifconfigがそれ以来メンテナンスされていないのはしょうがない。

  • 10年!?Githubで「ifconfigを守れ」プロジェクトを立ち上げるべきだ。


所感

3年前の記事ですが、やっぱりまだifconfig派が多いようですね。

自分も基本的にMacなのでipに乗り換えるのは難しそうですが、brewで入れられるらしいし、試してみてもいいかもしれません。

やっぱり世界のエンジニア達の会話はなんだかんだ勉強になります。


参考 [英語]

serverfault - Should I quit using Ifconfig?

ip command in Mac OS X terminal