大橋のページ

iproute2+tcを使って1台で複数インターネット接続

1 複数のインターネット接続
2 インタフェースとルーティングテーブル
3 ifconfigとrouteコマンド
4 Linuxカーネルのコンパイル 1
5 Linuxカーネルのコンパイル 2
6 iproute2+tcのインストール
7 ipコマンドでインタフェースの登録
8 ipコマンドでルーティング設定
9 namedをインタフェースごとに起動する
10 sendmailをインタフェースごとに起動する

1 複数のインターネット接続

OCNエコノミーなど低価格の常時接続サービスの開始とともに、インターネット常時接続はいまや当たり前に近い状態になりつつあります。インターネットを利用したビジネスを考えれば、小規模企業−小容量回線、大企業−大容量回線という区分けはしだいに意味をなさなくなってきています。小企業規模企業であっても、インターネットがビジネスに直結すれば大容量回線が必要だし、危機感のない大企業は大容量回線を使いこなす能力もなくただ引いているだけになっています。

さて、そうした背景はともかくとして、OCNエコノミーをうわまわる低価格常時接続サービスも登場し、その勢いは今後も続くことはあっても、停まることはないでしょう。こうした時代では、複数のインターネット接続も近いうちに当然になるのではないかと筆者は想像しています。たとえば、LAN側から出入りするにはIP接続(フレッツISDN)やDSLを使い、インターネットに公開しているWebサーバはOCNエコノミーに接続しておくなども、もう十分に実現可能です。あるいは、OCNエコノミーとDIONなどが行なっている常時接続サービスを組み合わせて利用するなども十分現実的です。この場合には、LAN側からの接続とインターネットに公開するサーバというように切り分けるだけでなく、WebサービスはOCNエコノミーで、メールはDIONでというように、回線ごとに利用するサービスを変えたりもできます。

少し前までは、64Kbpsの専用線料金とISPへの接続料金をあわせて20万円近くしていたことを考えれば、OCNエコノミークラスのインターネット接続を2本導入しても、8万円にも満たないのですから、複数の低価格回線を導入することはコスト的にも十分考えられます。もちろんもっと容量の大きい回線とOCNエコノミーなどの低価格回線を組み合わせることもあるでしょう。

これからの時代は、大容量回線環境でサーバを預かってくれるハウジングサービスやホスティングサービスなどと組み合わせて、サーバサービスや回線を考えてネットワークを組み立てる時代になってきたといってもいいだろうと筆者は考えています。

複数のインターネット接続を、ひとつのLANと接続する場合、ルーティングの問題さえ気をつければそれほど複雑ではありません。インターネット接続ごとにグローバルIPアドレス空間があり、それぞれの空間にサーバを配置すれば、それぞれの回線ごとでサーバが応答します。LAN側のネットワーク(プライベートIPアドレス空間)とふたつのグローバルIP空間、そしてインターネット空間です。つまり合計4つのネットワークがあり、それぞれが正しく接続されていればなんの問題もありません。

インターネット-------          -------------インターネット
          |          |
          |          |
         ルータA       ルータB
          |          |
          |          |
        ゲートウェイA   ゲートウェイB
          |          |
          |          |
          |          |
          ---------------------
               |
              LAN

(ゲートウェイAとゲートウェイBは、IPマスカレード機能により、IPアドレスの変換をしている)

しかし、この4つの空間を1台のサーバで接続しようとすると、意外にやっかいです。

インターネット-------          -------------インターネット
          |          |
          |          |
         ルータA       ルータB
          |          |
          |          |
          ------ゲートウェイ----
               |
               |
               |
              LAN

(ゲートウェイは、IPマスカレード機能により、IPアドレスの変換をしている)

この場合、ゲートウェイにはインタフェースが3つあり、LAN側のほかグローバル空間Aとグローバル空間Bに接続されています。

ゲートウェイマシンでインターネット側に公開しているサービスがなにもなければ、対インターネット側ではなにも問題ありません。しかし、対LAN側では、ルータAかルータBのどちらかの経路しか利用できないという問題があります。LAN内のマシンはゲートウェイをデフォルトゲートウェイとして設定し、それでいいのですが、ゲートウェイ自身もデフォルトゲートウェイとしてルータAかルータBのどちらかを設定しなければなりません。その結果、LAN側とインターネット側とのやりとりは、最終的にはゲートウェイ自身がデフォルゲートウェイとしたルータを経由して(これがデフォルトルート)行なわれます。結果的には、どちらかのルータを経由した回線しか利用していないことになります。

ゲートウェイマシンでインターネットに公開しているサービスがあると、事態はさらに困難です。なぜかというと、ルータAやルータBを経由してきたパケットはそれぞれゲートウェイに届きますが、ゲートウェイからの返事のパケットはゲートウェイでデフォルトゲートウェイとして設定してあるどちらかのルータからしか返せないからです。つまり、デフォルゲートウェイがルータAと設定してあれば、ルータA経由で届いたパケットに対する返事のパケットは、そのままルータAを経由して返されるため問題ありませんが、ルータBを経由して届けられたパケットに対する返事もル−タAを経由しようとするため、結果的には送信元に届きません。

ここでは、まず2番目の問題を解決し、インターネット接続ごとにサーバを公開できるようにします。続いて、1番目の問題を解決し、帯域の状態を見ながらどちらのインターネット接続を使うかを制御し、空いている側を使って出入りできるようにします(現段階では試みてみます)。

著作権、商標等について (C) 2000 HyperDyne Inc.