投稿者: Kazu

  • Section 01 : 接続、立つ。

    Section 01 : 接続、立つ。

    ― 入口・出口・名前で読むネットワーク

    Linuxの ip / route / DNS確認コマンドから学ぶネットワーク接続の基本


    1. このセクションで説明できるようになること

    ネットワークが「繋がらない」とき、まず確認すべきは入口・出口・名前です。
    このセクションでは、次の3つを説明できるようになります。

    • 入口(IF / IP)
      どのインターフェースにどのIPが付いているかを説明できる
    • 出口(default route / next hop)
      どの経路で外へ出ているかを説明できる
    • 名前(DNS / resolver)
      どのDNSに問い合わせているかを特定できる

    まずは、自分のコンピュータが
    「いま、どこに立っているのか」 を観測できるようになる

    ※ 本章ではトラブルシュートは扱いません。
    まずは“正しい現在地”を明らかにします。


    2. 入口 ― インターフェースとIP

    ターミナルを立ち上げて、コマンドを実行してみましょう。
    ここでは、ルータにLANで接続したRaspberry Pi5を使っています。

    📘 インターフェースの状態を確認する

    インターフェースとは?
    = OSから見たネットワークへの”入口(出入り口)”。

    このコマンドを実行してみましょう。

    $ ip -br addr
    lo               UNKNOWN        127.0.0.1/8 ::1/128
    eth0             UP             192.168.10.7/24
    wlan0            DOWN

    👀 観測ポイント:

    • eth0(有線LAN) が UP(有効)
    • 192.168.10.7/24 が付与されている
    • lo は 自分自身に向かう特殊なインターフェース
    • wlan0(Wi-Fi) は DOWN(今回は未使用)

    🗣 現在地を一言で説明:
    「eth0 に 192.168.10.7/24 が付いており、有効になっている」


    3. 出口 ― ルーティングテーブル

    📘 ルーティングテーブルを確認する

    ルーティングテーブルとは?
    =宛先ごとに「どの入口から外へ出るか」を記録した一覧。
    デバイスやDHCPからのルータ情報などから、OSが構築します。

    このコマンドを実行してみましょう。

    $ ip route
    default via 192.168.10.1 dev eth0 proto dhcp src 192.168.10.7 metric 100
    192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.7 metric 100

    👀 観測ポイント:

    • 各行が1つのルートに相当
    • default(外への出口)
    • via 192.168.10.1(次ホップ=ゲートウェイ)
    • dev eth0(どのIFから出るか)
    • proto dhcp(DHCP由来の設定)

    🗣 現在地を一言で説明:
    「192.168.10.1 を経由して eth0 から外へ出る設定になっている」


    実際の経路確認

    以上の結果:

    • インターフェースがUPしている
    • ルーティングテーブルに接続先が出ている

    このルートで通信が可能か、確認してみましょう。

    このコマンドを実行してみましょう。

    $ ip route get 1.1.1.1
    1.1.1.1 via 192.168.10.1 dev eth0 src 192.168.10.7 uid 1000

    👀 観測ポイント:

    • via 192.168.10.1
    • dev eth0
    • src 192.168.10.7

    🗣 現在地を一言で説明:
    「1.1.1.1 宛の通信はインターフェース: eth0 から出て、192.168.10.1 を経由、送信元IPは 192.168.10.7 になる」
    ※ “1.1.1.1”はGoogle.comのグローバルIPアドレス


    4. 名前 ― DNSと名前解決

    📘 DNSサーバを確認する

    DNSとは?
    =サーバなどの名前(ドメイン)をIPアドレスに変換する仕組み。
    ネットワーク上のDNSサーバが処理します。

    このコマンドを実行してみましょう。

    $ resolvectl status
    Link 2 (eth0)
        Current DNS Server: 192.168.10.1
           DNS Servers: 192.168.10.1

    👀 観測ポイント:

    • 問い合わせ先DNS Server: 192.168.10.1
    • eth0 に DNSサーバ が紐づいている

    🗣 現在地を一言で説明:
    「名前解決はDNSサーバ :192.168.10.1 に問い合わせている」


    DNSサーバによる名前解決の実行

    “example.com”という「名前」が、IPアドレスに変換される→「名前解決される」といいます。

    このコマンドを実行してみましょう。

    $ dig +short example.com
    93.184.216.34

    ※ example.com:IETF(インターネット技術の標準化団体)によって予約されたドメイン名

    👀 観測ポイント:

    • IPアドレスが返ってきている
    • 空行ではない(=失敗していない)

    🗣 現在地を一言で説明:
    「名前:example.com は IP アドレスに解決できている」


    5. 到達 ― 実際に届くか

    対象のIPアドレスを持つ機器と通信できることを「疎通する」といいます。

    このコマンドを実行してみましょう。

    $ ping -c 3 1.1.1.1
    3 packets transmitted, 3 received, 0% packet loss
    rtt min/avg/max/mdev = 12.313/12.619/12.902/0.241 ms

    👀 観測ポイント:

    • 0% packet loss
    • 応答時間が表示されている

    🗣 現在地を一言で説明:
    「1.1.1.1 とのパケット往復は成立している」


    セクション1 総括 ― いま、何がわかったのか?

    入口(インターフェース / IP)

    • 接続の入口は eth0
    • IPは 192.168.10.7

    出口(default route / next hop)

    • 外へ出る経路は IF は eth0192.168.10.1 経由

    名前(DNS / resolver)

    • 名前解決は 192.168.10.1 に問い合わせている

    到達(疎通確認)

    • 外部とのパケット往復が成立していることを観測する

    つまり、こう説明できる

    • 入口は eth0(192.168.10.7)
    • 出口は 192.168.10.1 経由
    • 名前は 192.168.10.1 が解決している
    • 実際に外部へ到達できている

    ここまでで、自分のコンピュータの現在地が明らかになりました。

    ネットワークが繋がらないときは慌てるのではなく、
    まずはこの4点を観測し、現在地を明らかにします。

    それがこのシリーズの出発点です。


    次章では、
    どこかが崩れたときに何が起きているのかを見ていきます。

  • Section00 : 繋ぐ。

    Section00 : 繋ぐ。

    シリーズ目次


    Pi Linux Lab ~ Network の始まり
    ― Linuxベースで「繋ぐ」技術を身につける

    このラボでは、Linuxのコマンド操作を軸に、ネットワークを
    観測→切り分け→復旧 する技術を学びます。

    ポイントは「詳しい理論」ではなく、実務で必要になるこの力です:

    • いま何が起きているかを、コマンド出力(証拠)で確定する
    • どの層で壊れているかを切り分ける
    • 直して再発防止できる形でログを残す

    実務で困るのは、こういう瞬間です

    • SSHが急に繋がらない(昨日は繋がったのに)
    • IPアドレスではつながるのに、ホスト名だとつながらない
    • 同じ設定のはずなのに、PC間で挙動が違う
    • 直結は繋がるのに、ルータ経由だと不安定になる(または逆)

    こういうときに必要なのは、用語の暗記ではなく——

    「いま起きていることを、証拠つきで切り分けて説明する力」です。


    こんな人のためのラボです

    本を読んだ。図も見た。用語も追った。

    でも、いざ自分のPCで何かが起きたとき、

    • どこを見ればいいか分からない
    • “層”の図は分かる気がするが、手元の状態に結びつかない
    • 何が原因か特定できず、運に任せて再起動してしまう

    ——この状態から抜け出したい人。


    このラボで身につく「実務で使える技術」は何か

    このラボのゴールは、次の3つをできるようにすることです。

    1) いまの自分のネットワーク状態を「確定」できる

    • 入口:どのインターフェースが使われ、どのIPを持っているか
    • 出口:どこに出ていくか(ルーティング / デフォルトゲートウェイ)
    • 名前:DNSはどこを向いているか
    • 到達:IPで届くのか/名前で届くのか

    これを、コマンド出力という証拠で言い切れるようにします。

    2) “壊れ方”を層ごとに分類できる

    ネットワーク障害は、だいたい次のどこかで壊れます。

    • L2/L3(到達の土台):IFが落ちている、IPが違う、GWがない、ルートが変
    • DNS(名前):IPでなら届くのに名前で届かない
    • TCP(接続):ポートが開いていない、拒否される、タイムアウトする
    • HTTP/TLS(アプリの入口):返るがステータスが違う、TLSで握手できない

    そして各層の判断は、次のような観測で“客観化”します(例):

    • IF/IP/Route:ip, route
    • DNS:dig
    • TCP:ss
    • HTTP/TLS:curl -v, curl -vk
    • 必要ならパケット:tcpdump

    あなたが現場でやるべきことは、“詳しい理論”より先に
    どこが壊れているかを言い当てることです。

    3) 証拠の残し方が「型」になる

    再現しない問題ほど、証拠が命です。

    このラボでは各回、必ず

    • 出力(ログ)
    • 失敗した現象
    • 切り分けの判断ポイント
    • 復旧手順

    ファイルとして保存します。
    「できた気がする」ではなく、「あとから検証できる」に変えます。


    このラボの進み方

    このシリーズは、上から順に「切り分けの土台」を作っていきます。

    1. 観測器を整備する(IF / IP / Route / DNS を固定する)
    2. L2/L3を固める(同一セグメントとGW、ARP/ND、ルート)
    3. DNSを観測する(名前解決がどこで壊れるか)
    4. TCPを観測する(接続・ポート・状態)
    5. HTTPを観測する(リクエスト/レスポンスの成立)
    6. TLSを観測する(HTTPSで見えなくなる/握手は見える)
    7. 統合演習:壊して直す(原因を層で言い当てる)

    ここまでできれば、IoTの実践、ロボットや生産装置の現場で出てくる
    「つながらない」が、怖くなくなります。


    最初のセクションでやること

    最初は、ネットワークの“理解”ではなく 観測の土台作りです。

    • 入口(インターフェース / IP)
    • 出口(ルーティング)
    • 名前(DNS)
    • 到達(疎通確認)

    この4点を、あなたの環境で、証拠つきで固定します。
    次の章から「壊して直す」をやるための、いわば 計測器の校正です。


    このシリーズのルールとゴール

    • 診断に必要なコマンドを実際に実行し、結果を観測する
    • コマンドの出力を必ず “証拠”(ログ/パケット/コマンド出力)として残す
    • このシリーズのゴールは「HTTP/HTTPSが返る」まで

    では、まず 現在地の観測から始めましょう。
    セクション1へ進みます。