なんだかなぁ……。とりあえず基本情報。
- ネットワークはファイアウォールでインターネット側・DMZ・LANと三つに区切られている。FWは某F社のもの。
- DNSサーバ3台のうち1台はインターネット側、つまりFWの外側にある。当然こいつはちゃんと返事をする。
- 残りの2台はDMZにある。インターネット側にバーチャルIPアドレスを持たせてパケットを転送するようにしている……はず。
- なのだが、DMZにいるサーバはDNSのクエリに対してREFUSEDを返す。
- そのため、うちのIPアドレスのゾーン(クラスC)のsoaレコードが3つ中2つわからない状態になってしまっている→lame delegationでJPNICからメール
という流れだったらしい。しかし名前解決成功率33.3%かよ。まずいだろそれ。
で、今日の調査でわかったこと。
- 外からのDNSパケットは一応届いているらしい。届いて、返事はしている。REFUSEだけど。なんでだ。
- 外とDMZの通信は、NATを使うかどうか選べるのだが、インターネット→DMZへのパケットについて、
- NATを使用しない(現在の設定)→返事をしない(REFUSED)
- NATを使用する→返事はするけど、どこからアクセスしてもDMZのデフォルトゲートウェイが問い合わせていることになるので、DMZ向けの返事をしてしまう→LANのIPアドレスで応答を返してしまう
- そもそも外から中への通信にNAT使っちゃダメだよな。
正直、FWが期待したとおりの動きをしてくれていないせいのように思うのだが……。明日またNTTと連絡取ってやりたいところだが、明日は本社。どうすっかね。俺1人でやってるんなら速攻で tinydnsとdnscacheにリプレースするんだがなぁ。