[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:44965] Re: 特定のネットワークからの接続が不安定



こんにちは。松田陽一@三鷹です。

静的経路設定は大昔にハマって以来やってないんで、かなりあやふやです。

From: SHIBATA Akira <shibata@xxxxxxxxxxxxxx>
Subject: [debian-users:44963] 特定のネットワークからの接続が不安定
Date: Tue, 25 Oct 2005 18:03:15 +0900

> 柴田(あ)と申します。
> 
> ある特定のネットワークからの接続が不安定ですので、
> もし同じ状況に陥ったことがあるとか、この辺を
> チェックしてみたらということをご指摘いただけませんでしょうか?
> 
> ■状況
> R1,R2 はルータで左側は 172.16.0.0/16
>  それぞれのルータの右側はサブネット
> 
> 接続構成
> +-R1−−− Linux server 172.18.250.50 Sarge
> |
> +-R2−−− Linux server 172.30.17.2 Woody
> |
> Linux server 172.16.10.15 Woody (potate あがり)
                                   potato

このネットワーク構成図の IP アドレスは、これで正確ですか?
実際はどれがグローバル IP ですか?

> 付帯事項
> ・ R1 - 172.18.250.50 間は ping はつかえません (ブラスタ対策)

問題解決を優先するなら、この「ブラスタ対策」は外すべきです。
理由は、 traceroute が使えなくなるからです。

> ■問題点
> R2 の右のサーバから 172.18.250.50 の web サーバから
> データをもらえません。
> 要するに web ペイジが表示されないです。
> 
> 
> 
> ■ためしたこと
> 
> ・ 172.30.17.2 から ping R1 の左側→ OK

172.30.17.2 から ping R1 の右側はどうですか?

> ・ 172.30.17.2 から wget http://172.18.250.50/ をすると
>   下のような表示で止まります。
>   しょうがないので Ctrl+C してファイルをみるとダメです。
>   +-----------------------------
>   | $ wget http://172.18.250.50/
>   | --14:12:25--  http://172.18.250.50/
>   |            => `index.html'
>   | Connecting to 172.18.250.50:80... connected.
>   | HTTP request sent, awaiting response... 200 OK
>   | Length: 31,823 [text/html]
>   | 
>   |  0% [      ] 0             --.--K/s    ETA --:--
>   | $ ls -l index.html
>   | -rw-r--r--    1 shibata  shibata         0 Oct 18 14:12 index.html
>   +-----------------------------
> 
> ・しかし web としては反応しているように見えます。
>    172.30.17.2 から telnet IP 80 しました。
>   +-----------------------------
>   | $ telnet 172.18.250.50 80
>   | Trying 172.18.250.50...
>   | Connected to 172.18.250.50.
>   | Escape character is '^]'.
>   |  
>   | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
>   | <html><head>
>   | <title>501 Method Not Implemented</title>
>   | </head><body>
>   | <h1>Method Not Implemented</h1>
>   | <p> to /index.html not supported.<br />
>   | </p>
>   | <hr>
>   | <address>Apache/2.0.54 (Debian GNU/Linux) Server at localhost.localdomain Port 80</address>
>   | </body></html>
>   | Connection closed by foreign host.
>   +-----------------------------
> 
> ・ 172.30.17.2 から wget http://172.16.10.15/ をすると
>   普通に取得できます。
>   +-----------------------------
>   | $ wget http://172.16.10.15/
>   | --15:00:19--  http://172.16.10.15/
>   |            => `index.html'
>   | Connecting to 172.16.10.15:80... connected.
>   | HTTP request sent, awaiting response... 200 OK
>   | Length: 148 [text/html]
>   | 
>   | 100%[====>] 148          144.53K/s    ETA 00:00
>   | 
>   | 15:00:20 (144.53 KB/s) - `index.html' saved [148/148]
>   +-----------------------------

試しに、 index.html のサイズを 10 byte 程度の極小のファイルに
して wget してみるとどうなりますか?

172.16.10.15 から wget http://172.18.250.50/ をするとどうなり
ますか?

> ・ 172.30.17.2 から 172.18.250.50 へ ssh でログインできます。
> 
> ・ ナゾな現象: ps a も ps x もできますが ps ax で固まったようにみえます。
>    172.30.17.2 から 172.18.250.50 ログインして実行
>   +-----------------------------
>   | $ ps a
>   |   PID TTY      STAT   TIME COMMAND
>   |  2502 tty1     Ss+    0:00 /sbin/getty 38400 tty1
>   |  2503 tty2     Ss+    0:00 /sbin/getty 38400 tty2
>   |  2504 tty3     Ss+    0:00 /sbin/getty 38400 tty3
>   |  2505 tty4     Ss+    0:00 /sbin/getty 38400 tty4
>   |  2506 tty5     Ss+    0:00 /sbin/getty 38400 tty5
>   |  2507 tty6     Ss+    0:00 /sbin/getty 38400 tty6
>   | 12555 pts/1    Ss+    0:00 -bash
>   | 12814 pts/0    Rs     0:00 -bash
>   | 12819 pts/0    R+     0:00 ps a
>   | $ ps x
>   |   PID TTY      STAT   TIME COMMAND
>   | 12554 ?        S      0:00 sshd: shibata@pts/1
>   | 12555 pts/1    Ss+    0:00 -bash
>   | 12813 ?        S      0:00 sshd: shibata@pts/0
>   | 12814 pts/0    Ss     0:00 -bash
>   | 12820 pts/0    R+     0:00 ps x
>   | $ ps ax
>   |   PID TTY      STAT   TIME COMMAND
>   |     1 ?        S      0:00 init [2]
>   |
>   |    以下表示なし
>   +-----------------------------
> 
>   このとき 172.16.10.15 から 172.18.250.50 へ
>   ログインしたマシンからみる(12830)と
>   +-----------------------------
>   |  2399 ?        Ss     0:00 /usr/sbin/sshd
>   | 12552 ?        Ss     0:00  \_ sshd: shibata [priv]
>   | 12554 ?        S      0:00  |   \_ sshd: shibata@pts/1
>   | 12555 pts/1    Rs     0:00  |       \_ -bash
>   | 12830 pts/1    R+     0:00  |           \_ ps afx
>   | 12810 ?        Ss     0:00  \_ sshd: shibata [priv]
>   | 12813 ?        S      0:00      \_ sshd: shibata@pts/0
>   | 12814 pts/0    Ss+    0:00          \_ -bash
>   +-----------------------------
>   しかでなくて、 12814 で実行したプロセス ps ax が
>   なくなっちゃってます。
>   なので Ctrl+C も効きません。

巨大なテキストファイルを cat してみるとどうなりますか?

> ・ ナゾな現象: free はできますが top で固まったようにみえます。
>    172.30.17.2 から 172.18.250.50 ログインして実行
>   +-----------------------------
>   | $ free
>   |              total       used       free     shared    buffers     cached
>   | Mem:        515212     131100     384112          0      43312      41588
>   | -/+ buffers/cache:      46200     469012
>   | Swap:            0          0          0
>   | $ top
>   |    以下表示なし
>   +-----------------------------
>   このとき 172.16.10.15 から 172.18.250.50 へ
>   ログインしたマシンからみる(12830)と
>   +-----------------------------
>   |  2399 ?        Ss     0:00 /usr/sbin/sshd
>   | 12552 ?        Ss     0:00  \_ sshd: shibata [priv]
>   | 12554 ?        S      0:00  |   \_ sshd: shibata@pts/1
>   | 12555 pts/1    Rs     0:00  |       \_ -bash
>   | 12849 pts/1    R+     0:00  |           \_ ps afx
>   | 12831 ?        Ss     0:00  \_ sshd: shibata [priv]
>   | 12834 ?        S      0:00      \_ sshd: shibata@pts/0
>   | 12835 pts/0    Ss     0:00          \_ -bash
>   | 12848 pts/0    S+     0:00              \_ top
>   +-----------------------------
>   プロセス番号があるので、kill してみますが、復帰しません。
> 
> ・ ナゾな現象:172.30.17.2 から 172.18.250.50 ログインして
>   実行すると固まるコマンドがあるのに、 172.16.10.15 から
>   172.18.250.50 へログインして固まることはありません。
>   だからこうやって現象を報告できるのですが・・・
> 
> ・一応パケットフィルタリングが怪しいと思いフィルタは
>   単純化してあります。 172.18.250.50 で実行
>   +-----------------------------
>   | $ sudo /sbin/iptables -n -L
>   | Chain INPUT (policy ACCEPT)
>   | target     prot opt source               destination
>   | ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
>   | 
>   | Chain FORWARD (policy ACCEPT)
>   | target     prot opt source               destination
>   | ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
>   | 
>   | Chain OUTPUT (policy ACCEPT)
>   | target     prot opt source               destination
>   | ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
>   +-----------------------------

全部 ACCEPT にしちゃってるなら、

>   コレを実現するためにしたのスクリプトを動かしています
>   +-----------------------------
>   | IPTABLES=/sbin/iptables
>   | $IPTABLES -F INPUT
>   | $IPTABLES -F FORWARD
>   | $IPTABLES -F OUTPUT

これだけで十分じゃないですか?

>   | $IPTABLES -P INPUT ACCEPT
>   | $IPTABLES -P FORWARD ACCEPT
>   | $IPTABLES -P OUTPUT ACCEPT
>   | $IPTABLES -t nat -A POSTROUTING -o $IFOUTER -j MASQUERADE
>   | $IPTABLES -A INPUT -i lo -j ACCEPT
>   | $IPTABLES -A FORWARD -j ACCEPT
>   | $IPTABLES -A OUTPUT -j ACCEPT
>   +-----------------------------

これは不要かと。

> ・詳しく調べていませんが、 172.18.0.0/16 の下からは
>   web on 172.18.250.50 は普通に参照できます。
> 
> 
> ■まとめ
> ・ 172.16.10.15 から 172.18.250.50 に ssh ログインして
>   何でもでき、何も問題がない(当然)
> ・ 172.30.17.2 のサーバから 172.18.250.50 の web サーバを
>   参照しても希望するデータは出てこない
> ・ 172.30.17.2 から 172.18.250.50 に ssh ログインして
>   できることとできないことがある。
>   反応がなくなったのをできないと判断した(プロセス ID もない)

> どこでナニが起こっているのでしょうか?
> 私はナニを見落としているのでしょう?
> ご指摘いただけますと大変ありがたいです。

- 172.18.250.50 から 172.30.17.2 は参照出来るのですか?
  出来なくても良い設定にしているのですか?

- 各マシン上の route の実行結果は?

- 各マシン上の traceroute の実行結果は?

- 各マシン上の default route は?

取り敢えず、ブラスタ対策なる設定は外した上で、 ping や traceroute
を実行して貰わないことには話が始まらないと思います。

「どーしても設定しなきゃならない」というなら、 IP アドレス範囲を
特定して ping を deny すれば良いです。

             S1(172.18.250.50)
> +-R1−−− Linux server 172.18.250.50 Sarge
> |          S2(172.30.17.2)
> +-R2−−− Linux server 172.30.17.2 Woody
> |          S3(172.16.10.15)
> Linux server 172.16.10.15 Woody (potate あがり)

S1, S2, S3, R1, R2 の route の実行結果を見る。
特に、 S2 のルーティングテーブルに 172.18.0.0/16 があるか否かを注目。

私が思い付くのはこんなところです。


ところで、ルータ R1, R2 は一つに出来ないんですか?
多分、その方がシンプルになると思うんですけど。
--
Nothing but a peace sign.
松田 陽一(yoh)
mailto:yoh@xxxxxxxx
http://www.flcl.org/~yoh/diary/