非対称ルートでの SYN-ACK 問題

Printer Friendly Page

※この記事は以下の記事の日本語訳です。

SYN-ACK Issues with Asymmetric Routing

https://live.paloaltonetworks.com/t5/Configuration-Articles/SYN-ACK-Issues-with-Asymmetric-Routing/t...

 

問題

非対称ルーティング環境での共通の問題として、以下のような事象が発生することがあります。

  • ウェブサイトが部分的にしかロードされない
  • アプリケーションが動作しない

 

原因

デフォルトでは、"TCP reject non-SYN" フラグが yes に設定されています。これは、アプリケーションデータが許可されるためにはコネクションが同一のファイアウォールを通って開始されなければいけないことを示しています。もし SYN パケットが 1 台目のファイアウォールを通過し、SYN/ACK パケットが別のファイアウォールを通過した場合、コネクションの最初のパケットは 1 台目のファイアウォールで利用されているため、SYN/ACK パケットは拒否されることになります。
non-SYN TCP が発生したフローについては "show counter global""flow_tcp_non_syn_drop" をチェックしてください。

> show counter global | match drop

name                    value    rate severity  category  aspect    description

-----------------------------------------------------------------------------------

flow_rcv_err            1705        0 drop      flow      parse    Packets dropped: flow stage receive error

flow_rcv_dot1q_tag_err  7053        0 drop      flow      parse    Packets dropped: 802.1q tag not configured

flow_no_interface        7053        0 drop      flow      parse    Packets dropped: invalid interface

flow_ipv6_disabled      20459        0 drop      flow      parse    Packets dropped: IPv6 disabled on interface

flow_tcp_non_syn_drop    156        0 drop      flow      session  Packets dropped: non-SYN TCP without session match

flow_fwd_l3_mcast_drop  14263        0 drop      flow      forward  Packets dropped: no route for IP multicast

flow_parse_l4_cksm          1        0 drop      flow      parse    Packets dropped: TCP/UDP checksum failure

flow_host_decap_err        31        0 drop      flow      mgmt      Packets dropped: decapsulation error from control plane

flow_host_service_deny  90906        0 drop      flow      mgmt      Device management session denied

flow_lion_rcv_err        1700        0 drop      flow      offload  Packets dropped: receive error from offload processor

"show counter global | match drop" コマンドを複数回実行し、drop のカウンタが増加しているかどうか確認します。

 

現在の設定を確認するには、以下コマンドを実行します。

> show session info

-------------------------------------------------------------------------------

number of sessions supported:                  262143

number of active sessions:                      1

number of active TCP sessions:                  0

number of active UDP sessions:                  0

number of active ICMP sessions:                0

number of active BCAST sessions:                0

number of active MCAST sessions:                0

number of predict sessions:                    0

session table utilization:                      0%

number of sessions created since system bootup: 7337

Packet rate:                                    8/s

Throughput:                                    3 Kbps

-------------------------------------------------------------------------------

session timeout

  TCP default timeout:                          3600 seconds

  TCP session timeout before 3-way handshaking:    5 seconds

  TCP session timeout after FIN/RST:              30 seconds

  UDP default timeout:                            30 seconds

  ICMP default timeout:                            6 seconds

  other IP default timeout:                      30 seconds

  Session timeout in discard state:

    TCP: 90 seconds, UDP: 60 seconds, other IP protocols: 60 seconds

-------------------------------------------------------------------------------

session accelerated aging:                      enabled

  accelerated aging threshold:                  80% of utilization

  scaling factor:                              2 X

-------------------------------------------------------------------------------

session setup

  TCP - reject non-SYN first packet:            yes

  hardware session offloading:                  yes

  IPv6 firewalling:                            no

-------------------------------------------------------------------------------

application trickling scan parameters:

  timeout to determine application trickling:  10 seconds

  resource utilization threshold to start scan: 80%

  scan scaling factor over regular aging:      8

-------------------------------------------------------------------------------

 

解決方法

この事象に関しては 2 つの回避策があります。

  • 非対称ルーティングとならないようネットワーク構成を変更し、通信が開始されたファイアウォール上を全ての戻りトラフィックが通過する構成とする
  • SYN パケットで開始されなかったコネクションを拒否するオプション (tcp-reject-non-syn) をオフにする

一時的に non-SYN TCP フローを拒否するオプションを無効にするには、以下のコマンドを実行します。これは機器が再起動されるまで有効です。

> set session tcp-reject-non-syn no

恒久的にこのオプションを無効にするには、以下を実行します。

> configure

# set deviceconfig setting session tcp-reject-non-syn no

# commit

ファイアウォール上で non-SYN TCP フローが確立されるかどうか確認するには、以下コマンドを実行します。

> show session info

. . . .

--------------------------------------------------------------------------------

Session setup

  TCP - reject non-SYN first packet:            False

  Hardware session offloading:                  True

  IPv6 firewalling:                              True

 

著者: panagent