• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Linuxルータの構築)

Linuxルータの構築方法と問題解決のアドバイス

このQ&Aのポイント
  • CentOS5.4でLinuxルータを構築中ですが、外部には到達できず問題が発生しています。
  • ルータの設定方法はGUIを使用し、外部側と内部側にIPアドレスとデフォルトゲートウェイを設定しました。
  • iptablesの設定も行っていますが、クライアントからのpingは内部に到達するものの、外部に到達できません。アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

> 返答が遅れて申し訳ありません. 年末年始を挟んでいたのでお気になさらず 192.168.1.3へ到達しているとの事で、これはパケットがLinuxルータを通過していることを示しています。 とりあえず問題が一つ解決した事になります。おめでとうございます。 状況から考えるにルータ(192.168.1.1)にファイアウォールのような機能があって、192.168.2.3というIPアドレスは知らないからパケットを叩き落しているものと思われます。 方法は二つ考えられます a. ルータ(192.168.1.1)に192.168.2.3のパケットを通過させるように設定する b. Linuxルータ(192.168.1.5)でSNATする a.に関してはルータ次第ですし、製品もわからないので話を省きます。 b.ですが、まずLinuxルータ(192.168.1.5)からインターネットへ出られるかを確認してください。 出られるようであれば、Linuxルータに以下のiptablesを設定してみてください iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.5 MASQUERADEでも構いません。

sabakanntoka2
質問者

お礼

アドバイスありがとうございます。 まず、おっしゃるようにファイアウォールが有効になっていましたので、無効にしました。 それでも、Webサイトへ接続等ができなかったので、DNSサーバを192.168.1.1に設定すると無事Proxy(Linuxルータ)を経由して、Webサイトの閲覧が可能になりました。 ありがとうございます。

その他の回答 (3)

回答No.3

# sysctl -a | egrep ip_forward で、 「net.ipv4.ip_forward = 0」となっておりますでしょうか? なっているようであれば、 # sysctl -w 'net.ipv4.ip_forward=1' として下さい。 これを1にしないと、パケットのDSTアドレスが自身のIPアドレスでは無い場合にパケットを破棄してしまいます。 再起動後も自動で1にしたい場合は、/etc/sysctl.confが設定ファイルになります。 それと外部というのは、インターネットなのでしょうか? それであれば外部へ出る際に、ルータがSRCアドレスを書き換えてくれるはずなので、iptablesのMASQ設定は別に必要ないです。 また、SRCアドレスの書き換えが必要な場合でも、以下の設定は不要です。 iptables -t nat -A POSTROUTING -o $eth_internal -s $external_ip -j MASQUERADE この設定は、クライアントに対して外部のIPアドレスを見えなくし、あたかもLinuxルータからのリクエストに見せかける設定になります。 それ以前に外部がインターネットである場合は、192.168.2.3宛てには到達できないですが…

sabakanntoka2
質問者

お礼

ちなみに,MASQ設定(2つ)を消去することで,192.168.1.1および192.168.1.3(別のクライアント)へのpingは到達するようになりました.

sabakanntoka2
質問者

補足

返信ありがとうございます. 返答が遅れて申し訳ありません. 「net.ipv4.ip_forward = 0」となっていたので, 設定して,1に直しました. 外部というのはインターネットということです. 設定を直しましたが,未だにインターネットに接続できません.

  • pakuti
  • ベストアンサー率50% (317/631)
回答No.2

デフォルトゲートウェイは192.168.1.1です 2つは設定出来ません。 Linuxシステムのデフォルトゲートウェイです。 NIC毎に設定するものではありません。 netstat -rn で現在の設定を確認してみてください おそらく、192.168.1.5でデフォルトゲートウェイが上書きされているのではないでしょうか

sabakanntoka2
質問者

補足

返信ありがとうございます. 返答が遅れて申し訳ありません. アドバイス通りデフォルトゲートウェイの設定を192.168.2.1のみにしました.(もう一方は空欄のまま) DNSのアドレスは同じく192.168.2.1と設定しています. その後,クライアントでnetstat -rnを実行したところ. アクティブルート,固定ルート共にゲートウェイアドレスは,192.162.2.1,リンク上となっておりました.(固定ルートのネットワークアドレス,ネットマスクは,0.0.0.0,0.0.0.0です) しかし,これでも未だに外部へ接続できません. 何が原因と考えられるでしょうか?

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

クライアントからtraceroute(Windowsならtracert)で外部のIPアドレスを指定してみてください。 そもそも何故ルータがあるのにLinuxルータを設定するのですか? proxyとしてなら分からないでもないですが。

sabakanntoka2
質問者

お礼

そもそも.外部のWebサーバ(yahooで試したのですが)はpingを許可していないということを忘れていました^^; ですが,未だに外部へネットワーク接続することができません. Linuxルータではなく,透過型Proxyとして設定したいと思っていました. 誤解させて申し訳ありません.