C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2009年3月29日

DDNS更新ミス DDNS更新ミス

最近グローバルIPアドレスが変ることが無かったので、つい油断していました。

どうも、金曜日の午後にグローバルIPアドレスが変ってしまったようで、外部から接続ができない状態になっていて、ようするにDDNSの更新がうまくいかなかった訳です。

このサーバーは手元に無いため、こんな場合のために一定間隔で別サイトにIPアドレスだけをアップする仕組みを入れてあり、新しいグローバルIPアドレスを手動で更新で復旧しました。

DDNS更新の歴史(個人的な)

元はTepco 光で接続していて、レンタルのATERMを使用していました。
BLOGを始めたのはこの頃でDDNSとして無償のJSPEEDを使っていました。
(DiCEが対応していたので・・・)
JSEEPをDiCE(Linux版)で更新するような事をやっていました。

DiCEの更新処理が失敗時にかなり時間がたたないと再試行してくれない問題が発覚してDiCEの使用を止めて、GnuDip2で更新するように変更。
その際、グローバルIPの取得をATERMの外部IPを拾うUPnP (Universal Plug and Play)のAPIを使用してGIPを検出して更新するようにしていました。

UPnPを使用してAtermのWAN側IPアドレスを取得するにはPerlで次のようなコードになっていました。(どこか参考にさせて頂いたサイトがあったのですが忘れてしまいました)

#!/usr/bin/perl

# ATERMルータの外部IPアドレスを取得します。
#
# 外部アドレスの取得にはUPnP (Universal Plug and Play)
# を使用しています。
# このため、SOAP::Liteモジュールを使用しています。
#
# IPアドレスの取得結果は標準出力に出力します。

use SOAP::Lite;
my $soap = SOAP::Lite
    ->ns('urn:schemas-upnp-org:service:WANPPPConnection:1')
        ->proxy('http://ATERMルーターのIPアドレス/upnp/control/WANPPPConn1');
        my $som = $soap->GetExternalIPAddress();
        my $ip = $som->valueof('//GetExternalIPAddressResponse/NewExternalIPAddress');
        print "$ip\n";

この仕組みは結構うまくいって安定していました。

その後、さまざまな外的理由で超マイナーなプロバイダ(とも言えないようなところ)を経由して接続する事になり、現在に至っています。

そのプロバイダのSEと話した時には「VPN構築で外部接続を遮断する事はやってますけど、外部から接続するようにしたことはないです。DMZってなんですか?そう設定はありません。」って言われた時には焦った。1X万もする販売中止のルーター売りつけといて。(PCIのGigabitのHUBが1万X円だって)去年の話ですが。

現在のGIPからJPNICのwhois gatewayで引くと、最終的なISPはInfoWeb(富士通みたいですが)のようです。(もちろん上の答えをくれたのは富士通の中の人ではないです。念のため)

Network Information: [ネットワーク情報]
a. [IPネットワークアドレス]

トラックバックURL

このエントリーのトラックバックURL:
http://www.cs-dotnet.com/cgi-bin/mt-tb.cgi/262

Comments

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)