HOME / 日記 / pingではまる

Date: 2009/09/28 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, OpenSolaris, Howto, 利用法

pingではまる

192.168.1.0/24のネットワークに、デフォルトゲートウェイとするルータのIPアドレスが192.168.1.254だったとき、次のようにしてNICをupします。

ifconfig e1000g0 plumb
ifconfig e1000g0 192.168.1.10/24 up

この状態でまだ、default gatewayを設定しません。ここで、

ping 192.168.1.254

すると、当然。

192.168.1.254 is alive

となります。そして-sをつけてみると

ping -s 192.168.1.254

たとえば、こんな感じ・・・

PING 192.168.1.254: 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=0. time=0.686 ms
64 bytes from 192.168.1.254: icmp_seq=1. time=0.592 ms
64 bytes from 192.168.1.254: icmp_seq=2. time=0.627 ms
^C
----192.168.1.254 PING Statistics----
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.592/0.635/0.686/0.048

まーあたりまえですよね。

ここでdefaultgatewayを設定します。

route add default 192.168.1.254

そして、

ping 192.168.1.254

すると、当然。

192.168.1.254 is alive

まーそりゃそうですよね。

ところがここで。こうします・・・

ping -s 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes

しばしまつ・・・

^C
----192.168.1.254 PING Statistics----
5 packets transmitted, 0 packets received, 100% packet loss

えええええ・・・・。なぜ、何もないときと-sでこんなの違うの?

さて、これはなぜでしょう?

実は、恥ずかしながら、これで相当な時間はまりました。

ただデフォルトゲートウェイを登録しただけで、デフォルトゲートウェイのIPアドレスに到達できず、route deleteすると、デフォルトゲートウェイのIPアドレスに到達します。

次回までクイズにしたいところですが、答えを・・・

答えはDNS

まずnsswitch.confのipnode/hostsが、files,dnsだったとき、DNSをresolv.confに設定しますよね。

このDNSが手違いで実は許可されてないDNS(つまりIP制限されており、許す設定になっていない)だったとき、この状態がおきます。

pingでIPアドレス直うちなので、なんでDNS?とおもうのですが、OpenSolarisのpingは、実は逆引きをするのです。

逆引きの解決が時間以内に出来ないとき、ICMPのECHOのREPLYが帰ってきているにもかかわらず、packet lossと表示されます。

そしてdefault gatewayがあるかどうかで、hostnameの解決に行くかどうかが決まるようで。

これが組み合わされると、このような意味不明な事象が起きるのです。どうもこれ、nameserverがbindとかでは起きないようで。powerdns recursorなどのリゾルバでは、許可しないIPからは無応答のようなのですね。

これが連鎖すると、意味不明な事象が起き、混乱したわけです。

正直、ping -sで逆引きするところまではいいのですが、packet lossと表記する実装はちょっと問題なのではないかと・・・。

問題切り分けのために-nをつけよう

UNIXを使っていた先輩に、netstatや、tracerouteなどを習うとき、-n(逆引きしない)をつけるようにならいました。

理由は単に、「遅くなるから」だったのですが、遅くなることよりも問題が複雑になることの方が重要だったのですね。

pingにも、-snと言う形で、意識して-nをつける習慣をつけたほうがいいですね。



日記

Recent Updates