はじめに
このドキュメントでは、WAN経由でトラフィックが失われても、SD-WANエッジでドロップが見られない場合のデータの識別および収集方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Software-Defined Wide Area Network(SD-WAN)
- 組み込みパケットキャプチャまたはvManageパケットキャプチャ
- Wireshark
- Microsoft Excel(登録ユーザ専用)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- C8000Vバージョン17.03.04
- vManageバージョン20.3.4
- Wiresharkバージョン2.6.3
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景
この課題を解決するために、このドキュメントで説明する手順では、Differentiated Services Code Point(DSCP)を使用して特定のトラフィックをマークし、目的のパケットを識別する方法を示します。DSCPは、この値が内側のパケットヘッダーからIPsecヘッダーにコピーされるため、トラフィックの識別に使用できます。目的のパケットが特定されたら、2つのWANキャプチャ間でトラフィックを照合して、送信元から宛先までのトラフィックが一致していることを確認する方法を示します。
このトラブルシューティングテクニックを示すために、2つの単一ルータサイトを使用します。この例では、図に示すように、10.0.0.10から10.0.2.10へのICMPトラフィックは100回のpingの形式で送信されます。この例では損失はありませんが、この同じトラブルシューティングテクニックは、損失を特定するために使用します。
トラブルシューティングプロセス
概要プロセス
- WAN経由でトレースされるトラフィックの場合、未使用のDSCP値を使用してトラフィックをマーキングするには、アクセスリスト(ACL)(または集中型ポリシー)が必要です。この例では、DSCP 27が使用されます。
- トラフィックがマーキングされると、組み込みパケットキャプチャを使用して、送信元ルータと宛先ルータのトランスポートインターフェイス上のパケットがキャプチャされます。
注:vManageパケットキャプチャも使用できますが、5 MBのデータまたは5分間のランタイムに制限があります。
- キャプチャが取得されたら、Wiresharkで開いて表示します。
- Wiresharkでフィルタを適用して、必要なパケットを表示し、それらのパケットを比較します。
- Microsoft Excelは、精度を確保するために大きなキャプチャに使用されます。
DSCPによる目的のトラフィックのマーキング
例Isのようなアクセスリストが送信元ルータ(この例ではcEdge1)で設定され、次に示すようにルータ設定のSD-WAN部分のインターフェイスに適用されます。
オプションのカウンタが適用され、トラフィックが期待どおりにポリシーにヒットすることが確認されます。これは、コマンドshow sdwan policy access-list-countersを使用して確認できます。
policy
access-list mark_dscp_27
sequence 10
match
source-ip 10.0.0.10/32
destination-ip 10.0.2.10/32
!
action accept
count MARK_DSCP_27_COUNT (optional counter to verify packets that hit the policy)
set
dscp 27
!
!
!
default-action accept
sdwan
interface GigabitEthernet3
access-list mark_dscp_27 in
組み込みキャプチャによるトラフィックのキャプチャ
注:Cisco IOS XEで組み込みパケットキャプチャを設定してWANを通過する暗号化パケットをキャプチャする方法については、「Cisco IOSおよびCisco IOS XE用の組み込みパケットキャプチャの設定例」に移動してください。
注:WAN上のEPCを制限するには、ACLを使用する必要があります。これは、EPCのレート制限が1000 PPSを超える可能性があるためです。
例
この例では、トラフィックは送信元から宛先の方向でのみチェックされるため、ACLはcEdge1とcEdge3で設定されます。
注:WANのIPアドレスはキャプチャをフィルタリングするために使用されます。トラフィックが通過するパスを特定するために使用できる複数の出力があるため、ACLフィルタに対して正しいWAN IPを特定できます。この出力の生成に使用できるコマンドは、show sdwan app-fwd cflowd flowsおよびshow sdwan policy service pathです。条件付きパケットトレースに移動し、デバッグ条件を確認してください。
ip access-list extended CAP-Filter
10 permit ip host 192.168.23.149 host 192.168.28.240
この時点で、両方のルータでキャプチャが開始され、オーバーレイ経由で100回のpingが送信されます。
#ping vrf 10 10.0.2.10 rep 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 10.0.2.10, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (100/100), round-trip min/avg/max = 1/1/4 ms
キャプチャが停止し、両方のルータから収集された後、キャプチャを表示するにはWiresharkでキャプチャを開く必要があります。
Wiresharkによる分析
WiresharkでcEdge1のキャプチャを開くと、すべてのトラフィックが暗号化されていることが確認でき、どのパケットが送信されたpingであるかを容易に判別できません。
表示フィルタip.dsfield.dscp == 27を使用してこのキャプチャをフィルタリングすると、画面の下部に100個のパケットだけが表示され、DSCP列の値がすべて27と表示されることがわかります。
DSCP値がWAN全体で維持される場合は、宛先キャプチャで同じフィルタを使用できます。
その他の場合では、DSCP値がパブリックインターネット接続を介してクリアされるような状況では、これは不可能です。
ESPシーケンスによる目的のトラフィックのフィルタリング
いずれの場合も、トラフィックはESPシーケンス番号で識別できます。
パケット内のESPシーケンス番号を表示するには、キャプチャを右クリックし、次に示すようにDecodeを選択します。
Current fieldドロップダウンメニューを選択し、そのフィールドにUDPENCAPと入力するか、ドロップダウンから選択します。
完了したら、OKを選択します。
Wiresharkパケットの詳細セクションで、パケットのEncapsulating Security Payload部分を展開して、ESPシーケンスを表示します。
ESP Sequenceを右クリックし、apply as columnを選択します。これにより、Wireshark画面の上部にあるパケットリストセクションに、ESPシーケンスの列が表示されます。
注:cEdge1上のパケットのESP SPIは0x040001dcです。これは、宛先キャプチャのフィルタに使用されます。
宛先キャプチャを開き、UDPENDCAPとしてデコードする手順を繰り返し、パケットのESPシーケンス番号を表示します。
パケットにESPシーケンス番号が表示されたら、最初のキャプチャのESP SPIを2番目のキャプチャのフィルタとして使用し、目的のトラフィックに一致するそのSPI内のトラフィックのみを表示できます。
両方とも一致するパケットシーケンス番号にDSCP 27がマーキングされていることに注意してください。
この比較は、Wiresharkで手動で行うことも、Microsoft Excelを使用して行うこともできます。
Microsoft Excelを使用して比較するには、両方のキャプチャに含まれるパケットだけを含むように両方のキャプチャをスライスする必要があります。
ソースキャプチャでは、最初に関連するパケットにESPシーケンス306が含まれており、パケット番号451に対応しています。
ソースキャプチャの最後の関連パケットはESPシーケンス405を持ち、パケット番号は550です。
宛先キャプチャでは、最初に関連するパケットがESPシーケンス306による送信元キャプチャに対応していますが、このキャプチャではパケット463です。
関連する最後のパケットもESPシーケンス405に存在し、パケット564です。
最初のキャプチャは、関連するパケットだけを含むようにスライスする必要があります。
File > Export Packet Dissections > As CSV...の順に移動します。
CapturedとRangeを選択し、Rangeフィールドに最初の関連パケットから最後の関連パケットまでの範囲を入力します。
File Nameフィールドにファイル名を入力して、Saveをクリックします。
関連するパケットについて、キャプチャ2で同じプロセスを繰り返します。
両方のCSVファイルをMicrosoft Excelで開きます。
ソースキャプチャCSVで、XLSX形式で保存します。
画面の下部で+記号を選択して、別のシートを追加します。CAP2_sliceという名前を付けます。
CAP2 CSVファイルを開き、Ctrl+ aキーを押してすべてを選択し、Ctrl+cキーを押してコピーします。
CAP1_slice.xlsxファイルに移動し、CAP2_sliceの2番目のタブで、コピーした情報をセルA1に貼り付けます(CTRL + v)。
CAP1_sliceシートに戻り、COMPARE_ESP_SEQUENCEという新しい列を作成します。
ESPシーケンス番号がG列にあるため、VLOOKUPコマンドを次のように作成して2つのシートを比較し、発信元のG列のすべてのデータが宛先のG列にあることを確認します。
=IF(ISNA(VLOOKUP(G2,CAP2_slice!G:G,1,FALSE)),"MISSING","PRESENT")
[Enter]を選択すると、PRESENTという単語が表示されます。これは、ESPシーケンス306のパケットが2番目のシートにあることを意味します。これは、パケットが送信元から宛先に送信されたことを意味するため、重要です。
列O行2を選択し、そのセルの周りの緑色のボックスの右下隅にマウスポインタを合わせます。
選択して長押しし、マウスを下にドラッグして、この式を値を持つセルの一番下にコピーします。
シートの先頭までスクロールし、COMPARE_ESP_SEQUENCEをクリックします。次に、Sort & Filterを選択します。
ドロップダウンメニューからFilterを選択します。
COMPARE_ESP_SEQUENCEカラムにドロップダウンメニューが表示されます。
COMPARE_ESP_SEQUENCE見出しのドロップダウンメニューをクリックします。この例では、表示されている値はPRESENTだけであることに注意してください。これは、すべてのパケットが両方のキャプチャに存在することを意味します。
問題のある例を作成するには、CAP2_sliceから10個のパケットを削除します。これにより、一部のパケットが欠落しているテストで、この方法がどのように機能するかを示すことができます。
CAP1_sliceシートに戻ると、10個のパケットが欠落していることが確認できます。
ドロップダウンメニューがCOMPARE_ESP_SEQUENCE列で選択されると、MISSINGパケットも存在することが確認されます。これは、MISSINGパケットだけを表示するように切り替えることができます。
Excelシートに見つからないパケットだけが表示されるようになりました。
受信側のDSCPが異なる
一部のシナリオでは、ISPによってDSCP値セットがクリアされるため、受信側で送信側で設定されたDSCPと一致しません。このシナリオを補完し、パケットを追跡するもう1つの便利なツールは、ESP SPIとESPシーケンス番号です。
DSCPは、送信側からの対象パケットを識別するために使用する必要があります。次に、これらの特定のパケットからのESPシーケンス番号を受信側キャプチャと比較できます。DSCPマーキングとは異なり、ESPシーケンス番号はSD-WAN IPSEC機能に組み込まれているため、変更できません。これにより、ESPシーケンス番号は、アンダーレイを通じて(送信元のDSCPに一致する)対象パケットを追跡するのに役立ちます。
ESPシーケンス番号を比較するには、ESPシーケンス番号をWiresharkの列として追加し、アウトバウンドとインバウンドのキャプチャを比較します。
pcap機能がWiresharkで開かれると、ESP SPIとシーケンス番号を表示するために、1つのパケットを展開し、右クリックしてprotocol preferencesを選択し、UDPENCAPを検索して、図に示すようにデフォルトポートをSD-WANポート(送信元ポート)に変更します。
UDPENCAPが正しいポートとともに配置された後、図に示すようにESP情報が表示されます。
注:SD-WANでのESPの詳細については、「SD-WAN cEdge IPsecアンチリプレイ障害のトラブルシューティング」を参照してください。
関連情報