ネットワークの基礎
ネットワークの基礎とは
ネットワークとは、コンピュータ同士がデータを送受信するための仕組みである。インターネットや社内 LAN など、現代のシステムはすべてネットワークを介して通信を行っている。SIer の業務システムでは、ブラウザからサーバーへの通信、サーバー間の通信、外部システムとの連携など、あらゆる場面でネットワークの知識が必要となる。
なぜ SIer で重要か
SIer が構築する業務システムは、複数のサーバーが連携して動作する分散システムであることがほとんどである。Web サーバー・AP サーバー・DB サーバー間の通信、外部 API との連携、ファイアウォールによるアクセス制御など、ネットワーク構成を理解しなければシステム全体の動きが把握できない。
開発者であっても、「なぜこの通信がタイムアウトするのか」「なぜこのサーバーに接続できないのか」といったトラブルに遭遇する場面は多い。ネットワークの基礎を理解していれば、原因の切り分けが格段に早くなる。
基本概念
OSI 参照モデルと TCP/IP
ネットワーク通信は、複数の「層(レイヤー)」に分けて設計されている。OSI 参照モデルは 7 層、TCP/IP モデルは 4 層で構成される。SIer の現場では TCP/IP モデルをベースに理解しておけば十分である。
OSI 参照モデル TCP/IP モデル
┌──────────────┐
│ 7. アプリケーション層│ ┌──────────────┐
│ 6. プレゼンテーション層│ │ アプリケーション層 │ HTTP, DNS, SMTP
│ 5. セッション層 │ └───────┬──────┘
├──────────────┤ │
│ 4. トランスポート層 │ ┌───────┴──────┐
├──────────────┤ │ トランスポート層 │ TCP, UDP
│ 3. ネットワーク層 │ ├──────────────┤
├──────────────┤ │ インターネット層 │ IP
│ 2. データリンク層 │ ├──────────────┤
│ 1. 物理層 │ │ ネットワーク │ Ethernet
└──────────────┘ │ インターフェース層 │
└──────────────┘
IP アドレスとサブネット
IP アドレスは、ネットワーク上のコンピュータを識別するための番号である。IPv4 では 192.168.1.10 のようにドット区切りの 4 つの数値で表現する。
| 概念 | 説明 | 例 |
|---|---|---|
| IP アドレス | ネットワーク上の住所 | 192.168.1.10 |
| サブネットマスク | ネットワーク部とホスト部の境界を示す | 255.255.255.0(/24) |
| デフォルトゲートウェイ | 他のネットワークへの出口となるルーター | 192.168.1.1 |
| プライベート IP | 社内 LAN 等で使用する内部アドレス | 10.x.x.x, 172.16.x.x, 192.168.x.x |
| グローバル IP | インターネット上で一意なアドレス | ISP から割り当てられる |
ポート番号
ポート番号は、同一コンピュータ上のどのアプリケーション宛の通信かを識別するための番号(0〜65535)である。IP アドレスが「建物の住所」なら、ポート番号は「部屋番号」に相当する。
| ポート番号 | プロトコル | 用途 |
|---|---|---|
| 80 | HTTP | Web サーバー(暗号化なし) |
| 443 | HTTPS | Web サーバー(暗号化あり) |
| 22 | SSH | リモートログイン |
| 5432 | PostgreSQL | PostgreSQL データベース |
| 1521 | Oracle | Oracle データベース |
| 8080 | HTTP(代替) | AP サーバー(Tomcat 等) |
DNS の仕組み
DNS(Domain Name System)は、ドメイン名(例: www.example.com)を IP アドレス(例: 93.184.216.34)に変換する仕組みである。
名前解決の流れ:
ブラウザ → OS のリゾルバ → DNS サーバー → IP アドレスを返却
│
├→ キャッシュにあればすぐ返す
└→ なければ上位 DNS に問い合わせ
HTTP / HTTPS の基礎
HTTP(HyperText Transfer Protocol)は、Web ブラウザと Web サーバー間の通信プロトコルである。HTTPS は HTTP に SSL/TLS による暗号化を加えたものであり、現在ではほぼすべての通信が HTTPS で行われる。
HTTP リクエスト/レスポンスの流れ:
ブラウザ → リクエスト(GET /index.html) → Web サーバー
ブラウザ ← レスポンス(200 OK + HTML) ← Web サーバー
よく使う HTTP ステータスコードは以下の通りである。
| ステータスコード | 意味 | 説明 |
|---|---|---|
| 200 | OK | リクエスト成功 |
| 301 | Moved Permanently | 恒久的リダイレクト |
| 400 | Bad Request | リクエストが不正 |
| 403 | Forbidden | アクセス権限なし |
| 404 | Not Found | リソースが見つからない |
| 500 | Internal Server Error | サーバー内部エラー |
| 503 | Service Unavailable | サービス利用不可 |
ファイアウォールとプロキシ
ファイアウォール は、ネットワーク間の通信を監視し、許可された通信のみを通過させるセキュリティ機能である。SIer のシステムでは、インターネットと社内ネットワークの境界、ネットワークセグメント間の境界に設置される。
プロキシ(プロキシサーバー) は、クライアントとサーバーの間に入り、通信を中継するサーバーである。社内からインターネットへのアクセス時に経由する「フォワードプロキシ」と、外部からのアクセスを内部サーバーに振り分ける「リバースプロキシ」がある。
SIer での使われ方
ネットワーク構成の理解
SIer の業務システムは、セキュリティの観点からネットワークを複数のセグメントに分離する。
インターネット
│
[ファイアウォール]
│
┌──┴──┐
│ DMZ │ ← Web サーバー(外部公開用)
└──┬──┘
[ファイアウォール]
│
┌──┴──────┐
│ 社内 LAN │ ← AP サーバー、DB サーバー(外部非公開)
└─────────┘
DMZ(非武装地帯)は、インターネットと社内 LAN の間に置かれるネットワーク領域であり、外部に公開するサーバーはここに配置する。
よく使うネットワークコマンド
障害調査やネットワーク疎通確認で使用する主なコマンドは以下の通りである。
| コマンド | 用途 | 使用例 |
|---|---|---|
ping | 対象ホストとの疎通確認 | ping 192.168.1.10 |
traceroute | 対象ホストまでの経路確認 | traceroute www.example.com |
nslookup | DNS の名前解決確認 | nslookup www.example.com |
curl | HTTP リクエストの送信 | curl -I https://example.com |
ss | ネットワーク接続の確認 | ss -tlnp |
まとめ
- ネットワーク通信は TCP/IP モデル(4 層)で理解するのが実用的である
- IP アドレスがネットワーク上の住所、ポート番号がアプリケーションの識別番号である
- DNS はドメイン名を IP アドレスに変換する仕組みである
- ファイアウォールとネットワークセグメント分離により、SIer のシステムはセキュリティが確保されている
ping、curl、nslookup等のコマンドで疎通確認や障害調査を行える