JuniperSRXのDNS ALG

ちょっと問題あったのでメモします。

JUNOS OS 10.4R5.5でDNS ALGをEnableにした状態で、グローバルに公開しているDNSに対するクエリのAレコードが、何故かNATテーブルにしたがってプライベートアドレスに変換されてしまう事象が発生しました。

SRXに入れ替えた直後からインターネット側からの通信が行えない状態が発生しました。

ポリシーの問題とかNATの問題と考えて調べていたのですが、結局DNSのクエリに対して、プライベートアドレスを返答していることがわかりました。公開側のDNSサーバのテーブルを調べても、直接サーバにクエリを発行してもグローバルアドレスが返答されるのでDNSサーバの設定には問題が無いと判断しNATの問題を疑ったのですが、結局SRXを透過したときに返答されるAレコードのIPアドレスをNATテーブルに従ってプライベートアドレスに変換してしまうようです。

DNS ALGの機能をDisableに設定する事でグローバルアドレスが応答されるようになったので、原因としてはDNS ALGの機能が悪いように見えるのですが、、、。

原因を特定するまで、かなり掛かってしまいました。

以下 設定変更の手順

root@hogehoge> show security alg status 
ALG Status :
  DNS      : Enable

この状態ではDNSクエリに不正な(プライベートアドレスが)応答される。

root@hogehoge# set security alg dns disable

[edit]

DNS ALGの機能をDisableに設定して、

root@hogehoge# commit
commit complete

[edit]

設定をコミットする。

root@hogehoge> show security alg status 
ALG Status :
  DNS      : Disable

DNS ALGが無効になったことを確認。

GUI(J-Web)では

jwebdnsalg.jpg

Configuration → Security → ALG → Main(タブ) → Enable DNSのチェックを外す。

にしても・・・何なんだろう。既知問題?バグ?