- PR -

Linuxルーターを構築したら外が半分くらい見えなくなりました。

投稿者投稿内容
korotin
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-27 05:33
korotinといいます。
いつも参考にさせていただいています。

 Vine Linux 3.0を使ってLinuxルータを構築してみたのですが、
マスカレードのせいか、LANのマシンが外を見ることができないと言う
状況になっています。ここまではよくあることかなと思います。

 構成としてはこんな感じです。

    eth0     eth1<192.168.1.1>
Dモ  ┌───────┐   <192.168.1.100>
Sデ----│ Linux BOX  │--┬ windows 2000
Lム  └───────┘ │
↓             │ <192.168.1.102>
WANへ           └ Mac OS X

# WAN側のIPは固定IPをもらってはいないので、動的です。

 ただし、まったく見れないと言うことではなくて、IPを直打ちしてやると
LAN内のマシンでもブラウズができたりPINGは通るということがわかってい
ます(www.google.comでは繋がらず、66.102.7.147のように直打ちで行け
るということです)。フィルタリングはiptablesを用いて構築しましたが、
一応LAN内のマシンがIMやメール、ブラウジングなどできるまではINPUT,
FORWARD,OUTPUTチェインは全てACCEPTでやっています。

 ISPへはADSLモデムを介しrp-pppoeを用いて接続しています。rp-pppoe
セットアップ時に2-MASQUERADEを選び、firewall-masqに書いてあるのを
全部消して以下のiptablesの文をボリボリ書いてみたのですが……

---------------------------------------------ここから
#!/bin/sh

EXTIF=ppp+

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward
---------------------------------------------ここまで

# iptable -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

 んな感じです。

 とりあえずLANのマシンが外を見ることができれば良いと言う最低限の設定の
つもりなのですが前述の通りIP直打ちでないと接続できてないような状況です。
解決策があればご教授いただけないでしょうか。DNS回りのような気もするので
すが途方に暮れつつあります。

 長くなってしまいましたが、よろしくお願いします。
_________________
* * * * * * * * * * * * * * * * * * * * *
Now you know,no one get out alive.
@ころちん
* * * * * * * * * * * * * * * * * * * * *
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-10-27 07:34
引用:

korotinさんの書き込み (2004-10-27 05:33) より:

 Vine Linux 3.0を使ってLinuxルータを構築してみたのですが、
マスカレードのせいか、LANのマシンが外を見ることができないと言う
状況になっています。ここまではよくあることかなと思います。


一応確認です.
「見えなくなった」のではなくて「見えない」のですよね?
ある時点から見えなくなったのであれば話は別かと.
引用:

 ただし、まったく見れないと言うことではなくて、IPを直打ちしてやると
LAN内のマシンでもブラウズができたりPINGは通るということがわかってい
ます(www.google.comでは繋がらず、66.102.7.147のように直打ちで行け
るということです)。フィルタリングはiptablesを用いて構築しましたが、
一応LAN内のマシンがIMやメール、ブラウジングなどできるまではINPUT,
FORWARD,OUTPUTチェインは全てACCEPTでやっています。


名前解決ができていないためでは?
実際に名前解決できているか確認は?
client の DNS の設定は?
さらにその DNS server との疎通は?
holic
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 74
投稿日時: 2004-10-27 10:39
WAN側(ADSL側)のMTU の設定はどうなっていますか?
korotin
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-27 23:47
ご返信ありがとうございます。

>>kazさん

引用:

kazさんの書き込み (2004-10-27 07:34) より:
一応確認です.
「見えなくなった」のではなくて「見えない」のですよね?
ある時点から見えなくなったのであれば話は別かと.



 タイトルの書きかたがまずかった様です、すみません。ご指摘の通り
構築時から「見えません」。

引用:

名前解決ができていないためでは?
実際に名前解決できているか確認は?
client の DNS の設定は?
さらにその DNS server との疎通は?



 クライアントマシン(Windows2000,MacOSX)のDNS設定は全てこのLinuxルーター
(192.168.1.1)へ振っています。ゲートウェイも192.168.1.1へ。Linux側ではnamed
を特に走らせてはいません。resolv.confにはrp-pppoeがISPから取得したDNSが
書き込まれているのは確認しました。

 Linux上からではブラウズ、メールなど正常に使うことができるので、名前解決は
できていると思います。LinuxルーターにISPのネームサーバーを参照させれば
(resolv.confを参照させれば)できると思ったのですが、記述が足りないのでしょうか?

>> holicさん
引用:

WAN側(ADSL側)のMTU の設定はどうなっていますか?



 この場合ppp0のMTU値になるのでしょうか。それですとifconfigで確認できる限り
「1454」に設定されています。WANからのデータを受けるインターフェース(eth0)は
「1500」になっていて、これで良いのかなとちょっと疑問に思っています。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-10-28 00:24
こんばんわ.
引用:

korotinさんの書き込み (2004-10-27 23:47) より:

引用:

名前解決ができていないためでは?
実際に名前解決できているか確認は?
client の DNS の設定は?
さらにその DNS server との疎通は?



 クライアントマシン(Windows2000,MacOSX)のDNS設定は全てこのLinuxルーター
(192.168.1.1)へ振っています。ゲートウェイも192.168.1.1へ。Linux側ではnamed
を特に走らせてはいません。resolv.confにはrp-pppoeがISPから取得したDNSが
書き込まれているのは確認しました。

 Linux上からではブラウズ、メールなど正常に使うことができるので、名前解決は
できていると思います。LinuxルーターにISPのネームサーバーを参照させれば
(resolv.confを参照させれば)できると思ったのですが、記述が足りないのでしょうか?


Linux router で DNS service を提供していないのに,
client pc で Linux router を DNS server として名前解決していると?
それは無理だと思います.

Linux router は resolv.conf の設定で名前解決が出来るのはむしろ当然です.
試しに Linux router の resolv.conf に書かれている nameserver の IP address を
client pc の DNS server として定義してみてください.

で,仕組みとしてそれでは「拙い」かもしれませんね.
DNS が DHCP で定義されるなら,変更されることもあるでしょうし.
その場合は,Linux router 上で proxy を動かしては如何かと.
そうすれば,client pc は www browser で proxy の設定をするだけで,
名前解決の必要なく Internet へ接続できます.

あるいは,Linux router で named を動かして,
DHCP で定義される namaeserver に forward してあげれば良いかも.
そうすれば今の client pc の設定のままでも良いですが,
前述のように DNS server の IP address が変更されたらダメダメです.
korotin
会議室デビュー日: 2004/10/27
投稿数: 4
投稿日時: 2004-10-28 23:29
こんばんは。
検証作業していたら1日経ってしまいました。


引用:

で,仕組みとしてそれでは「拙い」かもしれませんね.
DNS が DHCP で定義されるなら,変更されることもあるでしょうし.
その場合は,Linux router 上で proxy を動かしては如何かと.
そうすれば,client pc は www browser で proxy の設定をするだけで,
名前解決の必要なく Internet へ接続できます.

あるいは,Linux router で named を動かして,
DHCP で定義される namaeserver に forward してあげれば良いかも.
そうすれば今の client pc の設定のままでも良いですが,
前述のように DNS server の IP address が変更されたらダメダメです.



 まずresolv.confに書かれているDNSのアドレスをクライアントのDNSに入れてみると
うまくいきました。そうだろうと思います。
ええと、私はLinuxルーターと言ってしまいましたが、要はNAPTしてクライアントの
PCでブラウズなどのサービスが提供できればいいだけなのですが、タイトルごとひね
くれていたので単なる「ルーターとしての設定」がわからない・・・というわけではありませんでした。この点、お詫びします。

 しかし、ご提案いただいたnamedやDHCPでのDNSサービスを走らせないといけないと
なると市販のブロードバンドルーターというのはどうやって名前解決をしているかな、
という疑問が残ります・・・

 設定をもう一度見直してみます。ただ、自宅サーバーを立ち上げるWeb上の資料では
DNSの設定のことが飛ばされていたりして何でぇ?とか思ったのですがnamed走らせたり
しているんでしょうか。

 すみませんが、もう少しお付き合いいただけないでしょうか。
よろしくお願いします。
holic
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 74
投稿日時: 2004-10-28 23:36
MTU は、ppp0 が 1454 になっていれば問題ありません。

引用:

 しかし、ご提案いただいたnamedやDHCPでのDNSサービスを走らせないといけないと
なると市販のブロードバンドルーターというのはどうやって名前解決をしているかな、
という疑問が残ります・・・



DNS キャッシュサーバを実装しているのでしょう。

djbdns の dnscache などを使えば、Linux 上でも比較的簡単にできると思いますよ。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-10-29 08:50
おはようございます.
引用:

holicさんの書き込み (2004-10-28 23:36) より:

引用:

 しかし、ご提案いただいたnamedやDHCPでのDNSサービスを走らせないといけないと
なると市販のブロードバンドルーターというのはどうやって名前解決をしているかな、
という疑問が残ります・・・


DNS キャッシュサーバを実装しているのでしょう。

djbdns の dnscache などを使えば、Linux 上でも比較的簡単にできると思いますよ。


です.

named でも同様に cache only な DNS server を構成できます.
forward option などで「名前解決を受け付けたら要求を転送」
つまり DNS の proxy を構成すれば良いわけですね.

スキルアップ/キャリアアップ(JOB@IT)