⏱ 約 45 分 · ip コマンドでネットワークを読む
Part 2Chapter 01/ネットワーク基礎

ip で読む IP・サブネット・ルーティング

learner01 がどのネットワークに居て、町の外へ出るときどこへ渡すのかを、設定変更なしで読めるようになります。Part 1 で SSH した接続先を、今度はサーバ自身の目線で確認します。

所要時間約 45 分
章タイプstandard
前提知識Part 1 Chapter 1(SSH)/ Chapter 3(ファイルを読む)/ Chapter 4(長い出力から見る場所を決める)
使用機材workstation01ssh student@learner01、learner01: 172.16.10.20/24、GW: l3router01 172.16.10.1
関連章前: Part 2 目次 / 次: Chapter 2「ARP と MAC」

サーバの現在地と出口を読む

Part 1 では ssh student@learner01 と打ち、名前を使ってサーバへ入りました。この章では、入った後の learner01 で ip aip r を読み、そのサーバがどの住所を持ち、どの出口へつながっているかを確認します。

ネットワークの切り分けは、いきなり設定を書き換えるところから始めません。まず「自分はどのネットワークに居るのか」「同じセグメントはどこまでか」「外へ出るなら誰に渡すのか」を読むところから始めます。

この章で読む learner01 の世界
learner01
  NIC:  ens18
  IP:   172.16.10.20/24
  NET:  172.16.10.0/24      ← 同じセグメント
  GW:   172.16.10.1         ← 町の外へ出る出口

使うコマンド:
  ip a      自分の NIC と IP を読む
  ip r      直結ルートと default route を読む
  ping      default gateway に届くか確認する
この章のゴール: learner01 上で ip aip rping 172.16.10.1 を実行し、「172.16.10.20/24 は VLAN10 に居る」「172.16.10.0/24 は直結」「default は 172.16.10.1 へ渡す」と説明できる。

この章を終えるとできること

ネットワークを読む 4 動作を、すべて learner01 上の読み取りコマンドで練習します。

$ ip a
ens18 UP
172.16.10.20/24
① 住所
NIC と IP アドレスを
出力から見つける
ip a
172.16.10.20
/24 同じ町
172.16.10.0/24
② 境界
/24 から
同じセグメントを読む
CIDR
$ ip r
default via
172.16.10.1
③ 道
default と直結の
ルートを読み分ける
ip r
$ ping -c 3
172.16.10.1
0% packet loss
④ 確認
出口のルータまで
届くか確認する
ping

IP、サブネット、経路表を分けて読む

1. IP アドレスはサーバの住所

172.16.10.20/24 のうち、172.16.10.20 が learner01 の IP アドレスです。Linux ではこの住所が NIC に付いています。NIC が複数あるサーバでは、ip a に複数のインターフェースが並びます。

この章では、172.16.10.20/24 が付いている NIC を VLAN10 の入口として読みます。名前は環境により ens18eth0 のように変わることがあります。名前よりも、どの IP が付いている NIC かを見るのが大切です。

2. /24 は同じセグメントの境界線

/24 は CIDR 表記で、172.16.10.0 から 172.16.10.255 までを同じセグメントとして扱う、という意味です。この章では 172.16.10.0/24 を VLAN10 の町として読みます。

相手learner01 から見た読み方この章での扱い
172.16.10.1172.16.10.0/24 の中にいる同じセグメントの gateway
172.16.10.50172.16.10.0/24 の中にいる直結ルートの範囲
172.16.20.10172.16.10.0/24 の外にいるCh4 で別セグメントとして扱う

3. ルーティングテーブルは「どこへ渡すか」の表

ip r は、Linux が持っている経路表を表示します。直結ルートは「この NIC に IP が付いているので、このネットワーク宛はそのまま出せる」という行です。default は、どの直結ルートにも当てはまらない宛先を最後に渡す出口です。

出力の形読み方
172.16.10.0/24 dev ens18 ...VLAN10 宛は ens18 から直接出す
default via 172.16.10.1 dev ens18それ以外は 172.16.10.1 に渡す

4. NIC と vmbr は見える場所が違う

learner01 の中では ens18 のような NIC 名が見えます。その外側、Proxmox ホスト側には vmbr という仮想スイッチがあり、VM の NIC を物理 NIC や VLAN へつなぎます。受講者は learner01 上で vmbr を操作しませんが、自分の NIC の先に仮想スイッチと物理ネットワークがあると理解しておくと、Chapter 3 の Bridge / VLAN がつながります。

learner01ens18
172.16.10.20/24
VLAN10 / vmbr
l3router01172.16.10.1
default gateway

5. L2 と L3 の入口を分ける

この章の中心は L3、つまり IP とルーティングです。ただし、同じ 172.16.10.0/24 の中で実際にフレームを届けるときは L2 の MAC アドレスが必要になります。その変換が Chapter 2 の ARP です。ここでは、同じセグメントか、町の外へ出るかを判断する入口までを扱います。

learner01 で ip の出力を読む

演習の安全範囲

この章のコマンドは learner01 上で実行する読み取り中心の操作です。sudo は使いません。設定を変更しないため、ip aip rping は何度打っても問題ありません。

STEP 01 · learner01 に入ったことを確認する

受講者の出発点は workstation01 です。ssh student@learner01 で入ったあと、この章のコピー対象はすべて learner01 上で実行します。まずホスト名を確認します。

bash · learner01
hostname
期待する見え方
learner01

workstation01 のままなら、まだ演習対象へ入れていません。ssh student@learner01 で learner01 へ入ってから続けます。

STEP 02 · ip a で NIC と IP を読む

ip a はインターフェースごとの詳細を表示します。長い出力ですが、この章では inet 172.16.10.20/24 と、その直前にある NIC 名を探します。

[🛰 ライブビューで見る]

bash · learner01
ip a
ip -br addr
出力例
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 172.16.10.20/24 brd 172.16.10.255 scope global ens18

lo      UNKNOWN  127.0.0.1/8 ::1/128
ens18   UP       172.16.10.20/24
ここを読む: inet 172.16.10.20/24 が learner01 の住所です。行末の ens18 が、その住所を持つ NIC です。複数 NIC が出ても、VLAN10 の 172.16.10.20/24 を持つ行を基準にします。

STEP 03 · ip r で default と直結ルートを読む

ip r は経路表です。ここでは default172.16.10.0/24 の 2 種類を読み分けます。

bash · learner01
ip r
出力例
default via 172.16.10.1 dev ens18 proto static
172.16.10.0/24 dev ens18 proto kernel scope link src 172.16.10.20
ここを読む: 172.16.10.0/24 dev ens18 は直結ルートです。同じ VLAN10 宛は ens18 から直接出します。default via 172.16.10.1 は、町の外へ出るとき l3router01 に渡すという意味です。

STEP 04 · default gateway に ping する

最後に、経路表で読んだ default gateway 172.16.10.1 へ届くかを確認します。これは「learner01 から VLAN10 の出口までは届いているか」を見る確認です。

bash · learner01
ping -c 3 172.16.10.1
出力例
PING 172.16.10.1 (172.16.10.1) 56(84) bytes of data.
64 bytes from 172.16.10.1: icmp_seq=1 ttl=64 time=0.421 ms
64 bytes from 172.16.10.1: icmp_seq=2 ttl=64 time=0.389 ms
64 bytes from 172.16.10.1: icmp_seq=3 ttl=64 time=0.402 ms

--- 172.16.10.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
ここを読む: 0% packet loss なら、learner01 から l3router01 の VLAN10 側までは届いています。別セグメントへ出る話は Chapter 4 で扱います。

読めないときの切り分け

1. NIC が複数あって迷う

NIC 名だけで判断せず、172.16.10.20/24 が付いた行を探します。lo は自分自身に戻る内線なので、この章の通信経路ではありません。

bash · learner01
ip -br addr
ip -br link

2. ip r に default がない

default via 172.16.10.1 が無い場合、町の外へ出る出口が経路表にありません。この章では設定を変更しないため、出力をメモして講師または運営に共有します。設定追加は Chapter 4 以降の範囲です。

bash · learner01
ip r
ip -br addr

3. ping 172.16.10.1 が通らない

まず ip a で learner01 が 172.16.10.20/24 を持っているか、次に ip r172.16.10.0/24 と default があるかを確認します。IP と経路表が正しく見えるのに ping が失敗する場合、Chapter 2 で扱う ARP / MAC 側の確認へ進みます。

bash · learner01
ip a
ip r
ping -c 3 172.16.10.1

AI に相談

AI IP と経路表の読み方を質問する

詰まったら、ip aip r の出力を貼って「どの行を読めばよいか」「default の意味が分からない」のように質問してください。

この章の IP・サブネット・経路表を前提に説明します

修了確認

問 1 · ip a の行を読む

次の行を見て、(a) learner01 の IP アドレス、(b) CIDR、(c) NIC 名を答えてください。

ip a 出力
inet 172.16.10.20/24 brd 172.16.10.255 scope global ens18
解答を見る
(a) 172.16.10.20、(b) /24、(c) ens18 です。/24 まで含めると、同じセグメントが 172.16.10.0/24 だと読めます。

問 2 · ip r の default と直結を読む

次の経路表で、(a) VLAN10 へ直接出る行、(b) 町の外へ出るときに渡す gateway、を答えてください。

ip r 出力
default via 172.16.10.1 dev ens18 proto static
172.16.10.0/24 dev ens18 proto kernel scope link src 172.16.10.20
解答を見る
(a) 172.16.10.0/24 dev ens18 が直結ルートです。(b) gateway は 172.16.10.1 です。default via は、他の行に当てはまらない宛先を最後に渡す出口を示します。

修了確認の段階ヒント(問 1・問 2 共通)

段階ヒント 1 段目:まず数字と NIC 名を拾う
ip a では inet の後ろが IP / CIDR、行末が NIC 名です。ip r では dev の後ろが出口 NIC です。
段階ヒント 2 段目:default と直結を分ける
172.16.10.0/24 dev ens18 は同じセグメントへ直接出る行です。default via 172.16.10.1 は、それ以外を gateway に渡す行です。
段階ヒント 3 段目:Part 1 の SSH とつなげる
Part 1 で名前で接続した learner01 は、サーバの中から見ると 172.16.10.20/24 という住所を持っています。名前で入った先を、IP の行として読み直すのがこの章の確認です。

次は ARP と MAC

この章では、learner01 の住所、同じセグメントの範囲、町の外へ出る gateway を読みました。ここまでが L3 の入口です。

次の Chapter 2 では、同じ VLAN10 の中で 172.16.10.1 に届く直前に、IP アドレスから MAC アドレスをどう引くのかを見ます。ip neightcpdump で ARP を捕まえ、L2 と L3 のつながりを出力で確認します。

Chapter 2: ARP と MAC
  • ip neigh で gateway の MAC を読む
  • ARP request と reply を tcpdump で見る
  • 同じセグメントの中で起きている L2 の動きを説明する