固定IP1のみで、内部に設定したDNSを正常に外部に公開する方法について考察してみます。
命題:グローバルIP1を、ブロードバンドルーターに割り当て、ポートフォワードによってLANの中のDNSを公開する。
①ここではグローバルIPを61.197.xxx.yyyとしておきます。
②内部LAN-Aを192.167.1.xxx/255.255.255.0とします。
③公開用DNSサーバーアドレスを192.167.1.1とします。
さて、ブロードバンドルーターに割り当てられるIPアドレスは、外部側が直接グローバルIPになるでしょうから(IPUnnumberedではない)61.197.xxx.yyyそのものになります。そしてルーターの外部側に設定してしまう場合は、もちろんほかに使うことはできません。そこでポートフォワードを使うわけです。
つまり、外部から61.197.xxx.yyy Port 53(TCP/UDP)へのアクセスを、192.167.1.1に変換して内部LAN側とルータは接続するわけですね。これがWebサーバー(Port80)であれば問題は発生しません。なぜなら、名前を解決するわけではなく、ポートへの通信そのものなだけだからです。
では、DNSの場合どうなるでしょう。外部からくるDNS通信は、61.197.xxx.yyy宛てに届きます。ところが内部にあるため、DNSサーバーの実態は192.168.1.1であるわけです。
Windows Serverの標準DNSを立てるときに、本体のPC名から生成されますが、それでは192.168.1.1となってしまい、内部アドレスと外部アドレスの整合性がとれません。ですので、DNSサーバーを立てるときに、外部用にレコードを書きつつ、使用するインターフェースのIPアドレスは内部用になるという感じです。内部と外部を混乱しないように注意・・・かな。
つまり、送受信そのものは、内部IPで行いますが、送信内容は外部用(この場合ルーターアドレスの61.197.xxx.yyy)というわけですね。
で、ここまで設定して実験・・・とはいっても、グローバル内IPで行うのは少々危険なので、LAN内部にさらに内部をつくってシュミレーション。
ルーターのポートフォワードでDNSを新しく内部にたてた公開用設定へ接続し、実際に外部から内部への接続をPingやWWWでチェックしてみるとOK。ルーター自身ではなく、フォワードされたサーバー側で受信していることを確認。これならパフォーマンスはともかくとして、通信は大丈夫っぽいな・・・ というところまできて再起動後に問題発生。
なにが問題になったのか?!というと、サーバーの設定ではなく、サーバーに接続するためのインターフェース側。今回、WPA2-PSKのテストも兼ねて、無線LAN側にポートフォワード先を割り当てたのですよ。これが間違いの元だったw これでもIISは正常に動作したのですが、OS起動時にDNSサービスが立ち上がらなくなってしまった。
原因は、無線LANの接続が遅いこと。そして、DNSサービス起動するときに接続ができていないために、ネットワークの接続が無しとなってエラー。有線LANにすると、このエラーは発生せず。無線LAN側でとばせれば、おく位置決定まで楽だな~とかおもっていたんだが、ちょっと甘かったw まぁ、これは有線LANから無線LANへのコンバータ&有線LANのHUB組み合わせて無線って手もあるからいいか(´・ω・`)