Instiq
第3章 · ネットワーク構成·v1.0.0·更新 2026/7/7·読了目安 約13分

変更要約: 初版(主題2.03・副主題2.03.1〜2.03.3に対応)

3.2高度なネットワーク構成

この節の要点

sysctlによるカーネルパラメータ調整(特にIPフォワードの有効化)、疎通確認のpingping6、任意ポートでの通信検証に使うnetcatncncat)、パケットキャプチャのtcpdump、ポートスキャンのnmap、接続状況確認のssnetstat を学びます。

サーバーをルーターやゲートウェイとして働かせる、通信経路の途中を覗く、任意のポートが本当に開いているか確かめる——こうした「一歩踏み込んだ」ネットワーク作業には、sysctlによるカーネル調整と、pingnctcpdumpnmapssといった診断ツール群が欠かせません。

3.2.1sysctl とIPフォワード

  • sysctl=カーネルパラメータ(/proc/sys 配下)を実行時に読み書きするコマンド。sysctl net.ipv4.ip_forward で確認、sysctl -w net.ipv4.ip_forward=1 で一時的に有効化。
  • 恒久化=/etc/sysctl.conf(または /etc/sysctl.d/ 以下)に net.ipv4.ip_forward = 1 を記述し、sysctl -p で反映。IPフォワードを有効にすると、サーバーは複数インターフェース間でパケットを中継するルーターとして動作できる。

3.2.2疎通・通信・キャプチャの診断ツール

  • pingping6=ICMP echo request で相手ホストの疎通を確認(IPv4/IPv6)。応答時間・パケットロス率から経路や輻輳の兆候を読み取る。
  • netcatncncat)=任意のTCP/UDPポートへ接続・待受できる汎用ツール。nc -zv host 22 でポート開放確認、nc -l -p 8080 で簡易リスナー起動。
  • tcpdump=インターフェースを流れるパケットをキャプチャ・表示する。tcpdump -i eth0 port 80 のようにインターフェースとフィルタ条件を指定。実際に何が流れているかを確認する最終手段。
  • nmap=対象ホストの開いているポートやサービスを走査するスキャナ。nmap -p 1-1000 host のように範囲指定。セキュリティ診断・構成確認の両方で使う。
  • ssnetstat=ソケットの接続状態一覧。ss -tuln(TCP/UDP・listen中・数値表示)が現行の主流、netstatnetstat -tuln)は同等機能を持つ旧世代ツール。
試験ポイント

「IPフォワードの永続化は /etc/sysctl.conf に net.ipv4.ip_forward=1」「ss は netstat の後継(同等機能・より高速)」「nc はポート疎通確認・簡易サーバー両方に使える」「tcpdump は実際のパケット内容を見る唯一の手段」 が定番の対比です。ping は ICMP、nc は TCP/UDP というプロトコル層の違いも問われます。

「クライアントから特定サービスにつながらない」という報告を受けたときの切り分けは、疎通→ポート→内容の順で段階的に絞り込むのが定石です。まず ping で相手ホストまでの経路がそもそも生きているかを見ます(ICMP自体がフィルタされている環境もあるため、応答が無くても即座に断線とは断定しません)。次に nc -zv host 443nmap -p 443 host目的のポートが開いているかを確認します。ここで閉じていれば、サービス側の起動状況やファイアウォール設定(後の章のトピック)を疑います。ポートは開いているのに通信内容がおかしい場合は tcpdump -i eth0 host <client-ip> and port 443 のように条件を絞ってキャプチャし、SYN が返っているか・途中でリセットされていないかを実際のパケットで確認します。サーバーの現在のリスン状況全体を俯瞰したいときは ss -tuln が最短で、netstat -tuln でも同じ情報が得られますがssの方が大規模接続下で高速です。ルーター的役割(複数NIC間の中継、VPNゲートウェイ等)を持たせるサーバーでは、sysctl net.ipv4.ip_forward0 のままだと転送が起きず疎通できない典型的な見落としになるため、要件に応じて有効化と/etc/sysctl.confへの恒久化を忘れないようにします。

目的コマンド例層・特徴
疎通確認ping host / ping6 hostICMP echo
ポート開放確認nc -zv host 443TCP/UDP・接続試行
ポートスキャンnmap -p 1-1000 host複数ポート一括走査
パケット内容の確認tcpdump -i eth0 port 80実データをキャプチャ
リスン状況の一覧ss -tulnnetstat の後継・高速
注意

ひっかけ: 「ping が失敗した=そのポートのサービスが停止している」は誤りです。ping はICMPでの疎通確認にすぎず、TCPサービスの生死とは無関係です(ICMPがファイアウォールで遮断されているだけの場合もあります)。また「IPフォワードは sysctl -w で有効化すれば恒久的に有効」も誤り=sysctl -wその場限りの変更で、再起動で消えるため/etc/sysctl.confへの記述が必要です。

疎通確認(ping)→ポート確認(nc/nmap)→内容確認(tcpdump)→リスン一覧(ss)の診断フローとsysctl IPフォワードを示す図。
疎通→ポート→内容の順で切り分け

3.2.3この節のまとめ

  • IPフォワードの恒久化=/etc/sysctl.conf に net.ipv4.ip_forward=1(sysctl -p で反映)。sysctl -w は一時的
  • 診断はping(疎通)→nc/nmap(ポート)→tcpdump(内容)→ss(リスン一覧)の順。ss は netstat の高速な後継

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. サーバーを複数NIC間のルーターとして動作させたい。IPフォワードを再起動後も有効な状態で設定するには?

Q2. クライアントから特定サーバーの443番ポートに接続できないと報告があった。ping には応答がある。次に確認すべき適切な手段は?

Q3. サーバー上で現在リスン中のTCP/UDPポート一覧を、数値表示で高速に確認したい。適切なコマンドは?

理解度を確認第3章「ネットワーク構成」の問題を解く