Cisco 841M で OpenDNS Home を Dynamic IPアドレス で使用するために DNS-O-MATIC で クライアントIPアドレスを通知する config

要件:

  • Cisco 841M ( Cisco IOS Release 15.9(3)M8 ) 配下のすべてのデバイスを OpenDNS Home でフィルタリングしたい。
  • OpenDNS に ダイナミックIPアドレスの更新を通知するために DNS-O-MATIC を利用したい。

環境:

OCN フレッツネクスト光 コラボ IPv4 PPPoE + IPv6 IPoE
※ 新規申し込みは終了

アカウントを作成する

1. OpenDNS Home
www.opendns.com
2. DNSOMATIC ユーザー名・バスワードはOpenDNSと同じ。OpenDNSを追加する
www.dnsomatic.com

ルータにログインして config をいぢる
conf t
! OpenDNS IPv4 サーバーアドレス
ip name-server 208.67.220.220
ip name-server 208.67.222.222

! OpenDNS IPv6 サーバーはフィルタリングをしない(!)から使わないので、IPv4マッピングで書く 
ipv6 unicast-routing
ipv6 cef
ipv6 dhcp pool STATELESS
 dns-server ::FFFF:208.67.220.220
 dns-server ::FFFF:208.67.222.222
 import domain-name
end

! ルート証明書 trustpool のインポートフォルダ sdflash:/pki/trs を作成しておく
mkdir pki 
cd pki
mkdir trs

!  PKI  trustpool  ポリシー
conf t
crypto pki trustpool policy
 cabundle url http://www.cisco.com/security/pki/trs/ios.p7b
 chain-validation
 revocation-check none
 storage sdflash:/pki/trs
end

! DDNS更新URL
conf t
ip ddns update method OpenDNS
 http
 add https://USERNAME%40gmail.com:PASSWORD@updates.dnsomatic.com/nic/update?hostname=all.dnsomatic.com
! ?を入力する前に Crtl+V でエスケープする。コンソールへコピペする時は特に注意
 interval maximum 0 1 0 0
end

! WANインターフェイス にDDNS更新を送信させる
conf t
interface Dialer1 ←既存環境に合わせる
 ip ddns update hostname all.dnsomatic.com
 ip ddns update OpenDNS
 ip address negotiated ←プロバイダーに合わせる
end

 

ここでいったん running-config のバックアップを取っておくのが無難。
次の ルート証明書をインポートで config サイズが非常に大きくなり USBメモリーからZTD(Zero Touch Development)で復旧できるconfigサイズを超える可能性があるため。
必要なければスキップ。

copy nvram:running-config sdflash:config-YYMMDD-HHMM

 

ルート証明書をインポートする

conf t
crypto pki trustpool import url http://www.cisco.com/security/pki/trs/ios.p7b
end

wr mem (あるいは relo)

 
 
ログを取るときは

debug ip ddns update
! terminal length 0

sh log

 
 

やってみて分かったこと
  • IdenTrust Commercial Root CA 1 ルート証明書 を trustpoint として手動でインポートするブログが多いが、SSL接続は成功するものの DNSOMATIC のレスポンスは badauth のままだったのでこの方法は除外した。
    • DNSOMATIC も OpenDNS も Cisco のサービスなので Cisco製品のルート証明書変更の影響を探していたら、cisco.com から証明書を直接インポートする方法にたどり着いた
  • ip ddns update に DDNS更新URLを記述するときは
    • OpenDNS のユーザー名となるメールアドレス中の@は%40にエスケープする
    • メールアドレスの@より前に.(ドット)があるとDNSOMATIC のレスポンスは badauth になるので、ドットがないメールアドレスに変更する。恐らく IOS の制限でメールアドレス中のドットは1つまでなのかも。
  • CCPExAdmin の Wizard で作成した config をベースにいぢっていたのだが、ふと思い立って TP-self-signed-9999999999 の trustpoint policy と certificate を削除したら、DNSOMATIC のレスポンスが badauth から good に変わった( ◜ᴗ◝)

_(⌒(_´-ω-`)_ ・・・