ifconfigからipコマンドへ移行しよう
従来より長きに渡り利用されてきた「ifconfig」コマンドですが、「ifconfig」コマンドの代わりに「ip」コマンドの利用が推奨されています。「ifconfig」コマンド及び「ip」コマンドは、ネットワークインターフェースの管理や操作を行うコマンドです。
「ip」コマンドは、「iproute2」パッケージから提供されます。
「ip」コマンドは日々進化し、今までよりも簡単に利用できるようになり、そして多くの機能が実装されてきました。
「ifconfig」コマンドを含む「net-tools」パッケージは、「Ubuntu Desktop」ではデフォルトのインストールから外されています。
「Ubuntu Server」ではまだデフォルトでインストールされていますが、ここしばらく「net-tools」パッケージの削除について議論が行われており、将来デフォルトのインストールから外される日がくるかもしれません。
ipコマンドの基本
「ip」コマンドのヘルプは、「man ip」コマンドで表示することができます。
NAME
ip - show / manipulate routing, devices, policy routing and tunnels
SYNOPSIS
ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
OBJECT := { link | address | addrlabel | route | rule | neigh | ntable
| tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm
| netns | l2tp | tcp_metrics }
OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] |
-r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } |
-o[neline] | -n[etns] name | -a[ll] | -c[olor] }
ip - show / manipulate routing, devices, policy routing and tunnels
SYNOPSIS
ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
OBJECT := { link | address | addrlabel | route | rule | neigh | ntable
| tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm
| netns | l2tp | tcp_metrics }
OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] |
-r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } |
-o[neline] | -n[etns] name | -a[ll] | -c[olor] }
「ip」コマンドでは、オブジェクト(OBJECT)と対話し、ネットワークインターフェースの管理や操作を行います。
そしてそのオブジェクトに対し、コマンド(COMMAND)やオプションを指定して、具体的な動作を指示します。
コマンドの省略について
コマンドを省略した場合、よく利用されるコマンドが指定されたものとして処理されます。多くのオブジェクトでは、「list」が指定されたものとして扱われますが、「list」がサポートされていオブジェクトでは、「help」が指定されたものとして扱われます。
オブジェクトのヘルプを表示するには
各オブジェクトで利用可能なコマンドやオプションを表示するには、「help」コマンドを指定します。例えば「address」オブジェクトのヘルプを表示するには、以下のコマンドを実行します。
ip address help
全ネットワークインターフェースのIPアドレスを表示する
全ネットワークインターフェースのIPアドレスを表示するには「address」オブジェクトに対し、「show」コマンドを指定します。
ip address show
「show」コマンドの代わりに「list」コマンドを指定しても良いですし、コマンドを省略すれば「list」コマンドが指定されたものとして扱われます。
さて出力された結果には、ネットワークインターフェースのレイヤー2及びレイヤー3に関する詳細情報が表示されています。
IPv4やIPv6に加え、MACアドレスやMTU、各種プロパティーの情報が表示されています。
全ネットワークインターフェースのMACアドレスなどレイヤー2の情報を表示する
全ネットワークインターフェースのMACアドレスなどレイヤー2の情報を表示するには、「link」オブジェクトに対し「show」コマンドを指定します。
ip link show
これも上記と同様「show」コマンドの代わりに「list」コマンドを指定しても良いですし、コマンドを省略すれば「list」コマンドが指定されたものとして扱われます。
ネットワークインターフェースをUp/Downする
ネットワークインターフェースをUp/Downするには、「link」オブジェクトに対し「set」コマンドとネットワークインターフェースを指定し、それに続いて「up」もしくは「down」を指定します。
sudo ip link set DEVICE up
sudo ip link set DEVICE down
sudo ip link set DEVICE down
「DEVICE」はネットワークインターフェースの識別子に置き換えてください。
これは「ifconfig eth0 up / ifconfig eth0 down」に相当します。
net-toolsのコマンド使ってる?
「net-tools」パッケージで提供されるコマンドの多くは、今後「iproute2」パッケージが提供するコマンドに置き換えられていくでしょう。「net-tools」パッケージが提供している以下のコマンドを利用しており、「iproute2」パッケージが提供するコマンドで同じ機能が実現できない場合は、フィードバックして欲しいとのことです。
- /bin/netstat(ssコマンドに置き換え可)
- /sbin/ifconfig
- /sbin/ipmaddr(ip maddressコマンドに置き換え可)
- /sbin/iptunnel
- /sbin/mii-tool(ethtoolコマンドが適切に置き換えてくれるはず)
- /sbin/nameif
- /sbin/plipconfig
- /sbin/rarp
- /sbin/route
- /sbin/slattach