どうしてもinternal⇒internetの通信がうまくいかない
SRXでここ3日間ドハマリしてたのが、どういうわけかSRXの内部(vlan.1)から外部(Internet)への通信がどうしてもうまくいかない。pingがどうしても通らない。
そこで、セキュリティポリシーを表示するコマンドを実行してみた。
> show security policies Default policy: deny-all From zone: Internal, To zone: Internet Policy: All_Internal_Internet, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: any Applications: any Source identities: any Action: permit, drop-untranslated, log From zone: Internet, To zone: dmz Policy: internet_to_server01, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: server01 Applications: TCP_8080 Action: permit, log From zone: Internet, To zone: Internal Policy: Internet_to_Internal, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: any Applications: junos-http, junos-https, junos-icmp-all, junos-ssh, junos-icmp-ping, junos-ping Source identities: any Action: permit, log
All_Internal_Internetポリシーにだけdrop-untranslatedというのがあるのが気になった。
実際ポリシーを見てみると、[Permit Action]タブに該当する項目があった。
よくわからんが、直訳すると「NAT変換されていないパケットをドロップする」ということ。なぜか初期設定のこのポリシーではこの項目がデフォルトでチェック入ってるんだよね。
で、この項目を外してみたら普通にping通ったわ…_| ̄|〇
もう一度セキュリティポリシーを表示してみると、
> show security policies Default policy: deny-all From zone: Internal, To zone: Internet Policy: All_Internal_Internet, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: any Applications: any Source identities: any Action: permit, log From zone: Internet, To zone: dmz Policy: internet_to_server01, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: server01 Applications: TCP_8080 Action: permit, log From zone: Internet, To zone: Internal Policy: Internet_to_Internal, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 1 Source addresses: any Destination addresses: any Applications: junos-http, junos-https, junos-icmp-all, junos-ssh, junos-icmp-ping, junos-ping Source identities: any Action: permit, log
ご覧のように見事に「drop-untranslated」が消えている
NATしてもしなくてもping通るようになった
逆にNATしてもしなくても関係なくdropしてやがったらしい。すべての元凶はこの「Drop packets without translated address」
今後SRXを初期導入するときなどは絶対にこのチェックを外すことを激しく推奨する
〔補足〕
ちなみに、How to log packets that do not match a security po... - J-Net Communityによると、以下のコマンドを実行してGlobal Policyを設定すれば、今回のような原因不明のドロップログを見れるとのことだったんだが、ログなんぞ一向に見れず(ノ∀`)
# set security policies global policy default-logdrop match source-address any # set security policies global policy default-logdrop match destination-address any # set security policies global policy default-logdrop match application any # set security policies global policy default-logdrop then deny # set security policies global policy default-logdrop then log session-init
GUIでもできた。