Open1

ルーティングについて

ひでひで

ルーティングとは

ルーティングとは、「データをどの道筋で送るかを決める仕組み」です。

例えば、あなたが東京から大阪に行くとき:

  • 新幹線で行く
  • 飛行機で行く
  • 車で高速道路を使う

このように「目的地への最適な経路を選ぶ」のがルーティングの考え方です。

ネットワークでも同様に、データ(パケット)が目的地に届くまでの経路を決める必要があります。

ルーティングテーブルとは

ルーティングテーブルは、「どの宛先に対して、どの経路を使うか」を記録した「道路地図」のようなものです。

ルーティングテーブルの確認方法

# ルーティングテーブルを確認する方法
route -n
# または
ip route show
# または  
netstat -rn

ルーティングテーブルの見方

宛先          ゲートウェイ    インターフェース
0.0.0.0       192.168.1.1    eth0
192.168.1.0   0.0.0.0        eth0
127.0.0.0     0.0.0.0        lo

これを解説すると…

1行目: 0.0.0.0/0 → 192.168.1.1

  • 意味:「どこにも該当しないパケットは192.168.1.1に送る」
  • これが「デフォルトゲートウェイ」(通常はルーターのIPアドレス)

2行目: 192.168.1.0/24 → 直接配送

  • 意味:「192.168.1.0~192.168.1.255は同じネットワーク内なので直接送る」

3行目: 127.0.0.0/8 → ループバック

  • 意味:「自分自身への通信」

IPマスカレードとは

IPマスカレードは、「複数の内部IPアドレスを1つの外部IPアドレスに変換する技術」です。

具体例で説明

家庭内ネットワークを例にすると以下になります。
※IPアドレスは適当です。

インターネット ← [ルーター] ← 家庭内ネットワーク
                             ├ パソコン (192.168.1.10)
                             ├ スマホ   (192.168.1.11) 
                             └ タブレット(192.168.1.12)

問題:家庭内の機器はプライベートIPアドレス(192.168.1.x)を使っていますが、インターネットではこのIPアドレスは使えません。

解決:ルーターが「IPマスカレード」を行います:

  1. パソコンがGoogle(8.8.8.8)にアクセスしたい
  2. ルーターが「192.168.1.10」を「グローバルIP」に変換
  3. インターネットに送信
  4. 返信が来たらルーターが元の「192.168.1.10」に戻して配送

これにより、複数の機器が1つのインターネット接続を共有できます。

関連コマンドの詳細

1. ルーティング設定コマンド

# デフォルトゲートウェイを設定
route add default gw 192.168.1.1

# 特定ネットワークへのルートを追加
route add -net 10.0.0.0/8 gw 192.168.1.1

# 新しいコマンド
ip route add default via 192.168.1.1
ip route add 10.0.0.0/8 via 192.168.1.1

# ルートを削除
ip route del 10.0.0.0/8

2. IPマスカレード設定コマンド

# IPフォワーディングを有効化
echo 1 > /proc/sys/net/ipv4/ip_forward

# iptablesでマスカレードを設定
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 内部ネットワークから外部への通信を許可
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

3. 確認コマンド

# IPフォワーディングの状態確認
cat /proc/sys/net/ipv4/ip_forward

# NATテーブルの確認
iptables -t nat -L

# 接続状況の確認  
netstat -an