\r\n\r\n

linuxでのipコマンドの使い方

linuxipコマンドを使用すると、ipアドレス、ネットワークインターフェイス、ルーティングルールを動的に設定することができます。古典的な(そして今では非推奨の)ifconfigに代わるこの現代的な使い方を紹介します...

linuxipコマンドを使用すると、IPアドレス、ネットワークインターフェイス、ルーティングルールを動的に設定することができます。古典的な(そして今では非推奨)ifconfigに代わるこの現代的な使い方を紹介します。

ipコマンドの仕組み

ipコマンドを使用すると、Linuxコンピュータがipアドレス、ネットワークインターフェースコントローラ(nic)、ルーティングルールを処理する方法を調整することができます。また、変更はすぐに反映され、再起動する必要はありません。ipコマンドはこれ以外にも多くのことができますが、今回は最も一般的な使い方を中心に説明します。

ipコマンドにはいくつかのサブコマンドがあり、それぞれipアドレスやルーティングなどのオブジェクトタイプに使用されます。順番に、これらのオブジェクトは、いくつかのオプションを持っています。この豊富な機能により、ipコマンドはきめ細かなタスクを実行するのに必要な粒度を備えているのです。これは斧の仕事ではなく、メスが必要なのです。

以下のオブジェクトを見ていきます。

  • Address:IPアドレスと範囲。
  • リンク:有線接続やWi-Fiアダプタなどのネットワークインターフェイス。
  • ルーティング:インターフェース(リンク)を介してアドレスに送信されるトラフィックのルーティングを制御するルール。

ipアドレスを使用する

当然ながら、まずは自分が扱っている設定を知る必要があります。お使いのコンピューターがどのIPアドレスを持っているかを調べるには、IPコマンドとオブジェクトアドレスを一緒に使用します。デフォルトの動作はshowで、IPアドレスが一覧表示されます。showを省略して "addr"、あるいは "a "と省略することもできます。

以下のコマンドはすべて等価である。

ip address show ip addr show ip addr ip a

ipアドレスは、ネットワークインターフェースコントローラ(NIC)に関連しています。ipコマンドは、役に立とうとして、インターフェースに関するさまざまな情報を提供します。

最初のIPアドレスは、コンピューター内部での通信に使用される(内部)ループバックアドレスです。2つ目は、ローカルエリアネットワーク(LAN)上のコンピュータの実際の(外部)IPアドレスです。

受け取った情報を分類してみよう。

  • lo:文字列で表示されるネットワークインターフェイスの名前です。
  • 物理ネットワーク層(レイヤー1)もアップしていることを意味します。
  • mtu 65536: maximum transmission unit. このインターフェースで送信できるデータブロックの最大サイズです。
  • qdisc noqueue:qdiscはキューイング機構です。データパケットの送信をスケジュールするものです。プロトコルと呼ばれるキューイング技術には、さまざまなものがある。ループバックアドレスなどの仮想デバイスのためのデフォルトのqdiscプロトコルです。
  • Status unknown:「off」(ネットワークインターフェースは動作していない)、「unknown」(ネットワークインターフェースは動作しているが接続されていない)、「on」(ネットワークは動作しており接続されている)のいずれかを選択可能。
  • デフォルトのグループ化:インターフェースを論理的にグループ化することができます。デフォルトの設定では、すべてのインターフェースが "default" というグループに配置されます。
  • qlen 1000:送信キューの最大長。
  • Link/Loopback: インターフェースのMAC(Media Access Control)アドレス。
  • inet 127.0.0.1/8: IPバージョン4のアドレスです。フォワードスラッシュ(/)に続くアドレス部分は、サブネットマスクを示すCIDR(Classless Inter-Domain Routing representation)である。サブネットマスクの先頭の連続したビットのうち、いくつのビットが1になるかを示す。1にセットされた8ビットは2進数で255を表すので、サブネットマスクは255.0.0.0となります。
  • Scope host:IPアドレスの範囲。このIPアドレスはコンピュータ(「ホスト」)内でのみ有効です。
  • lo:このIPアドレスに関連するインターフェース。
  • valid lft: Valid survival period.DHCP(Dynamic Host Configuration Protocol)によって割り当てられたIPバージョン4のIPアドレスの場合、そのIPアドレスが有効で、接続要求を行うことも受け取ることもできるとみなされる時間の長さである。
  • 好ましい寿命:好ましい寿命。DHCPで割り当てられたIPバージョン4のIPアドレスの場合、そのIPアドレスを制限なく使用できる時間です。この値は、有効な⾵の値より⼤きくしてはいけません。
  • inet6:IPバージョン6のアドレス、スコープ、有効範囲、優先する範囲です。

物理的なインターフェースは、以下のようにもっと興味深い。

  • enp0s3: 文字列で表示されるネットワークインターフェイスの名前です。"en "はEthernet、"p0 "はEthernetカードのバス番号、"s3 "はスロット番号の意味です。
  • また、ネットワークのハードウェア層(レイヤー1)が上昇しています。
  • mtu 1500:このインターフェイスがサポートする最大伝送単位。
  • qdisc fqu codel: スケジューラは、"fair queue, controlled delay "というプロトコルを使用しており、キューを使用するすべてのトラフィックフローに対して公平な帯域幅を提供するように設計されています。
  • 状態:インターフェースは動作可能であり、接続されています。
  • Group default:このインターフェイスは「default」インターフェイスグループに属しています。
  • qlen 1000:送信キューの最大長。
  • link/ether: インターフェースのMACアドレス。
  • inet 192.168.4.26/24: IPバージョン4のアドレスです。"/24 "は、サブネットマスクの先頭のビットが24個連続して1になっていることを表しています。8ビットの2進数は255に相当するため、サブネットマスクは255.255.255.0となります。
  • brd 192.168.4.255: このサブネットのブロードキャストアドレス。
  • グローバルスコープ:IPアドレスは、ネットワーク上のどこでも有効です。
  • Dynamic:インターフェイスを閉じるとIPアドレスは失われます。
  • noprefixroute:このIPアドレスを追加するときに、ルートテーブルにルートを作成しない。誰かがこのIPアドレスのルートを使用したい場合は、手動でルートを追加する必要があります。同様に、このIPアドレスが削除された場合、削除される経路を探さないでください。
  • enp0s3: このIPアドレスに関連するインターフェイス。
  • valid lft: valid survival period. IPアドレスが有効とみなされる時間、86240秒は23時間57分です。
  • Preferred lifetime:優先寿命。IPアドレスが何の制限もなく動作する期間。
  • inet6:IPバージョン6のアドレス、スコープ、有効範囲、優先する範囲です。

ipv4またはipv6アドレスのみを表示する。

IPバージョン4のアドレスに出力を限定する場合は、以下のように-4オプションを使用します。

ip -4 addr

IPバージョン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アドレスの追加

インターフェースに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.44

IPアドレスが応答し、pingに対する肯定応答を送り返す。新しいIPアドレスは、単純な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を使用する

リンクオブジェクトを使用して、ネットワークインターフェイスを調査し、作業することができます。コンピュータにインストールされているインターフェイスを表示するには、次のコマンドを入力します。

ip link show

個々のネットワーク・インターフェイスを表示するには、次のようにコマンドにその名前を追加するだけです。

ip link show enp0s3

リンクの開始と停止

setオプションと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アドレスのどこに転送し、どのネットワークインターフェースを経由させるかを定義します。

送信先のコンピュータや機器が送信元のコンピュータとネットワークを共有している場合、送信元のコンピュータはパケットを直接転送することができます。

ただし、送信先の機器が直接接続されていない場合、送信側のコンピュータはパケットをデフォルトルーターに転送します。その後、ルーターはパケットの送信先を決定する。

コンピュータに定義された経路を表示するには、次のコマンドを入力します。

ip route

私たちが得た情報を見てみましょう。

  • Default: デフォルトのルール。送信される内容に一致する他のルールがない場合、このルートが使用されます。
  • via 192.168.4.1: 192.168.4.1 のデバイスを経由してパケットをルーティングします。このネットワーク上のデフォルトルーターのIPアドレスです。
  • dev enp0s3: ルーターにパケットを送信するためにこのネットワークインターフェイスを使用します。
  • proto dhcp: ルーティングプロトコル識別子。dhcpは、経路を動的に決定することを意味します。
  • Metric 100:他の経路と比較したときの経路の優先度を示す。メトリックの低いルートは、メトリックの高いルートより優先されます。Wi-Fiインターフェースよりも有線ネットワークインターフェースを優先させるために使用します。

2番目のルートは、IP範囲169.254.0.0/16のトラフィックを制御します。これはゼロコンフィギュレーションネットワークで、イントラネットトラフィックのために自分自身を構成しようとすることを意味します。ただし、直接のネットワーク外へのパケット送信には使用できません。

ゼロコンフィギュレーションネットワークの根拠は、DHCPやその他のサービスの存在と活動に依存しないことです。TCP/IPを見るだけで、ネットワーク上の他のすべてのデバイスに自分自身を識別させることができるのです。

見てみよう。

  • 169.254.0.0/16: このルーティングルールが適用されるIPアドレスの範囲です。このルールは、このIP範囲内で通信しているコンピュータがある場合にカットインします。
  • dev enp0s3: このルートで管理されるトラフィックが使用するネットワークインターフェイスです。
  • スコープ付きリンク:スコープはリンクであり、スコープはこのコンピュータが直接接続されているネットワークに限定されることを意味する。
  • 指標1000:この指標は高い指標であり、優先されるルートではありません。

3番目のルートは、192.168.4.0/24のIPアドレス範囲へのトラフィックを制御します。このコンピューターが接続されているローカルネットワークのIPアドレスの範囲です。ネットワーク内の通信を目的としたものです。

分解してみよう。

  • 192.168.4.1/24: このルーティングルールが適用されるIPアドレスの範囲です。コンピュータがこのIP範囲内で通信する場合、このルールがトリガーとなり、パケットルーティングを制御します。
  • dev enp0s3: このルートがパケットを送信するインターフェースです。
  • Raw kernel:カーネルが自動設定時に作成したルート。
  • スコープ付きリンク:スコープはリンクであり、スコープはこのコンピュータが接続されている直近のネットワークに限定されることを意味する。
  • src 192.168.4.26: このルートで送信されるパケットのIPアドレス。
  • インジケーター100:この低いインジケーターは、優先ルートを示します。

個別経路の情報表示

特定の経路の詳細に焦点を当てるには、次のようにコマンドにリストオプションと経路の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

道を踏み外し、根を張ることなく

これらのコマンドの利点は、永続的でないことです。クリアしたい場合は、システムを再起動してください。つまり、思い通りに動くまで試行錯誤ができるのです。これは、システムを混乱させた場合に行うべき非常に良いことです。単純な再起動で、秩序が回復します。

一方、変化を永続させたいのであれば、より多くの作業をしなければなりません。正確には、ディストリビューションファミリーによって異なりますが、いずれも設定ファイルの変更が必要です。

しかし、この方法では、内容を永続化する前にドライブコマンドをテストすることができます。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ