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 に変わった( ◜ᴗ◝)