\r\n\r\n
linuxipコマンドを使用すると、IPアドレス、ネットワークインターフェイス、ルーティングルールを動的に設定することができます。古典的な(そして今では非推奨)ifconfigに代わるこの現代的な使い方を紹介します。
ipコマンドを使用すると、Linuxコンピュータがipアドレス、ネットワークインターフェースコントローラ(nic)、ルーティングルールを処理する方法を調整することができます。また、変更はすぐに反映され、再起動する必要はありません。ipコマンドはこれ以外にも多くのことができますが、今回は最も一般的な使い方を中心に説明します。
ipコマンドにはいくつかのサブコマンドがあり、それぞれipアドレスやルーティングなどのオブジェクトタイプに使用されます。順番に、これらのオブジェクトは、いくつかのオプションを持っています。この豊富な機能により、ipコマンドはきめ細かなタスクを実行するのに必要な粒度を備えているのです。これは斧の仕事ではなく、メスが必要なのです。
以下のオブジェクトを見ていきます。
当然ながら、まずは自分が扱っている設定を知る必要があります。お使いのコンピューターがどのIPアドレスを持っているかを調べるには、IPコマンドとオブジェクトアドレスを一緒に使用します。デフォルトの動作はshowで、IPアドレスが一覧表示されます。showを省略して "addr"、あるいは "a "と省略することもできます。
以下のコマンドはすべて等価である。
ip address show ip addr show ip addr ip aipアドレスは、ネットワークインターフェースコントローラ(NIC)に関連しています。ipコマンドは、役に立とうとして、インターフェースに関するさまざまな情報を提供します。
最初のIPアドレスは、コンピューター内部での通信に使用される(内部)ループバックアドレスです。2つ目は、ローカルエリアネットワーク(LAN)上のコンピュータの実際の(外部)IPアドレスです。
受け取った情報を分類してみよう。
物理的なインターフェースは、以下のようにもっと興味深い。
IPバージョン4のアドレスに出力を限定する場合は、以下のように-4オプションを使用します。
ip -4 addrIPバージョン6のアドレスに出力を限定する場合は、以下のように-6オプションを使用します。
ip -6 addr個々のインタフェースのIPアドレス情報を表示するには、showオプションとdevオプションを使用し、インタフェースに次のような名前を付けます。
ip addr show dev lo ip addr show dev enp0s3また、-4や-6フラグを使用すると、さらに出力を絞り込んで、興味のあるコンテンツだけを表示させることができます。
インターフェースenp0s3のアドレスに関連するIPバージョン4の情報を表示する場合、次のコマンドを入力します。
ip -4 addr show dev enp0s3インターフェースにIPアドレスを追加するには、addオプションとdevオプションを使用します。どのIPアドレスを追加するか、どのインターフェースに追加するかをipコマンドに指示するだけです。
enp0s3 インターフェースに IP アドレス 192.168.4.44 を追加することにします。また、サブネットマスクのCIDR表記も用意する必要があります。
以下のように入力します。
sudo ip addr add 192.168.4.44/24 dev enp0s3このインターフェイスのIPバージョン4のIPアドレスを再び確認するために、次のように入力します。
ip -4 addr show dev enp0s3このネットワークインターフェースに新しいIPアドレスが存在します。別のコンピューターにジャンプして、次のコマンドを使用して新しいIPアドレスにpingを送信できるかどうかを確認します。
ping 192.168.4.44IPアドレスが応答し、pingに対する肯定応答を送り返す。新しいIPアドレスは、単純なIPコマンドの後に稼働している。
IPアドレスを削除するには、以下のようにaddをdelに置き換える以外は、add-oneとほぼ同じコマンドを使用します。
sudo ip addr del 192.168.4.44/24 dev enp0s3と入力して確認すると、新しいIPアドレスが削除されていることが確認できます。
ip -4 addr show dev enp0s3リンクオブジェクトを使用して、ネットワークインターフェイスを調査し、作業することができます。コンピュータにインストールされているインターフェイスを表示するには、次のコマンドを入力します。
ip link show個々のネットワーク・インターフェイスを表示するには、次のようにコマンドにその名前を追加するだけです。
ip link show enp0s3setオプションとupまたはdownを併用することで、ネットワークインターフェースオプションを停止または開始することができます。また、以下のようにsudoを使用する必要があります。
sudo ip link set enp0s3 down以下のように入力し、Webインタフェースを表示させます。
ip link show enp0s3ネットワークインターフェイスの状態はoffです。upオプションを使用して、以下のようにネットワークインターフェイスを再起動します。
sudo ip link set enp0s3 upネットワークインターフェイスの状態をもう1度簡単に確認するために、次のように入力します。
ip link show enp0s3ネットワークインターフェイスが再起動され、ステータスがUPと表示されました。
ルートオブジェクトを使用して、パイプの検査や操作を行うことができます。ルーティングは、ネットワークトラフィックを異なるIPアドレスのどこに転送し、どのネットワークインターフェースを経由させるかを定義します。
送信先のコンピュータや機器が送信元のコンピュータとネットワークを共有している場合、送信元のコンピュータはパケットを直接転送することができます。
ただし、送信先の機器が直接接続されていない場合、送信側のコンピュータはパケットをデフォルトルーターに転送します。その後、ルーターはパケットの送信先を決定する。
コンピュータに定義された経路を表示するには、次のコマンドを入力します。
ip route私たちが得た情報を見てみましょう。
2番目のルートは、IP範囲169.254.0.0/16のトラフィックを制御します。これはゼロコンフィギュレーションネットワークで、イントラネットトラフィックのために自分自身を構成しようとすることを意味します。ただし、直接のネットワーク外へのパケット送信には使用できません。
ゼロコンフィギュレーションネットワークの根拠は、DHCPやその他のサービスの存在と活動に依存しないことです。TCP/IPを見るだけで、ネットワーク上の他のすべてのデバイスに自分自身を識別させることができるのです。
見てみよう。
3番目のルートは、192.168.4.0/24のIPアドレス範囲へのトラフィックを制御します。このコンピューターが接続されているローカルネットワークのIPアドレスの範囲です。ネットワーク内の通信を目的としたものです。
分解してみよう。
特定の経路の詳細に焦点を当てるには、次のようにコマンドにリストオプションと経路のIPアドレス範囲を追加します。
ip route list 192.168.4.0/24このコンピューターに新しいネットワークインターフェイスカードを追加しました。
ip link showこの新しいインターフェイスを使用するために、コンピュータに新しいルートを追加します。まず、IPアドレスをインターフェイスに関連付けるために、次のように入力します。
sudo ip addr add 192.168.121.1/24 dev enp0s8新しいインターフェースに既存のIPアドレスを使用したデフォルトルートを追加します。削除オプション(下図)を使って、経路を削除し、その詳細を提供します。
sudo ip route delete default via 192.168.4.1 dev enp0s8ここで、追加オプションを使用して新しいルートを追加します。新しいインターフェースは、192.168.121.0/24のIPアドレス範囲のネットワークトラフィックを処理します。このトラフィックを処理する唯一のルートであるため、このメトリクスの値は非常に学術的です。
以下のように入力します。
sudo ip route add 192.168.121.0/24 dev enp0s8 metric 100では、どのような機能があるのか、次のように打ち込みます。
ip route新しいルートが出来上がりました。しかし、まだ 192.168.4.0/24 のルートがインターフェース enp0s8 を指しています。以下のように入力して削除します。
sudo ip route delete 192.168.4.0/24 dev enp0s8これで、インターフェースenp0s8経由のIP範囲192.168.121.0/24のすべてのトラフィックを指し示す新しいルートができたはずです。また、新しいインターフェイスを使用する唯一のルートである必要があります。
を入力して確認します。
ip routeこれらのコマンドの利点は、永続的でないことです。クリアしたい場合は、システムを再起動してください。つまり、思い通りに動くまで試行錯誤ができるのです。これは、システムを混乱させた場合に行うべき非常に良いことです。単純な再起動で、秩序が回復します。
一方、変化を永続させたいのであれば、より多くの作業をしなければなりません。正確には、ディストリビューションファミリーによって異なりますが、いずれも設定ファイルの変更が必要です。
しかし、この方法では、内容を永続化する前にドライブコマンドをテストすることができます。