いつも通りに外出先から自宅へSSH接続を試みたら繋がらなかった。
あれ?
帰宅してからローカルでSSHを試すと繋がる。
おや?
DDNS設定が間違っているのか?
ということでMyDNSへリクエストしているcronを見直してみました。
<無料で使えるDDNS>
Free Dynamic DNS (DDNS) for Home Server and VPS etc | MyDNS.JP
今までcronで設定しているものをそのままwgetで飛ばしたら、どうやらIPV6のアドレス([2000:c8e:190:f31:123:678e:ef11:18be]みたいなアドレス)を取得しているらしい。ということが判明しました。
今まではIPV4アドレス([[110.123.45.678]みたいなアドレス)を取得していたのに急に・・・
なんで急にIPV6として認識されたのかは不明だけど、ルーターの挙動履歴を見てみると、ルーターの自動アップデートなのか、センターのアップデートなのかは不明だけどどうやらここ最近IPV6が使えるようになったらしいことが判明。
たぶんこれが原因だろう。
ということでMyDNSの設定を見直すことにしました。
今までBASIC認証でMyDNSへIPアドレスの通知をしていましたが、過去記事↓
ベーシック認証のアドレス、
wget http://(マスターID):(パスワード)@www.mydns.jp/login.html
このままだと、IPV6が使える環境だとIPV6のみを更新するそうです。
IPV4のアドレスを選択的に更新するにはアドレスのwwwをipv4に書き換えて送信してやる必用があるそうで、
これでIPV4のアドレスが更新されます。
ちなみに、IPV6のアドレスを選択的に更新するには
とするそうです。
これで、一応は繋がるようにはなったものの・・・ あれあれ?
SSHへのログインに異様に時間がかかるようになってしまった。
もしかして先にipv6を見にいってるのか?
という確認で、sshをデバッガモードの「-v」オプションを付けてみたら
$ sudo ssh -p [ポート番号] -v [ユーザー名]@[ターゲットアドレス]
OpenSSH_....., OpenSSL ... --
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to address.com [2000:c8e:190:f31:123:678e:ef11:18be] port 9999.
debug1: connect to address 2000:c8e:190:f31:123:678e:ef11:18be port 9999: Operation timed out
debug1: Connecting to address.com [110.123.45.678] port 9999.
debug1: Connection established.
っと、案の定IPV6がタイムアウトするまで待っている様子です。
原因ハッケーン!
とうことは、DDNSで更新されてしまったipv6を無効にするのが良さそうです。
けど、どうやるんだろ?
一週間ぐらい放置していれば無効化されるんだろうか?
いろいろ探った結果
MyDNSにログインして
IP ADDR DIRECT
の項目を選択
ここに
動的IPの場合、IPv4アドレスは「0.0.0.0」、IPv6アドレスは「0:0:0:0:0:0:0:0」でリセットされます。
ときちんと書かれています。
設定したら「CHECK」
「OK」を押すとIPV6アドレスがリセットされ無効になります。
素直に繋がるようになりました!
解決!
しかし今までBASIC認証でも問題無かったけど、そろそろセキュリティー的にSSL認証とかセキュアな認証方法に変更しようかしら。