QA@IT

ルーティングの設定について

4902 PV

WebサーバにNICを2枚挿し、一方をルータのLAN側、もう一方をDMZ側に設定したうえで、
LAN内のPCからルータのDMZ経由でアクセスすることは可能でしょうか?

やりたいことは、各機器のIPが下記とした場合に、
PC[192.168.0.100]から[10.0.0.10]にアクセスした場合は、
ルータ(LAN)[192.168.0.1]→ルータ(DMZ)[10.0.0.1]→の経路で
WEBサーバ[10.0.0.10]にアクセスしたい

[192.168.0.10]にアクセスした場合は、LAN側の経由としたい

です。

<IP設定>
 【LAN内】
  ルータ   :192.168.0.1
  WEBサーバ:192.168.0.10  <-CentOSです
  PC    :192.168.0.100

 【DMZ内】
  ルータ   :10.0.0.1
  WEBサーバ:10.0.0.10

<ルーティング>
 default:10.0.0.1
 192.168.0.0/24:192.168.0.10

ブラウザアクセスした場合に、
ルータからWEBサーバへDMZ経由で到達していることをルータで確認できているのですが、
ブラウザのほうはタイムアウトしています。

説明が下手ですみませんが、ご教授よろしくお願いいたします。

  • 上記の<ルーティング>とは、どの機器に設定したルーティング情報ですか?それから、"192.168.0.0/24:192.168.0.10"となっていますが、もしかして"192.168.0.0/24:192.168.0.1"の間違いですか? -
  • クライアントからpingした場合DMZ,LANの両方で応答がありますか? -
  • っていうか、このネットワーク構成だと、DMZがDMZになっていない気がしますが大丈夫ですか? -
  • stripeさま

    >上記の<ルーティング>とは、どの機器に設定したルーティング情報ですか?
    Webサーバになります。
    >"192.168.0.0/24:192.168.0.10"となっていますが、もしかして"192.168.0.0/24:192.168.0.1"の間違いですか?
    失礼しました。ご指摘の通り、192.168.0.1になります。
    -
  • stripeさま
    だいじょうぶではないのですが、一時的にそうしなければならなくなりました。。
    -
  • mocha_rx8さま

    PINGをはじく設定になっているため、DMZ側が確認できませんが、
    試してみます。
    -
  • mocha_rx8さま はじく設定にはなっていませんでした。ですが、pingは通じませんでした。(LAN側は通じます) -

回答

Web サーバー (CentOS) 上の iproute2 の ip(8) コマンドで「10.0.0.10 が発信元のパケットは10.0.0.1 を経路とする」というポリシールーティングを設定すれば可能です。具体的なコマンドラインは忘れてしまったので、暇があったら後で調べて調べて書きます。

自力で調べられるなら「linux ip ポリシールーティング」で Google 等で検索すれば参考になる情報が見つけられると思います。

編集 履歴 (1)
  • fumiyasさま
    ありがとうございます。
    いただいた情報で調べてみます。
    -
  • ところで、/proc/sys/net/ipv4/ip_forward って 0 ですよね? 1 にするのも手かもしれませんが、ルーターとして動くようになるので、iptables で適宜制限する必要があるので注意。 -
  • はい、0に設定されています。
    ip_forwardの役割がわからないので、まずはポリシールーティングを調べてみます。
    -
  • 検索したところ、「アドバンスドIPルーティング」という方法があったので、それを試したところ通信ができるようになりました。

    がらくたネットさんの記事「アドバンスドIPルーティング」
    http://e-garakuta.net/techinfo/doku.php/linux/advanced-routing

    ありがとうございました。
    -

その構成では、Web サーバからの戻りパケットの SourceIP が Web サーバの LAN 側 IP になるからです。(Webサーバの仕様によって異なる場合もありますが)
それでも PC と Web サーバ間の通信を強引に DMZ I/F 経由にするなら、ルータでNAPT(192.168.0.100<->10.0.0.1) をかければいいと思います。

<ルーティング>はどこに設定されたものですか?

編集 履歴 (0)
  • NAPTですか、初めて聞きました。。
    <ルーティング>はWebサーバに設定したものになります。
    -
  • >NAPT(192.168.0.100<->10.0.0.1) をかければいいと思います。
    この方法を行う場合、アクセスする全PCのIPアドレスを設定する必要があるのでしょうか?

    eth1:10.0.0.10
    eth2:192.168.0.10
    とした場合、eth1にアクセスした場合はDMZ経由、eth2にアクセスした場合はLAN経由、という設定は普通はできないのでしょうか?
    -
  • 勉強不足で申し訳ありません。 -
  • ルータでのフィルタ周りは適切に設定されていることが前提ですが、NAPT(IPマスカレードともいいます)を使うなら対象のアドレス範囲を指定した設定ができるはずです。 -
  • NAPTでなければWebサーバに以下のルートを設定するといかがでしょうか。
    route add -host 192.168.0.100 gw 10.0.0.1
    ちなみに 192.168.0.0/24 192.168.0.1 というルートは不要に思えるのですが、何かリダイレクトさせなければならない事情があるのでしょうか?
    -
  • offerさま
    <ルーティング>はWebサーバに設定したものになります。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。