• 締切済み

linuxのルーティング設定を教えてください

こんにちは。 当方初心者の為、どうしてもわからなかったので、 linuxのルーティング設定を教えて頂きたく書き込みさせて頂きました。 環境としてはデータセンター内に以下の環境で構築中で、host01のeth0にグローバルIPを 振っている状態です。 host01のeth01にローカルIPを割り当て、その配下にいる2つのサーバ(host02、host03)を host01とインターネットに繋げたい場合、どのようにルーティングすればよろしいでしょうか? host01からはsshで配下のサーバ(host02、host03)にログイン出来るようにしたいのです。 ------------------------------------------------ |eth0 global IP:118.123.123.** +--------------+ | host01 | +--------------+ |eth1 localIP:192.168.0.8 ==================================== | | +--------------+ +--------------+ | host02 | | host03 | +--------------+ +--------------+ eth0 localIP: 192.168.0.9 eth0 localIP: 192.168.0.10 ------------------------------------------------ 大変恐縮ではございますが、よろしくお願いします。

みんなの回答

  • maesen
  • ベストアンサー率81% (646/790)
回答No.3

>しかし、host02、03からは直接グローバルにはいけないようです。 >どこかでNATしてあげる必要があるという事でしょうか。 LVSはNATなどの技術を使用していますが、基本的に外部から内部への通信の設定だと思います。 今回は内部にプライベートIPアドレスを振ってありますのでリアルサーバから外部へ通信するためには、どこかで(今回の構成ではhost01しかないですね)IPアドレスを偽装する必要があると思います。 単純にiptablesで外向けにNAPTが出来るような設定を行えばいいように思うのですが、申し訳ありませんが、LVS環境下でこのような通信を設定しようとしたことがありませんので、LVSへの影響などはちょっとわかりません。

fs2166
質問者

お礼

maesen様 こんにちは。度々の回答ありがとうございました。 頂きました回答を参考にこちらでも調査してみます。 ありがとうございました。

  • maesen
  • ベストアンサー率81% (646/790)
回答No.2

>今回の構成はhost01をLVSにして、host02、host03をwebサーバで公開するといった構成です。 回答の方向性が少し違ってしまいましたね。 この内容を先に書いてほしかった。 >>host02、host03自身のルーティング設定は、host01のeth1のIPアドレスである192.168.0.8をデフォルトゲートウェイとして設定します。 >上記の設定をhost02、host03共にしていませんでしたので、通信できていませんでした。 LVSの環境でもこのデフォルトゲートウェイの設定は必要なはずです。

fs2166
質問者

お礼

maesen様 ご回答ありがとうございます。 >今回の構成はhost01をLVSにして、host02、host03をwebサーバで公開するといった構成です。 ごめんなさい。最初からお伝えしておけばよかったですね。 現在、host01のeth1からhost02、03のeth0へ疎通がとれ、sshでログイン出来ました。 ありがとうございます。 しかし、host02、03からは直接グローバルにはいけないようです。 どこかでNATしてあげる必要があるという事でしょうか。 まずはありがとうございました!

  • maesen
  • ベストアンサー率81% (646/790)
回答No.1

host01をルータのように使用したいと読み取りましたが正しいでしょうか。 ルーティングよりNAPTの設定のほうが面倒かなと思います。 host01自身のルーティングは割り当てられたグローバルIPに対してゲートウェイを提示されていると思いますので、そのIPアドレスをデフォルトゲートウェイに設定すればいいはずです。 ただし、これだけではhost02、host03からの通信が、eth1からのパケットがeth0に流れませんので、 /proc/sys/net/ipv4/ip_forward が1になるように設定する必要があります。 ディストリビューションによってこれが永続的になるような設定方法が異なりますが、例えばRedhat系では/etc/sysctl.confにnet.ipv4.ip_forward=1を設定します。 これでhost02、host03からのパケットはルーティングされますが、プライベートIPアドレスが送信元として出てしまうので、NAPT等の設定が必要になります。 iptablesなどで設定出来ますで下記Webサイトなどを参考にして下さい。 http://www.atmarkit.co.jp/flinux/rensai/iptables02/iptables02b.html host02、host03自身のルーティング設定は、host01のeth1のIPアドレスである192.168.0.8をデフォルトゲートウェイとして設定します。 図の内容以外にネットワークがなければ、host01からhost02、host03の通信に関しては同一ネットワークであるため設定は不要です。 もし、host02、host03をインターネット上に公開したいのならば静的NATなどの設定がhost01に必要になります。

fs2166
質問者

お礼

maesen様 初めまして。ご回答ありがとうございます。 >host02、host03自身のルーティング設定は、host01のeth1のIPアドレスである192.168.0.8をデフォルトゲートウェイとして設定します。 上記の設定をhost02、host03共にしていませんでしたので、通信できていませんでした。 この設定を適応してみようと思います。 今回の構成はhost01をLVSにして、host02、host03をwebサーバで公開するといった構成です。

fs2166
質問者

補足

maesen様 度々すみません。もしよろしければ、以下の設定方法を教えて頂きたくお願い出来ますでしょうか。 >もし、host02、host03をインターネット上に公開したいのならば静的NATなどの設定がhost01に必要になります。 (上記の設定ですが、iptables の設定で可能?) 現在、host01のeth1とhost02、host03のeth0はお互い疎通確認は取れておりますが、 host02、host03からは直接グローバルにpingも通らない状態です。 iptablesの以下のような設定で可能でしょうか host01 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 118.123.123.** お手数おかけしますが、よろしくお願いいたします。

関連するQ&A