作成日:2002年05月21日、更新日:2002年10月12日 作成:鷹の巣

非固定IPアドレスの自宅サーバーで、IPアドレスが極力変更されない為の対策方法として、pingコマンドの使用例を紹介します。


非固定IPアドレス時の自動切断防止用pingコマンド使用例

プロバイダから、非固定のグローバルIPアドレスを割り当てられている場合は、無通信状態が長く続くと、 自動切断され、IPアドレスが変ってしまいます。これを防ぐ為、ネットワーク診断用のpingコマンドを使用して、 ICMPパケットをプロバイダに送出する方法について検討します。

1. 接続IPアドレスが変るのは

プロバイダから非固定のグローバルIPアドレスを割り当てられている場合、なぜ、無通信状態になるとプロバイダは、切断するのか?

プロバイダが非固定のグローバルIPアドレスをユーザーに割り当てる場合、DHCP(Dynamic Host Configuration Protocol)という プロトコルを使用しています。これは、現在のグローバルIPアドレスの枯渇に対処する一つのコストダウン手法です。 プロバイダは、無通信状態が長く続くと当然、使用していないと判断して、自動的に切断し、そのIPアドレスを他の人の接続のために 確保しようとします。通常の使用においては、この動作は、全く問題はありません。 しかし、非固定IPアドレスで、自宅サーバーを運用している場合は、以下の理由で、IPアドレスを極力変えない様にしなければなりません。

IPアドレスが変らない(自動切断されない)様にするには、自宅サーバーにアクセスがない場合は、積極的にパケットをプロバイダに 送出しなければなりません。 Windowsユーザーであれば、Diceの「オプション(O)」?「環境設定(S)」の?「PING機能」タブの「定期的に送信する(回線切断防止など)」を 選択して、5分に一回pingを実行するのが、簡単です。(Diceの設定例の項7の「オプション設定」をご参照願います。)

2. pingコマンドの実際

pingコマンドとは、Packet INternet Groperの略で、ICMP(Internet Control Message Protocol)を使用して、32バイトのデータを4回送信し、 相手のコンピュータから返信があるかどうかでネットワークを診断します。 下記のコマンド操作が面倒な方は、ブラウザにプロキシサーバーの設定を行っていない状態でここのTraceRouteをクリックして下さい。 一番下に表示されているのが貴方の接続IPアドレスで、一番下から2番目に表示されているのが、pingすべきIPアドレスになります。

下記の画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。

pingコマンドの使用例(以下の画面は、Windows 2000のコマンドプロンプト画面での実施例を示しています。)

C:\>nslookup asahi-net.or.jp <-----------プロバイダのドメイン名を問い合わせる。
Server: eagle.asahi-net.or.jp <-----------問い合わせに使用する(プロバイダ等の)DNSサーバー名
Address: 202.224.32.1 <-------------------問い合わせに使用する(プロバイダ等の)DNSサーバーのグローバルIPアドレス

Name: asahi-net.or.jp <-------------------プロバイダのドメイン名が表示される。
Address:202.224.39.40 <-------------------プロバイダのドメイン名に対応するグローバルIPアドレスが表示される。


C:\>tracert 202.224.39.40 <---------------プロバイダのグローバルIPアドレスにtracertコマンドを実施する。注)1

Tracing route to goro.asahi-net.or.jp [202.224.39.40]
over a maximum of 30 hops:

1 60 ms 40 ms 50 ms osknia-fe0.asahi-net.or.jp [61.125.224.14] <-----最も近いプロバイダのグローバルIPアドレス。注)2
2 50 ms 50 ms 50 ms tkyti1-v5.asahi-net.or.jp [202.224.36.1]
3 50 ms 50 ms 50 ms tkyni1.asahi-net.or.jp [202.224.32.90]
4 50 ms 50 ms 60 ms kddir1.asahi-net.or.jp [202.224.32.25]
5 50 ms 50 ms 50 ms goro.asahi-net.or.jp [202.224.39.40]

Trace complete.

C:\>ping 61.125.224.14 <-----------------最も近いプロバイダのグローバルIPアドレスにpingコマンドを実施する。注)3

Pinging 61.125.224.14 with 32 bytes of data:

Reply from 61.125.224.14:bytes=32 time=60ms TTL=254
Reply from 61.125.224.14:bytes=32 time=41ms TTL=254
Reply from 61.125.224.14:bytes=32 time=40ms TTL=254
Reply from 61.125.224.14:bytes=32 time=40ms TTL=254

Ping statistics for 61.125.224.14:
Packets:Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 40ms, Maximum = 60ms, Average = 45ms

C:\>exit
注)
  1. PC-UNIXでは、tracerouteコマンドです。tracertコマンドとtracerouteコマンドの書式は、@IT - アットマーク・アイティ「ネットワークの経路を調査する」をご参照願います。
  2. ルータの機種によっては、ICMPパケットに応答し、1番目にルータのプライベートアドレスが表れることがあります。 この場合は、2番目に応答したところが、pingすべき最も近いプロバイダのグローバルIPアドレスということになります。
  3. ping先は、接続先のプロバイダの最も近いIPアドレスとします。そうすることで、インターネットに負荷をかけず、プロバイダ内の 最小限のネットワーク内だけで、パケットが帰って来ることになります。

3. 自動切断防止のためのpingコマンドの使用方法

自動切断防止の為のpingは、プロバイダ以外のインターネット上に負荷をかけない様、

  1. 経路上もっとも近いインターネット上のIPアドレスに対して行う。
  2. ping先は、フルドメイン名(FQDN)ではなく、IPアドレスを用いて行う。
  3. pingを行ってICMPパケットを送り出すことが切断防止になるのであって、pingの応答バケットが正常に戻って来なくても良い。

ということに注意して下さい。

  1. は、本来のpingの使用方法ではないのを承知で、プロバイダの自動切断防止のために、pingを行うのですから、極力プロバイダ内で pingのパケットが到達する方が望ましい訳です。
  2. は、pingする度にフルドメイン名(FQDN)を正引きする無駄を省くためです。実際フルドメイン名(FQDN)を正引きしても、 OS内のDNSリゾルバキャッシュで解決されますので、問い合わせパケットが、WAN側に出て行くことは、ほとんどありません。 ただ単にサーバー機に負荷をかけているだけです。

4. pingコマンドのトラフィック量

一回のpingに使用するトラフィック量は、1パケットの長さ32バイト×4パケット×2往復=256バイトとなります。 これを5分間隔で実行した場合、1時間あたり256バイト×60分÷5分=3072バイトとなり、1時間に一回約3kbyteのWebページを見るのに 相当します。

同様に3分間隔で実行した場合は、1時間あたり5120バイトとなり、1時間に一回約5kbyteのWebページを見るのに相当します。

5. 自動切断防止のためのpingでやっては、いけないこと

  1. 友人のIPアドレスや友人のフルドレイン名にpingのICMPパケットを発行しないこと。 友人であっても、貴方と違うプロバイダでしたら、所属するネットワークが異なります。 所属するネットワークが異なるとプロバイダのルータを通して、プロバイダの外にpingパケットが出て行くことになります。 本来のpingの使用方法ではないのを承知で、プロバイダの切断防止のために、pingを行うのですから、極力プロバイダ内で 経路上、最も近いIPアドレスからpingの応答パケットが帰って来るようにして下さい。 さもないと、インターネット上のルータも含めて、必要以上に無駄な負荷をかけることになります。
  2. 自己の接続IPアドレスや自己のフルドレイン名にpingのICMPパケットを発行しないこと。 これは、自宅でご使用のルータやOSのホストファイル等の設定によっては、WAN側(自宅の外側)にパケットが出て行かず、 自動切断防止にならない可能性があるからです。
以上で、自動切断防止のためのpingのICMPパケットの発行方法が理解出来ましたでしょうか。 くどい様ですが、必ず、経路上最も近いIPアドレスにpingコマンドを実施して下さい5分間隔で実行しても、プロバイダへの負担は、1時間に一回約3kbyteのWebページを見ることと変りません。しかも1ホップの地点 から、応答が帰って来ますから、実際のプロバイダへの負担は、約3kbyteのWebページを見るよりはるかに少ないのです。

目次▲頁先頭