ip - ネットワーク周りの色々に関して表示や操作を行う

スポンサーリンク

ipコマンドはネットワークのルーティング、デバイス、インターフェース等に関しての表示や操作を行うことができるコマンドになります。操作を行う場合は管理者権限が必要になります。
net-toolsパッケージが非推奨になり、iproute2パッケージに移行したためこのコマンドがよく利用されるようになりました。多くのオブジェクトを持つため、かなり絞って紹介します。
また、このコマンドでの設定は再起動によって設定が戻ったり、NetworkManager、systemd-networkdによって自動的に設定が戻る場合もあることを考慮する必要があります。

スポンサーリンク

ipコマンドの形式

ipコマンドの形式

 

 

 

ipコマンドのサブコマンドの指定方法に関して

ipコマンドのオブジェクトを指定する場合はオブジェクトが特定できるレベルまでトークンを省略できます。例えば、

や、さらには

まで省略して指定できます。

また、オブジェクトの後のコマンドが省略された場合はいくつかのオブジェクトはデフォルトのコマンドで実行されます。
よく利用するようなオブジェクトのデフォルトのコマンドはshowになっています。なので、

のように指定できます。つまり、以下のコマンドはすべて等価なコマンドになります。

しかし、シェルスクリプト等を作成する場合にipコマンドを極端に省略すると動作するにしても、
後で読んで意味が分かりにくくなる場合があるので、そのような場合は省略せず記述するのが無難な対応になると思います。

 

 

 

ipコマンドのhelp

ipコマンドはそれぞれのオブジェクトごとにhelpコマンドを利用すると構文を確認できます。

また、manコマンドでもipコマンド自体の他にそれぞれのオブジェクトごとの項目があります。

または

 

 

 

オプション

表示に関するオプションを紹介します。

 

json形式で表示(-jオプション)

-jオプションはipコマンドの表示形式をjson形式にできるオプションになります。
ip address showではオプションなしだと以下のように表示されます。

コマンド例と実行結果

 

-jオプションを用いると以下のように表示されます。

コマンド例と実行結果

 

 

 

json形式を整形して表示(-pオプション)

-pオプションは-jオプションと一緒に使用するオプションで、json形式の表示を整形して表示できます。

コマンド例と実行結果

 

 

 

簡単な形式での表示(-brオプション)

-brオプションは指定したサブコマンドの表示に関してより簡単な形式での表示ができるオプションになります。

コマンド例と実行結果

 

 

 

詳細な表示(-dオプション)

-dオプションは指定したサブコマンドの表示に関してより詳細な情報を表示できるオプションになります。

コマンド例と実行結果

 

 

 

統計情報の表示(-sオプション)

-sオプションは統計情報を表示するオプションになります。

コマンド例と実行結果

 

 

 

ip address - アドレスの表示、追加、削除

ip addressコマンドはIPアドレスに関してのコマンドになります。

 

ip address show

ネットワークインターフェースに設定されているIPアドレスを確認できます。

コマンド例と実行結果

 

また、-brオプションを用いると以下のような形式で表示されます。

以下のコマンドの形式に従えば、表示したい項目を絞り込むこともできます。

詳しくはmanコマンドやip address helpで確認することもできます。

 

 

 

ip address add

ネットワークインターフェースにIPアドレスを追加できます。

コマンド例と実行結果

 

 

 

ip address delete

ネットワークインターフェースに設定しているIPアドレスを削除できます。

コマンド例と実行結果

 

 

 

ip link

ネットワークデバイスについてのコマンドであり、仮想的なデバイスについても設定できます。

 

ip link show

ip link showコマンドでネットワークデバイスを確認できます。

コマンド例と実行結果

 

-brオプションを用いると以下のような形式で表示されます。

UP状態のデバイスを確認したい場合は

のように利用できます。

 

 

 

ip link set

ip link setコマンドでデバイスの属性を変更できます。例えば、ネットワークインターフェースをUP状態やDOWN状態にできます。

コマンド例と実行結果

 

 

 

ip link add

ip link addコマンドでネットワークデバイスを追加できます。

コマンド例と実行結果

 

 

 

ip link delete

ip link deleteコマンドでネットワークデバイスを削除できます。

コマンド例と実行結果

 

また、上の例はip link addコマンドを使いまわしているため、場合によってはもう少し指定を簡単にできます。

 

 

 

ip route

ルーティングテーブルに関するコマンドになります。

 

ip route show

ip route showコマンドで現在のルーティングテーブルの内容を確認できます。

コマンド例と実行結果

 

補足として、ip ruleコマンドでルーティングポリシーのデータベースを確認でき、ip route showでtableを指定すると別のルーティングテーブルを確認できます。

 

 

 

ip route add

ip route addコマンドでルーティングテーブルのルートを追加できます。

コマンド例と実行結果

 

 

 

ip route delete

ip route deleteコマンドでルーティングテーブルのルートを削除できます。

コマンド例と実行結果

 

 

 

ip route get

ip route getコマンドは宛先へのルートを表示します。また、下の例で出ている208.67.222.222はOpenDNSのIPアドレスになります。

 

 

 

ip neigh

ARP(Address Resolution Protocol)テーブルに関するコマンドになります。
neighはneighbour又はneighborの略ですが、manやhelpでneighの方が構文として載っているのでneighの方を利用します。補完する場合はneighbourとneighborの方が出たりします。スペルの違いはイギリス英語かアメリカ英語かの違いです。
ただ、manコマンドで指定したい場合は、

と指定する必要があります。

ARPテーブルは宛先のIPアドレスから、次にパケットを渡したい機器のMACアドレスを探すために利用するテーブルになります。

 

 

 

ip neigh show

ip neigh showでARPテーブルを確認できます。

コマンド例と実行結果

 

-brオプションを用いると以下のような形式で表示されます。

 

 

 

ip neigh flush

ip neigh flushコマンドは指定した条件に合うレコードをARPテーブルから削除できます。
ip neigh showコマンドと同じ引数を取ることができ、以下の例ではデバイスを指定してその該当するデバイスでのARPテーブルのレコードを削除しています。

コマンド例と実行結果

 

 

 

ip neigh get

ip neigh getコマンドはアドレスとデバイスを指定して、ARPテーブルから該当するレコードを検索できます。

 

 

 

参考

vlanの設定例について
VLAN - ArchWiki