内容

概要

問題

トラブルシュート

解決方法

サンプル コンフィギュレーション

関連するシスコ サポート コミュニティ ディスカッション

概要

このドキュメントでは、加入者が他のユーザトラフィックをブロックしながら、Whatsapp、SnapchatなどのフリーレートアプリケーションをSecure Sockets Layer(SSL)フローで使用する特定のシナリオについて説明します。この特定のアプリケーションは、Cisco Aggregated Service Router(ASR)5x00シリーズで動作します。SSLは、サーバ認証、クライアント認証、およびサーバとクライアント間の暗号化通信を管理するコンピュータネットワーキングプロトコルです。

問題

アプリケーションを検出するには、分析のために初期パケットが必要です。これら2つの矛盾する要件は、可能な限り最大限に満たされます。

a)最初のパケット自体で検出が必要

b)検出精度は100%であること

検出精度を高めるには、多くのアプリ（最初のパケットでアプリが検出されるアプリやフローがあります）を分析するためにより多くのパケットが必要です。 同じアプリの場合、最初のパケット自体の一部のフローにマークを付けることができますが、同じアプリの他のフローでは、分析のために多くのパケットが必要になることがあります。

したがって、他のトラフィックをブロックしている間にアプリケーションの何かが無料で評価された場合、アプリケーションの初期パケットが検出されず、十分な情報が伝送されない可能性があります。特に、SSLフローに基づくアプリケーションの場合、プロトコルは、client-helloパケットに存在するserver-name-indicationフィールドまたはSSL証明書に存在するcommon-nameのいずれかを使用してマークされます。server-nameはオプションのフィールドであるため、必ずしも存在するとは限りません。  次の図に示すように、Whatsapp SSLフローでは、スリーウェイハンドシェイク(TWH)の後、クライアントhelloパケットがアプリケーションによって送信されます。サーバ名表示(SNI)フィールドが表示されないPCAPトレース。また、クライアントhelloパケットの複数の再送信が発生し、最終的に廃棄されます。

また、次の図に示すように、Whatsappのマーキングに使用されるSNIフィールドが存在しないclient-helloパケットの16進数バイトです。したがって、client-helloパケットはWhatsappとしてマークできず、検出されません。このパケットが異なる評価グループに分類されると、パケットはドロップされるため、client-helloパケットの複数の再送信が見られます（フレーム番号5449、5453、5469を参照）。 最後に、接続が終了します。pcapにはこのようなフローがいくつか見られます。これは、Whatsappのイメージアップロードなど、有用なアクティビティが実行できない理由です。

トラブルシュート

1. capture  monitor subscriber imsi XXXX with following options

19 - User L3

X - PDU Hexdump

Verbosity level 5

これらのコマンドは、アナライザにアプリケーションの統計情報を提供します。

# show act analyzer statistics name p2p application snapchat

# show act analyzer statistics name p2p application whatsapp

プラグインのバージョンを確認するには：

#show plugin p2p

Wednesday July 29 22:12:07 SAST 2015

plugin p2p

patch-directory /var/opt/lib

base-directory /lib

base-version 1.50.52055

module priority 1 version 1.139.505

解決方法

これを回避するには、アプリケーション（whatsappなど）がマークされる前にパケットが通過することを確認する必要があります。

次のruledefを使用します。

ruledef ssl_clienthello

tcp either-port = 443

tcp payload-length >= 44

tcp payload  starts-with hex-signature 16-03

#exit

上記のruledefに一致するパケットは廃棄できません。このruledefの優先順位は、このパケットに一致し、パケットがドロップされるデフォルトのruledef(ip-any ruledef)の真上にある必要があります。

この設定を使用すると、上記の3つのルール行に一致するパケットだけが無料評価されます。これには、このruledefを使用して許可されるSSLフロー（client-hello、server-helloなど）内の初期ハンドシェイクパケットのみが含まれ、SSLフロー内の他のすべてのパケットはこのruledefに一致しません。したがって、SSLフローの最初の2 ～ 3個のパケットだけが使用できるため、他のアプリケーション（フリーレートしたいアプリケーション以外）に属するSSLflowがある場合、有用なトランザクションはありません。

サンプル コンフィギュレーション

推奨されるruledefは、all-ip_004_012_00016 ruledef (ip any-match = TRUE)よりも高い優先順位を持つ必要があります。

whatsapp ruledef.（sid_040_rg_400_rate_99999/sid_040_rg_400_rate_0032/ sid_040_rg_400_rate_00064 400および任意のレート）。

この設定では、クライアントのhelloパケットが提案されたruledefにヒットし、リダイレクトされずに許可されます。whatsappのルールが見られる2つのルールベースを次に示します。

rulebase mbc-internet-rs

action priority 1087 dynamic-only ruledef WhatsApp_P2P_040_400_99999_All_internet charging-action sid_040_rg_400_rate_99999

action priority 1088 dynamic-only ruledef WhatsApp_P2P_040_400_00064_All_internet charging-action sid_040_rg_400_rate_00064

action priority 1089 dynamic-only ruledef WhatsApp_P2P_040_400_00032_All_internet charging-action sid_040_rg_400_rate_00032

action priority [1090-9909] dynamic-only ruledef ssl_clienthello charging-action sid_040_rg_400_rate99999/00064/00032 --> Higher priority than all-ip ruledef and charging action with rating group 400

action priority 9910 dynamic-only ruledef all-ip_004_012_00016_MI_internet charging-action sid_004_rg_012_rate_00016

action priority 9920 dynamic-only ruledef all-ip_004_012_00032_MI_internet charging-action sid_004_rg_012_rate_00032

action priority 9930 dynamic-only ruledef all-ip_004_012_00064_MI_internet charging-action sid_004_rg_012_rate_00064

rulebase mbc-iphone-rs

action priority 1206 dynamic-only ruledef WhatsApp_P2P_040_400_99999_All_iphone charging-action sid_040_rg_400_rate_99999

action priority 1207 dynamic-only ruledef WhatsApp_P2P_040_400_00064_All_iphone charging-action sid_040_rg_400_rate_00064

action priority 1208 dynamic-only ruledef WhatsApp_P2P_040_400_00032_All_iphone charging-action sid_040_rg_400_rate_00032

action priority [1209-8999] dynamic-only ruledef ssl_clienthello charging-action sid_040_rg_400_rate99999/00064/00032 --> Higher priority than all-ip ruledef and charging action with rating group 400

action priority 9000 dynamic-only ruledef all-ip_015_150_00016_ALL_iphone charging-action sid_015_rg_150_rate_00016

action priority 9010 dynamic-only ruledef all-ip_015_150_00032_ALL_iphone charging-action sid_015_rg_150_rate_00032

action priority 9020 dynamic-only ruledef all-ip_015_150_00064_ALL_iphone charging-action sid_015_rg_150_rate_00064

action priority 9030 dynamic-only ruledef all-ip_015_150_99999_ALL_iphone charging-action sid_015_rg_150_rate_99999

charging-action sid_040_rg_400_rate_99999

content-id 400

service-identifier 40

billing-action egcdr

cca charging credit

exit

ruledef ssl_clienthello

tcp either-port = 443

tcp payload-length >= 44

tcp payload  starts-with hex-signature 16-03

exit