このエントリーをはてなブックマークに追加
スポンサーリンク

スタティックルーティングの設定

デフォルトのゲートウェイ

まず、デフォルトのゲートウェイを設定してみましょう。デフォルトのゲートウェイとは、すなはち、「自分が知らないあて先のパケットを送る場所」です。まず、それぞれルーターに繋がっているサーバー機(または端末機)の場合です。この場合「デフォルトのゲートウェイ」は、そこに直接つながっているルーターです。宅急便にたとえるなら、「お近くの営業所」です。

このような場合、サーバー機A〜Dにとっての「デフォルトのゲートウェイ」は、ルーター機(192.168.0.1)になります。
/etc/sysconfig/network というファイルに、以下の記述を追加します。
GATEWAY=192.168.0.1
ルーター機の場合のデフォルトのゲートウェイは、上位回線のルーターになります。

1)PPPoE接続の場合
プロバイダとPPPoEで接続する場合、デフォルトのゲートウェイはプロバイダと接続した後に決定します。この場合、pr-pppoeというソフトが自動的にデフォルトのゲートウェイを設定してくれます。なので、/etc/sysconfig/network内のGATEWAY=の後には何も記述しないでおきます。

2)直接接続の場合
PPPoEではなく、データーセンター内にあるサーバー群などで、ラック内のゲートウェイを上位のルーターに直接繋ぐ場合は、/etc/sysconfig/network内のGATEWAY=の後上位のルーターのアドレスを記述してください。

ルーティングテーブルの設定

先に説明したとおり、ルーティングテーブルとは、どこのネットワーク宛のパケットは、どこに送るべきかを記述するものです。

この図には、赤で囲んだネットワーク(192.168.0.0)と青で囲んだネットワーク(192.168.1.0)があります。赤で囲んだネットワークは、外部に直接つながっているルーターAの直下にあり、ここには通常サーバーを配置します。これをDMZと呼びます。

青で囲んだネットワークは、外部とつながっているルーターの下にさらにルーターがあって、その下にあります。ここには通常Windows端末などの、実際に人間が操作するPCや、社内用のストレージサーバー、社内用グループウェアなどの用途で使うための内部用WEBサーバーなどを配置します。

ルーターBには、IPアドレスが2つついています。なぜでしょう?それはネットワークカード(NIC)が2枚入っているからです。このように、パソコンをルーターをして使うためには、ネットワークカードを2枚(かそれ以上)さして、それぞれに異なるネットワークアドレスをつける必要があります。これによって、ルーターBは、青いネットワークから来たパケットを、赤いネットワーク(上位のネットワーク)へ渡すことができます。

ここで、各端末(もしくはサーバー)機である、192.168.1.2〜192.168.1.4のマシンのデフォルトのゲートウェイは、先に説明したとおり、192.168.1.1となります。つまり、宅急便にたとえると、「お近くの営業所」となるわけです。また、ルーターBから見た場合、デフォルトのゲートウェイは192.168.0.1となります。宅急便にたとえると、上位の営業所といった所でしょうか。

しかし、この状態では赤いネットワークから青いネットワーク宛のパケットが通りません。つまり、Windows端末からDMZにあるサーバーにアクセスしてもレスポンスが帰ってこないという事です。これは、ルーターAが、ルーターB以下にある青いネットワークの存在を知らないからです。

そこで、赤いネットワーク内から青いネットワーク内へのパケットを通すために、DMZ内のサーバーからのパケットを、ルーターAからルーターBに中継してもらいます。
route -add net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2 eth1

このコマンドを/etc/rc.d/rc.localに書いておけば、サーバー起動時にも再現されます。rc.localに書くのはスマートじゃないとお考えの方は、/etc/sysconfig/network-scripts/route-eth1という設定ファイルに以下の記述をしておきます。
ADDRESS0=192.168.1.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.2
こうする事で、ルーターAに、青いネットワークへのパケットは192.168.0.2へ送る事が設定されます。 eth1は、192.168.0.X につながっているネットワークカードですので、設定に応じて読み替えてください。

フォワーディングの設定

前述の設定をしただけでは、ルーターBは赤いネットワークから青いネットワークへ、また青いネットワークから赤いネットワークへパケットを通してくれません。なぜなら、デフォルトではNICからNICへのパケットの転送(フォワーディング)を禁止しているからです。なので、ここでフォワーディングを許可に設定します。
/etc/sysctl.conf
net.ipv4.ip_forward = 1
と記述します。デフォルトでは=0になっているので、1に変更します。

ここを変更したら、ネットワークをリスタートします。
/etc/rc.d/init.d/network restart

これで、フォワード機能が有効になり、NIC間のパケット転送を行うようになります。
スポンサーリンク