Linux での IP アドレス管理

CompTIABeginner
オンラインで実践に進む

はじめに

このラボでは、Linux 環境における IP アドレス管理の基本的なスキルを習得します。まず、最新の ip コマンドを使用してシステムのネットワークインターフェイスを検査します。次に、静的 IP アドレスを手動で設定し、外部ネットワークとの通信を可能にするデフォルトゲートウェイを設定してから、ping ユーティリティを使用して接続を確認します。

次に、静的アドレスを解放し、dhclient コマンドを使用して DHCP サーバーから新しい IP アドレスを自動的に取得することで、動的 IP 設定を探索します。ラボの最後に、arp および traceroute コマンドを使用してネットワーク設定をさらに検査および検証し、すべてのコンポーネントが正しく機能していることを確認します。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 中級 レベルの実験の完了率は 76%です。学習者から 97% の好評価を得ています。

ip a によるネットワークインターフェイスの検査

このステップでは、Linux システムのネットワークインターフェイスを検査する方法を学びます。IP アドレスを設定する前に、設定したいネットワークインターフェイスの名前を特定する必要があります。有線または無線に関わらず、すべての接続はネットワークインターフェイスを通じて管理されます。

Linux でネットワークインターフェイスを表示および操作するための最新かつ標準的なコマンドは ip です。ここでは、a (または address) 引数を使用して、すべてのネットワークインターフェイスとその割り当てられた IP アドレスを表示します。

  1. ターミナルを開きます。~/project ディレクトリにいるはずです。

  2. すべてのネットワークインターフェイスとその現在の設定を一覧表示するには、次のコマンドを実行します。

    ip a

    以下のような出力が表示されます。インターフェイス名 (eth0enp0s5)、IP アドレス、MAC アドレスなどの正確な詳細は、新しいラボ環境を開始するたびに異なります。

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159972sec preferred_lft 1892159972sec
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
        link/ether 02:42:bb:cb:56:62 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever

出力の理解:

  • 1: lo: これは ループバックインターフェイス であり、システムが自身と通信するために使用する仮想インターフェイスです。常に IP アドレス 127.0.0.1 を持ちます。
  • 2: eth0: これはプライマリの イーサネット (有線) インターフェイス です。インターフェイス名は異なる場合や、enp0s5 のような altname (別名) を表示する場合があります。これは、これから作業するインターフェイスです。
  • 3: docker0: Docker コンテナエンジンによって使用される docker0 のような他のインターフェイスが表示される場合があります。このラボの目的では、これは無視できます。
  • inet 172.16.50.11/24: これはインターフェイスに割り当てられた IPv4 アドレス です。表示されるアドレスは異なります。これは、このリモートラボに接続するためのアドレスです。
  • link/ether ...: これはインターフェイスの MAC アドレス であり、一意のハードウェア識別子です。

プライマリネットワークインターフェイス (eth0) を特定できたので、設定方法を学ぶ準備ができました。

セカンダリ静的 IP アドレスの設定

このステップでは、ネットワークインターフェイスに 2 つ目の静的 IP アドレスを手動で割り当てます。静的 IP は、常に同じアドレスで到達可能である必要があるサーバーに便利です。

重要事項: リモートラボセッションに参加しているため、既存の IP アドレスを削除したり、ネットワークインターフェイスを無効にしたりしないでください。そうすると、接続が切断されます。代わりに、インターフェイスに 2 つ目の IP アドレスを追加します。これは一般的で安全なプラクティスです。

  1. eth0 インターフェイスに、/24 のサブネットマスクを持つ新しい静的 IP アドレス 192.168.1.10 を割り当てます。インターフェイス名が異なる場合は、その名前を使用してください。

    sudo ip addr add 192.168.1.10/24 dev eth0

    このコマンドは、既存のアドレスに影響を与えることなく新しいアドレスを追加します。成功した場合、出力はありません。

  2. 最後に、新しい IP アドレスが割り当てられたことを確認します。ip a コマンドを再度使用し、eth0 インターフェイスを指定します。

    ip a show eth0

    eth0 インターフェイスに対して、元の動的 IP アドレスと新しい静的 IP アドレスの 両方 が一覧表示されているはずです。

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159595sec preferred_lft 1892159595sec
        inet 192.168.1.10/24 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever

    2 つ目の inet フィールドに 192.168.1.10/24 が表示されていることに注意してください。接続を維持したまま、一時的な静的 IP アドレスを正常に追加しました。

デフォルトゲートウェイの設定と ping による接続確認

このステップでは、デフォルトゲートウェイを設定し、ネットワーク接続をテストします。デフォルトゲートウェイとは、宛先が別のネットワーク(インターネットなど)にある場合に、システムがトラフィックを送信するルーターのことです。

お使いのシステムには、ラボ環境によって提供されるデフォルトゲートウェイが既に設定されています。これを変更または削除すると、接続が切断されます。このコマンドを安全に練習するために、より高い メトリック を持つ新しい 2 番目のデフォルトルートを追加します。メトリックが高いほど優先度が低くなるため、システムは実際のトラフィックに使用せず、接続を安全に保ちます。

  1. 192.168.1.0/24 ネットワークのデフォルトゲートウェイルートを追加しましょう。ゲートウェイの IP を 192.168.1.1 に設定し、metric200 にします。

    sudo ip route add default via 192.168.1.1 dev eth0 metric 200
    • default: デフォルトルートであることを指定します。
    • via 192.168.1.1: ゲートウェイルーターの IP アドレスです。
    • dev eth0: ルートは eth0 インターフェイス経由でアクセス可能です。
    • metric 200: これにより、このルートはプライマリの既存ルート(メトリックが低い)よりも優先度が低くなります。
  2. ルーティングテーブルを表示して、ルートが追加されたことを確認します。

    ip route

    出力は複雑で変動しますが、default で始まる行が 2 つ 含まれているはずです。元のゲートウェイはより低いメトリック(例:100)を持ち、新しく追加したものはメトリック 200 を持ちます。

    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
    default via 192.168.1.1 dev eth0 metric 200
    172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.11 metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
    ... (他のルートが存在する場合があります)
  3. 次に、ping で接続をテストしましょう。これは、ホストが到達可能かどうかを確認するために、ホストに ICMP "echo request" を送信します。ここで設定した仮想ネットワークのゲートウェイに ping を試してみましょう。

    ping -c 3 192.168.1.1

    期待される結果: このコマンドは 失敗することが期待されますeth0 に IP 192.168.1.10/24 を追加したため、システムは 192.168.1.1 が同じローカルネットワーク上にあると想定します。直接到達しようとしますが、そのアドレスを持つデバイスは存在しないため、「Destination Host Unreachable」と表示されます。

    PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    From 192.168.1.10 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=3 Destination Host Unreachable
    
    --- 192.168.1.1 ping statistics ---
    3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2039ms

    これは正しく、期待される結果です。デフォルトルートの追加方法と、テストのための ping の使用方法を学びました。

dhclient を使用した動的 IP アドレスへの復旧

このステップでは、作成した静的設定を削除し、dhclient を使用して DHCP サーバーから動的 IP リースを更新します。

まず、dhclient ツールは isc-dhcp-client パッケージの一部ですが、デフォルトではインストールされていない場合があります。利用可能であることを確認しましょう。

  1. システムのパッケージリストを更新し、DHCP クライアントをインストールします。

    sudo apt-get update
    sudo apt-get install -y isc-dhcp-client

    次に、接続を中断することなく、前のステップで追加した静的 IP とルートを安全に削除しましょう。

  2. eth0 から静的 IP アドレスを削除します。

    sudo ip addr del 192.168.1.10/24 dev eth0
  3. 追加した静的なデフォルトルートを削除します。

    sudo ip route del default via 192.168.1.1 dev eth0

    これで、ネットワーク設定は元の状態に戻りました。dhclient を示すために、DHCP サーバーから IP アドレスの更新を要求しましょう。

  4. まず、現在の DHCP リースを解放します。

    sudo dhclient -r eth0
  5. 次に、DHCP サーバーから新しいリースを要求します。

    sudo dhclient eth0

    RTNETLINK answers: File exists というメッセージが表示される場合があります。これは正常です。単に dhclient が既に存在するルートを追加しようとしていることを意味しており、変更は必要ありません。接続は安定したままです。

  6. eth0 インターフェイスを再度表示して、設定を確認します。

    ip a show eth0

    出力には、元の動的 IP アドレスのみが表示され、おそらく 172.16.x.x または 172.17.x.x の範囲になります。静的 IP 192.168.1.10 は削除されているはずです。

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159460sec preferred_lft 1892159460sec
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever

    静的設定のクリーンアップと動的 IP リースの更新に成功しました。

arp および traceroute によるネットワーク設定の確認

最終ステップでは、arptraceroute を使用してネットワーク構成を検査する方法を学びます。

まず、必要なツールがインストールされていることを確認しましょう。arpnet-tools に含まれており、traceroute は独自のパッケージに含まれています。

  1. net-toolstraceroute をインストールします。

    sudo apt-get update
    sudo apt-get install -y net-tools traceroute

arp を使用した ARP キャッシュの表示

Address Resolution Protocol (ARP) は、ローカルネットワーク上で IP アドレスを物理的な MAC アドレスにマッピングします。結果は ARP キャッシュに保存されます。

  1. ARP キャッシュを生成するために、まずルーティングテーブルからデフォルトゲートウェイの IP を見つけます。

    ip route | grep default

    出力にはゲートウェイの IP が表示されます。IP アドレスは変動することに注意してください。

    default via 172.16.50.253 dev eth0
    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
  2. 次に、そのゲートウェイ IP(上記の例では 172.16.50.253)に ping を実行してトラフィックを生成します。

    ping -c 1 <your-gateway-ip>
  3. arp -a を使用して ARP キャッシュを表示します。

    arp -a

    ゲートウェイの IP アドレスと MAC アドレスが表示されます。以前 ping を試みた 192.168.1.1 アドレスの <incomplete> エントリも表示される場合がありますが、これは正常です。

    ? (192.168.1.1) at <incomplete> on eth0
    _gateway (172.16.50.253) at ee:ff:ff:ff:ff:ff [ether] on eth0

    これにより、システムがゲートウェイの IP を MAC アドレスに解決したことが確認できます。

traceroute を使用したネットワークパスのトレース

traceroute コマンドは、パケットが宛先に到達するために経由するルーター(「ホップ」)のシーケンスを表示します。

  1. google.com のような公開ドメインへのルートをトレースしましょう。

    traceroute google.com

    コマンドはパスを出力します。注意: 多くのクラウド環境では、traceroute によって表示される最初のホップは内部 IP アドレスであり、ルーティングテーブルのデフォルトゲートウェイと同じではない場合があります。これは正常な動作です。

    traceroute to google.com (142.250.189.174), 30 hops max, 60 byte packets
     1  10.220.9.2 (10.220.9.2)  0.345 ms  ...
     2  11.73.5.1 (11.73.5.1)  1.978 ms ...
     3  ...
     8  sfo03s24-in-f14.1e100.net (142.250.189.174)  3.001 ms ...
    • 最初のホップは、ラボプロバイダーのネットワーク内のルーターです。
    • 後続のホップは、インターネットを経由して最終的な宛先に到達するパスを示します。
    • アスタリスク(* * *)は、パス上のルーターが traceroute プローブに応答しない場合に表示されることがありますが、これはファイアウォールやその他のネットワークポリシーが原因である可能性があります。

おめでとうございます!これで、Linux システムでの IP アドレス指定の検査、静的構成、動的構成の方法、および pingarptraceroute などの主要なツールを使用してネットワークを確認およびトラブルシューティングする方法を学びました。

まとめ

この実験では、Linux 環境における IP アドレス管理の基本的なスキルを学びました。まず、ip a コマンドを使用してネットワークインターフェイスとその現在の構成を検査し、eth0 のようなターゲットインターフェイスを特定しました。次に、ip addr add を使用して静的 IP アドレスとサブネットマスクを手動で割り当て、その後 ip route add を使用してデフォルトゲートウェイを設定し、外部ネットワークとの通信を可能にしました。手動構成との対比として、dhclient コマンドを使用して DHCP サーバーから IP アドレス、サブネットマスク、およびゲートウェイを自動的に取得する方法も学びました。

さらに、不可欠なネットワーク検証およびトラブルシューティングツールを探求しました。ping コマンドを使用して、デフォルトゲートウェイと外部ホストの両方への基本的なネットワーク接続を確認しました。ネットワーク層へのより深い洞察を得るために、arp コマンドで Address Resolution Protocol (ARP) キャッシュを調べ、IP から MAC アドレスへのマッピングを確認しました。最後に、traceroute を使用して、宛先へのネットワークパスをホップごとにトレースし、ルーティング構成を検証しました。