web-dev-qa-db-ja.com

ICMPタイプ3コード4トラフィックの拒否-良いか悪いか?

リモートオフィスへの低速のVPN接続(Cisco ASA IPSec)を調査したところ、ファイアウォールで多くのアクセスルールが一致していることに気付きました。

Denied ICMP type=3, code=4 from *ip_address* on interface outside

リモートサイトへのtracerouteに、ISPとリモートサイトが使用するISPの間のどこかに同じIPアドレスが含まれていることに気付きました。

メッセージもすぐに表示されます  言う前に

No matching connection for ICMP error mesage: icmp src outside *ip_address* dst identity:*firewall_outside_ip_address* (type 3, code 4) on outside interface.  Original IP payload: protocol 50 src  *firewall_outside_ip_address* dst *remote_site_ip_address*

これは攻撃の兆候である可能性があることをシスコは提案しています 、しかし私はそうは思いません。

プロトコル50はESPであり、IPSecの一部です。リモートサイトは、リモートエンドのCisco ASA 5505およびHQのASA 5510を使用して、IPSec VPN経由でHQに接続されています。

ICMPタイプ= 3、コード= 4は、フラグメンテーションが必要であり、フラグメントが設定されていないことを意味します。

IPSec ESPパケットの場合、Do n't Fragmentの設定は正常です。

パケットがASA 5510からデフォルトのMTU 1500で送信されていることが原因だと思います。ip_addressでルーターに到達すると、ルーターはトラフィックを次のルーターに渡せませんより小さなMTUを使用するため、フラグメンテーションが必要なホップ。 DFが設定されているため、ルーターはICMPパケットを送り返していますが、アクセスルールのためではなく、何らかの理由でASA 5510がこのICMPを予期していなかったため、ファイアウォールがこれをブロックしていますメッセージ。

問題がHQ ASA 5510(別の36のサイトはすべて正常に機能しているにもかかわらず)、リモートASA 5505(他のリモートASA 5505で均一に構成されている)、またはその間の何かの構成にあるかどうかを把握しようとしています二つ。

次に何をすればいいですか?

Updateここで要求されているのは、HQ ASA 5510からのICMP行です。

icmp unreachable rate-limit 1 burst-size 1
icmp permit any echo-reply outside
icmp permit any time-exceeded outside
icmp permit any unreachable outside
4
dunxd

crypto ipsec df-bit clear-df outsideを設定してみてください。これで直接的な問題が修正されるわけではありませんが、回避できる可能性があります。

当面の問題に関する限り-トンネルのパスMTU検出としてICMPパケットを使用する必要があることをASAが認識していないようです。 show crypto ipsec saによって表示されるPMTUDカウンターに何かがあるかどうかを確認しますか?

3
Shane Madden

ICMP type コード4のメッセージは「断片化が必要ですが、セットを断片化しません」です。これは、デバイスがICMPメッセージを送信しているデバイスのMTUよりも大きなパケットを送信したことを意味します。通常、パケットは断片化されている可能性がありますが、DFビットが設定されています。受信ICMPメッセージを拒否しているため、ASAはパケットが配信されなかったことを通知されません。ドロップこれらのICMPメッセージは、本質的にパケット損失を引き起こすため、一般にパフォーマンスが低下します。

Ciscoの ASA設定ガイド は、常にICMPタイプ3メッセージを許可することを推奨しており、これらのメッセージがブロックされるとIPsecで問題が発生する可能性があると具体的に述べています。次のコマンドを使用して、ASAがこのエラーを報告できるように設定できます。

icmp permit any unreachable outside

これは、ASA自体を宛先とするICMP到達不能にのみ影響します。 ASAを内部ホストにthroughすることも許可する必要がある場合は、外部インターフェイスのアクセスリストを使用して許可する必要があります。

2

シスコのエンジニアから、次のオプションがあるとの意見がありました。

  • Shane Maddenの提案に従ってclear-dfを設定する
  • サーバーのMTUを1300に設定します。これにより、サーバーが送信するパケットは、そもそも断片化を必要とする可能性が低くなります。
  • sysopt connection tcp-mss 1300を使用したASAでのTCPの最大セグメントサイズの設定

私はtcp-mssの変更を適用し、HQ ASAからclear-dfコマンドを削除しました。問題のあるサイトは問題なく機能します。

これは、dfビットをクリアするよりも優れたソリューションである可能性があります。これは、望ましくない断片化につながるためです。これは、ASAのMTUを1340に設定するのと同じです(IPヘッダーに1300 + 20バイト、TCPヘッダー)に20バイト)。ただし、TCP =トラフィック。これにより、PMTUDを機能させることもできますが、Do n't Fragmentビットをクリアする場合はそうではありません。

シスコでは、このオプションについて IPフラグメンテーション、MTU、MSS、およびGREおよびIPSECでのPMTUDの問題を解決する で詳しく説明しています。

1
dunxd