| この記事の要点 |
|
ルーターとは
ルーター(router)は、異なるネットワーク同士を接続し、パケットを適切な経路に転送するネットワーク機器です。OSI 参照モデルの第3層(ネットワーク層)で動作し、宛先 IP アドレスを見て次にどこへ送るかを判断します。家庭の Wi-Fi ルーターから、インターネットの基幹を支えるキャリアグレードルーターまで、規模は大きく異なりますが原理は同じです。
ルーターの役割
| 役割 | 内容 |
|---|---|
| ルーティング | 宛先 IP に応じて次のホップを決定し転送 |
| NAT(家庭用) | LAN 側のプライベート IP を WAN 側のグローバル IP に変換 |
| DHCP(家庭用) | LAN 内端末に自動で IP アドレスを配布 |
| パケットフィルタ | 不要 / 危険なパケットを破棄(簡易ファイアウォール) |
| QoS | 音声・動画など優先度の高い通信を優遇 |
| VPN | 暗号化トンネルで拠点間 / リモートアクセス接続 |
動作イメージ
[ PC (192.168.1.10) ]
│
▼
[ ルーター (192.168.1.1 / 203.0.113.5) ] ← デフォルトゲートウェイ
│ 宛先IPを見てルーティングテーブルで判断
▼
[ インターネット ]
│
▼
[ 目的のサーバ (93.184.216.34) ]
ルーティングテーブル
ルーターはルーティングテーブルと呼ばれる経路表を持ち、「宛先ネットワーク → 次のホップ」のマッピングを参照して転送先を決めます。Linux でも ip route で確認できます。
# Linux のルーティングテーブル
$ ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
# 意味
# default → どこにも該当しない宛先は 192.168.1.1(ルーター)へ
# 192.168.1.0/24 → 同一LAN は eth0 から直接送る
スイッチ(L2)との違い
| 項目 | スイッチ(L2) | ルーター(L3) |
|---|---|---|
| 動作層 | 第2層(データリンク) | 第3層(ネットワーク) |
| 判断材料 | MAC アドレス | IP アドレス |
| 主な役割 | 同じネットワーク内の中継 | ネットワーク間の中継 |
| ブロードキャスト | 同じセグメント内に伝搬 | 遮断する(境界になる) |
| 典型用途 | オフィス内 LAN | LAN ↔ WAN、拠点間 |
ルーティングプロトコル
ルーターは静的に経路を設定することも、動的プロトコルで学習することもできます。
| 種類 | 名前 | 特徴 | 規模 |
|---|---|---|---|
| 静的 | Static Route | 手動で設定。動的変化に追従しない | 小規模 |
| 距離ベクトル | RIP | ホップ数で経路選択。15 ホップ上限 | 小規模 |
| リンクステート | OSPF | ネットワーク全体の地図を学習 | 中〜大規模 |
| パスベクトル | BGP | AS 間(インターネット基幹) | キャリア・大規模 |
家庭用ルーターの中身
市販の「Wi-Fi ルーター」は、実際には複数の機能を 1 台に詰め込んだ複合機器です。
- ルーティング(WAN ↔ LAN)
- NAT / NAPT(プライベート IP ↔ グローバル IP)
- DHCP サーバ(LAN 端末に IP 自動配布)
- L2 スイッチ(LAN ポート 4 つ程度)
- Wi-Fi アクセスポイント(2.4GHz / 5GHz)
- 簡易ファイアウォール(SPI、不正アクセス遮断)
NAT のしくみ(簡単に)
家庭の LAN 内の端末(プライベート IP)はインターネットに直接出られません。ルーターが送信元 IP とポート番号を変換して、自分のグローバル IP の名前で代理通信します。これが NAT(NAPT / IP マスカレード)です。これにより、1 個のグローバル IP で複数台の機器がインターネットを利用できます。
業務用との違い
| 項目 | 家庭用 | 業務用 / ISP 用 |
|---|---|---|
| 処理性能 | 数百Mbps〜数Gbps | 数十〜数百 Gbps |
| 動的ルーティング | 非対応 or 限定的 | OSPF / BGP 標準対応 |
| 冗長化 | なし | VRRP / HSRP、二重化電源 |
| 管理 | Web UI | CLI(Cisco IOS、JUNOS 等) |
| 価格 | 数千〜数万円 | 数十万〜数千万円 |
トラブルシュート
- インターネットに出られない —
ping 8.8.8.8でルーターより外が通るか確認 - 名前解決だけ失敗 —
nslookup/digで DNS を確認、ルーターの DNS 設定を見直す - 速度が出ない — QoS、Wi-Fi チャネル混雑、CPU 負荷を確認
- 同じ LAN 内なのに通信できない — これはルーターでなくL2 スイッチ・VLAN 設定を疑う
関連
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38