ifconfig と ip: 違いとネットワーク構成の比較
Linux ベースのディストリビューションには、コマンド ラインを使用して簡単かつ強力な方法でネットワークを構成する方法を提供する一連のコマンドが組み込まれています。これらのコマンド セットは、ほぼすべてのディストリビューションに長い間存在する net-tools パッケージから入手でき、ifconfig、route< などのコマンドが含まれています。、nameif、iwconfig、iptunnel、netstat、arp。
これらのコマンドは、初心者または熟練した Linux ユーザーが望む方法でネットワークを構成するのにほぼ十分ですが、ここ数年の Linux カーネルの進歩と、このパッケージ化されたコマンド セットのメンテナンスが不可能になったため、これらのコマンドは非推奨になり、より強力なコマンドになります。これらすべてのコマンドを置き換える機能を備えた代替手段が登場しています。
この代替手段もかなり前から存在しており、これらのコマンドよりもはるかに強力です。残りのセクションでは、この代替案に焦点を当て、net-tools パッケージのコマンドの 1 つ (ifconfig) と比較します。
ip – ifconfig の代替品
ifconfig は長い間存在しており、今でもネットワーク インターフェイスの設定、表示、制御に多くの人が使用していますが、Linux ディストリビューションには、それよりもはるかに強力な新しい代替手段が存在します。この代替手段は、iproute2util パッケージの ip
コマンドです。
このコマンドは最初は少し複雑に見えるかもしれませんが、 ifconfig よりもはるかに幅広い機能を備えています。機能的には、ネットワーキング スタックの 2 つの層、つまり層 2 (リンク層)、層 3 (IP 層) で構成されています。 >) そして、net-tools パッケージからの上記のすべてのコマンドの動作を実行します。
ifconfig は主にシステムのインターフェイスを表示または変更しますが、このコマンドは次のタスクを実行できます。
- インターフェイスのプロパティを表示または変更します。
- ARP キャッシュ エントリの追加と削除、およびホストの新しいスタティック ARP エントリの作成。
- すべてのインターフェイスに関連付けられた MAC アドレスを表示します。
- カーネルルーティングテーブルの表示と変更。
古代の対応物である ifconfig との主なハイライトの 1 つは、後者がネットワーク設定に ioctl を使用することです。これはカーネルとの対話方法としてあまり評価されていませんが、前者はその利点を活用しています。これは、rtnetlink (ネットワーク環境操作機能を追加) を使用してカーネルとユーザー空間の間の相互通信を行うための ioctl のより柔軟な後継となる、同じネットリンク ソケット メカニズムです。
ここで、ifconfig の機能と、それらがどのように効果的に ip コマンドに置き換えられるかを説明します。
ip コマンドと ifconfig コマンド
次のセクションでは、いくつかの ifconfig コマンドと、ip コマンドを使用したそれらの置き換えについて説明します。
1. Linux でのすべてのネットワーク インターフェイスの表示
ここで、ip と ifconfig の特徴の 1 つは、ifconfig は有効なインターフェイスのみを表示するのに対し、ip は有効または無効にかかわらずすべてのインターフェイスを表示することです。
ifconfig コマンド
ifconfig
ipコマンド
ip a
2. Linux での IP アドレスの追加または削除
以下のコマンドは、IP アドレス 192.168.80.174 をインターフェイス eth0
に割り当てます。
ifconfig – IP アドレスの追加/削除
ifconfig eth0 add 192.168.80.174
ifconfig コマンドを使用してインターフェイスを追加/削除するための構文:
ifconfig eth0 add 192.168.80.174
ifconfig eth0 del 192.168.80.174
ip – IP アドレスの追加/削除
ip a add 192.168.80.174 dev eth0
ip コマンドを使用してインターフェイスを追加/削除するための構文:
ip a add 192.168.80.174 dev eth0
ip a del 192.168.80.174 dev eth0
4. MAC ハードウェア アドレスをネットワーク インターフェイスに追加する
以下のコマンドは、インターフェイス eth0
のハードウェア アドレスをコマンドで指定された値に設定します。これは、ifconfig コマンドの出力で HWaddr
値をチェックすることで確認できます。
ifconfig – MAC アドレスの追加
ifconfig コマンドを使用して MAC アドレスを追加する構文は次のとおりです。
ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – MAC アドレスの追加
ここでは、ip コマンドを使用して MAC アドレスを追加するための構文を示します。
ip link set dev eth0 address 00:0c:29:33:4e:aa
4. ネットワークインターフェースのその他の構成の設定
IP アドレスまたはハードウェア アドレスの設定とは別に、インターフェイスに適用できるその他の構成には次のものがあります。
- MTU (最大転送単位)
- マルチキャストフラグ
- 送信キューの長さ
- 無差別モード
- すべてのマルチキャスト モードを有効または無効にする
ifconfig – その他のネットワーク構成
ip – その他のネットワーク構成
<中央>
a. MTU 値を 2000 に設定します。
ifconfig eth0 mtu 2000
ip link set dev eth0 mtu 2000
<中央>
b.マルチキャストフラグを有効または無効にします。
ifconfig eth0 multicast
ip link set dev eth0 multicast on
<中央>
c.送信キューの長さを設定します。
ifconfig eth0 txqueuelen 1200
ip link set dev eth0 txqueuelen 1200
<中央>
d.無差別モードを有効または無効にします。
ifconfig eth0 promisc
ip link set dev eth0 promisc on
<中央>
e.すべてのマルチキャスト モードを有効または無効にします。
ifconfig eth0 allmulti
ip link set dev eth0 allmulti on
5. ネットワークインターフェースの有効化または無効化
以下のコマンドは、特定のネットワーク インターフェイスを有効または無効にします。
ifconfig – ネットワークインターフェイスの無効化/有効化
以下のコマンドはインターフェイス eth0
を無効にします。これは、デフォルトで稼働しているインターフェイスのみを表示する ifconfig の出力によって確認されます。
ifconfig eth0 down
インターフェースを再度有効にするには、ダウンをアップに置き換えます。
ifconfig eth0 up
ip – ネットワークインターフェイスの無効化/有効化
以下の ip コマンドは、特定のインターフェイスを無効にする ifconfig の代替手段です。これは、'ip a'
コマンドの出力によって確認できます。このコマンドでは、デフォルトですべてのインターフェイスがアップまたはダウンで表示されますが、そのステータスが説明とともに強調表示されます。
ip link set eth0 down
インターフェースを再度有効にするには、ダウンをアップに置き換えます。
ip link set eth0 up
6. ARP プロトコルの使用を有効または無効にします。
以下のコマンドは、特定のネットワーク インターフェイスで ARP プロトコルを有効または無効にします。
ifconfig – ARP プロトコルの有効化/無効化
このコマンドは、ARP プロトコルをインターフェイス eth0 で使用できるようにします。このオプションを無効にするには、arp を -arp
に置き換えます。
ifconfig eth0 arp
ip – ARP プロトコルの有効化/無効化
このコマンドは、インターフェイス eth0 の ARP を有効にする ip 代替コマンドです。無効にするには、オンをオフに置き換えます。
ip link set dev eth0 arp on
結論
このように、ifconfig コマンドの機能と、それらを ip コマンドを使用して実行する方法を強調しました。現在、Linux ディストリビューションでは、ユーザーが都合に応じて使用できるように両方のコマンドが提供されています。それで、あなたにとって便利なコマンドはどれですか?コメントでこれについて言及してください。
これら 2 つのコマンドについてさらに詳しく知りたい場合は、ifconfig と ip コマンドの実践的な例をより詳細に示した以前の記事を参照してください。
お見逃しなく: Linux でネットワーク インターフェイスを構成する 15 の「ifconfig」例
お見逃しなく: Linux でネットワーク インターフェイスを構成する 10 の「ip 」コマンドの例