はじめに
このラボでは、Linux 環境における IP アドレス管理の基本的なスキルを習得します。まず、最新の ip コマンドを使用してシステムのネットワークインターフェイスを検査します。次に、静的 IP アドレスを手動で設定し、外部ネットワークとの通信を可能にするデフォルトゲートウェイを設定してから、ping ユーティリティを使用して接続を確認します。
次に、静的アドレスを解放し、dhclient コマンドを使用して DHCP サーバーから新しい IP アドレスを自動的に取得することで、動的 IP 設定を探索します。ラボの最後に、arp および traceroute コマンドを使用してネットワーク設定をさらに検査および検証し、すべてのコンポーネントが正しく機能していることを確認します。
ip a によるネットワークインターフェイスの検査
このステップでは、Linux システムのネットワークインターフェイスを検査する方法を学びます。IP アドレスを設定する前に、設定したいネットワークインターフェイスの名前を特定する必要があります。有線または無線に関わらず、すべての接続はネットワークインターフェイスを通じて管理されます。
Linux でネットワークインターフェイスを表示および操作するための最新かつ標準的なコマンドは ip です。ここでは、a (または address) 引数を使用して、すべてのネットワークインターフェイスとその割り当てられた IP アドレスを表示します。
ターミナルを開きます。
~/projectディレクトリにいるはずです。すべてのネットワークインターフェイスとその現在の設定を一覧表示するには、次のコマンドを実行します。
ip a以下のような出力が表示されます。インターフェイス名 (
eth0、enp0s5)、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 アドレスを追加します。これは一般的で安全なプラクティスです。
eth0インターフェイスに、/24のサブネットマスクを持つ新しい静的 IP アドレス192.168.1.10を割り当てます。インターフェイス名が異なる場合は、その名前を使用してください。sudo ip addr add 192.168.1.10/24 dev eth0このコマンドは、既存のアドレスに影響を与えることなく新しいアドレスを追加します。成功した場合、出力はありません。
最後に、新しい IP アドレスが割り当てられたことを確認します。
ip aコマンドを再度使用し、eth0インターフェイスを指定します。ip a show eth0eth0インターフェイスに対して、元の動的 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 forever2 つ目の
inetフィールドに192.168.1.10/24が表示されていることに注意してください。接続を維持したまま、一時的な静的 IP アドレスを正常に追加しました。
デフォルトゲートウェイの設定と ping による接続確認
このステップでは、デフォルトゲートウェイを設定し、ネットワーク接続をテストします。デフォルトゲートウェイとは、宛先が別のネットワーク(インターネットなど)にある場合に、システムがトラフィックを送信するルーターのことです。
お使いのシステムには、ラボ環境によって提供されるデフォルトゲートウェイが既に設定されています。これを変更または削除すると、接続が切断されます。このコマンドを安全に練習するために、より高い メトリック を持つ新しい 2 番目のデフォルトルートを追加します。メトリックが高いほど優先度が低くなるため、システムは実際のトラフィックに使用せず、接続を安全に保ちます。
192.168.1.0/24ネットワークのデフォルトゲートウェイルートを追加しましょう。ゲートウェイの IP を192.168.1.1に設定し、metricを200にします。sudo ip route add default via 192.168.1.1 dev eth0 metric 200default: デフォルトルートであることを指定します。via 192.168.1.1: ゲートウェイルーターの IP アドレスです。dev eth0: ルートはeth0インターフェイス経由でアクセス可能です。metric 200: これにより、このルートはプライマリの既存ルート(メトリックが低い)よりも優先度が低くなります。
ルーティングテーブルを表示して、ルートが追加されたことを確認します。
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 ... (他のルートが存在する場合があります)次に、
pingで接続をテストしましょう。これは、ホストが到達可能かどうかを確認するために、ホストに ICMP "echo request" を送信します。ここで設定した仮想ネットワークのゲートウェイに ping を試してみましょう。ping -c 3 192.168.1.1期待される結果: このコマンドは 失敗することが期待されます。
eth0に IP192.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 パッケージの一部ですが、デフォルトではインストールされていない場合があります。利用可能であることを確認しましょう。
システムのパッケージリストを更新し、DHCP クライアントをインストールします。
sudo apt-get update sudo apt-get install -y isc-dhcp-client次に、接続を中断することなく、前のステップで追加した静的 IP とルートを安全に削除しましょう。
eth0から静的 IP アドレスを削除します。sudo ip addr del 192.168.1.10/24 dev eth0追加した静的なデフォルトルートを削除します。
sudo ip route del default via 192.168.1.1 dev eth0これで、ネットワーク設定は元の状態に戻りました。
dhclientを示すために、DHCP サーバーから IP アドレスの更新を要求しましょう。まず、現在の DHCP リースを解放します。
sudo dhclient -r eth0次に、DHCP サーバーから新しいリースを要求します。
sudo dhclient eth0RTNETLINK answers: File existsというメッセージが表示される場合があります。これは正常です。単にdhclientが既に存在するルートを追加しようとしていることを意味しており、変更は必要ありません。接続は安定したままです。eth0インターフェイスを再度表示して、設定を確認します。ip a show eth0出力には、元の動的 IP アドレスのみが表示され、おそらく
172.16.x.xまたは172.17.x.xの範囲になります。静的 IP192.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 によるネットワーク設定の確認
最終ステップでは、arp と traceroute を使用してネットワーク構成を検査する方法を学びます。
まず、必要なツールがインストールされていることを確認しましょう。arp は net-tools に含まれており、traceroute は独自のパッケージに含まれています。
net-toolsとtracerouteをインストールします。sudo apt-get update sudo apt-get install -y net-tools traceroute
arp を使用した ARP キャッシュの表示
Address Resolution Protocol (ARP) は、ローカルネットワーク上で IP アドレスを物理的な MAC アドレスにマッピングします。結果は ARP キャッシュに保存されます。
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次に、そのゲートウェイ IP(上記の例では
172.16.50.253)に ping を実行してトラフィックを生成します。ping -c 1 <your-gateway-ip>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 コマンドは、パケットが宛先に到達するために経由するルーター(「ホップ」)のシーケンスを表示します。
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 アドレス指定の検査、静的構成、動的構成の方法、および ping、arp、traceroute などの主要なツールを使用してネットワークを確認およびトラブルシューティングする方法を学びました。
まとめ
この実験では、Linux 環境における IP アドレス管理の基本的なスキルを学びました。まず、ip a コマンドを使用してネットワークインターフェイスとその現在の構成を検査し、eth0 のようなターゲットインターフェイスを特定しました。次に、ip addr add を使用して静的 IP アドレスとサブネットマスクを手動で割り当て、その後 ip route add を使用してデフォルトゲートウェイを設定し、外部ネットワークとの通信を可能にしました。手動構成との対比として、dhclient コマンドを使用して DHCP サーバーから IP アドレス、サブネットマスク、およびゲートウェイを自動的に取得する方法も学びました。
さらに、不可欠なネットワーク検証およびトラブルシューティングツールを探求しました。ping コマンドを使用して、デフォルトゲートウェイと外部ホストの両方への基本的なネットワーク接続を確認しました。ネットワーク層へのより深い洞察を得るために、arp コマンドで Address Resolution Protocol (ARP) キャッシュを調べ、IP から MAC アドレスへのマッピングを確認しました。最後に、traceroute を使用して、宛先へのネットワークパスをホップごとにトレースし、ルーティング構成を検証しました。



