環境
RedHat5.2
はじめに
物理的に異なる2つのネットワークがあります。そのネットワークどうしを繋げるためにはどのようにすればいいでしょうか。
物理的に異なるのであれば、各ネットワークのハブどうしを、LANケーブルでカスケードすればいいでしょう。カスケードのインターフェースがなければ、新たにハブを追加することになります。
2つのネットワークのネットワークアドレスが共に同じであれば、それだけの対応で問題ないでしょう。ただし、2つのネットワークの各ノードで、IPアドレスの重複がないことが前提になります。ネットワークアドレスが共に同じということは、つまり、双方のネットワークアドレスが、192.168.19.0であった場合、サブネットも24ビットどうしだということです。
2つのネットワークのネットワークアドレスが異なっていた場合は、それだけでは不十分です。TCP/IPで会話したいと思ったら、ネットワーク層どうしで接続ができるようにする必要があります。
データリンク層でつながるプロトコルであれば、ハブで接続するだけでやりとりができるようになります。データリンク層でつながるプロトコルとは、昔、Windowsで使われてたNetBEUIのようなプロトコルのことです。小規模なネットワークであれば、NetBEUIがデフォルトでWindowsに入っていたため、物理的に接続するだけで、いとも簡単にファイル共有ができるようになるといった時代がありました。IPアドレスの管理などする必要はありません。そのうち、ネットワークの規模が大きくなるにつれて、おしゃべりなプロトコルは、ネットワークに大きな負荷をかけることになり、厄介者扱いされるようになっていきました。インターネットの世界だけで使われていたTCP/IPが、いつやらデファクトスタンダードとなり、社内LANにも標準的に使われるようになってきてからは、NetBEUIのチェックは外すことが推奨されるようになってきました。そしていつのことだろうか、Windowsから消えることに。
さて、話が少しそれました。つまり、ハブはデータリンク層までしかつなぐことができません。ネットワーク層をつなげるには、ハブではなくルーターが必要になります。
ゲートウェイサーバーの設置
ルーターは新しく購入してもいいが、古いパソコンがあれば、Linuxをインストールして、ゲートウェイサーバーにすることで、ルーターの代用ができます。ただし、NICが2枚必要になります。当然、Linuxに対応できるNICを購入する必要があります。自力で探す他ありません。
ゲートウェイサーバーをたてて、ルーターの役割をさせるためには、ルーティングテーブルを設定する必要があります。当然、スタティック(静的)に設定します。社内LANで、RIPやOSPFを使って、ダイナミック(動的)にルーティングテーブルを設定することは、自分の経験上まずありません。
ルーティングテーブルとはパケットが流れたきたとき、どの方向にルーティングさせるかを指示するための経路表のことです。ルーティング先はIPアドレスから判断して決定します。MACアドレスからではありません。補足になりますが、MACアドレスはルーティングされるのではなく、データリンク層でスイッチングされます。よって、MACアドレスがルーターをまたぐことはありません。
ルーティングテーブルの設定
ルーティングテーブルを設定するコマンドはrouteコマンドです。route addコマンドでルートの追加を行います。実際に行った設定例が下記です。
route add -host 127.0.0.1 lo
route add -net 192.168.19.0 netmask 255.255.255.0 eth1
route add -net 192.9.200.0 netmask 255.255.255.0 eth0
route add default gw 192.168.19.7 eth1
1行ごとに解説していきます。1行目は、ループバック用のIPアドレスを設定しています。loとはループバックの意味です。ループバックはNICが正常動作しているか診断する時に使います。ループバックにpingを投げて帰ってこなければ、NICが故障していると判断できます。NICが故障することは滅多にありませんが、トラブルシュートを行う時、原因の調査で必ず必要になるため、ループバックの設定は必須です。
2行目は192.168.19.0のネットワークにいくときは、eth1のインターフェースからですよという設定です。eth1のNICが、192.168.19.0側のネットワークのハブとLANケーブルで物理的に接続していることになります。
3行目は192.168.200.0のネットワークにいくときは、eth0のインターフェースからですよという設定です。eth0のNICが、192.168.200.0側のネットワークのハブとLANケーブルで物理的に接続していることになります。
4行目はデフォルトゲートウェイは192.168.19.7ですよ。そして、そっちに向かうインターフェースはeth1ですよという設定です。デフォルトゲートウェイは、宛先のIPアドレスが社内LANにない場合に向かう先です。つまり、デフォルトゲートウェイとは、イコール、外部のインターネットのゲートウェイのことと、読み替えて捉えても全くOKです。インターネットで使われるグローバルなIPアドレスは、社内LANには存在しないため、全て、デフォルトゲートウェイに向かわせて、そこから外に出ていきます。
作成したルーティングテーブルは下記のコマンドで確認します。
cat /proc/net/route
このコマンドで設定内容に誤りがないか、最後に確認をしましょう。