Cisco / CCNA 200-301 v2.0

試験項目 2.4 · CCNA-070

Packet Capture Interpretation

ドメイン 2 · Switching and Network Access · L2 / L3 Connectivity Troubleshooting

このページのゴール

Packet Capture OutputをCapture Point / Directionの条件付き確認情報として読み、L2/L3 HeaderやRequest / Responseの観測結果から直接証明できる範囲と次の確認点を判断できるようにする。

このページのゴール

パケットキャプチャを、単に「パケットが見えた/見えない」で判断するのではなく、どの地点で、どの方向を、どの条件で観測した結果なのかを前提に読み取れるようにします。

特に重要なのは、

1地点で観測した事実
=
ネットワーク全体で起きた事実

ではないことです。

パケットキャプチャでは、

観測地点
観測方向
Ethernetヘッダ
802.1Qタグ
EtherType
ARP
IPヘッダ
TTL / Hop Limit
ICMP
要求と応答

を順番に確認し、直接証明できる範囲と、まだ証明できない範囲を分けることが重要です。

このページで学ぶこと

  • パケットキャプチャの観測地点
  • ingressとegressの観測方向
  • Ethernetの送信元MACアドレスと宛先MACアドレス
  • 802.1QタグとVLAN IDの読み方
  • EtherTypeによる上位プロトコル識別
  • ARP RequestとARP Replyの読み方
  • IPv4とIPv6の送信元・宛先アドレス
  • IPv4 TTLとIPv6 Hop Limitの読み方
  • ICMP Echo RequestとICMP Echo Replyの読み方
  • パケットを観測できない場合の証拠限界
  • 複数地点のキャプチャを相関させる方法

パケットキャプチャで最初に確認すること

パケットの中身を見る前に、まず確認するのは、

どこで観測したか
どの方向を観測したか

です。

これが分からないと、同じパケットでも結果を正しく解釈できません。

観測地点とは

観測地点は、パケットを取得した場所です。

例:

送信ホスト
    |
    | ①送信側
    |
  ルータ
    |
    | ②中継区間
    |
  スイッチ
    |
    | ③受信側
    |
受信ホスト

①、②、③のどこで取得したかによって、見える情報は変わります。

送信側でパケットを見た意味

送信側で要求パケットを観測した場合、

その観測地点で
要求パケットが存在した

ことは確認できます。

しかし、

宛先まで届いた

ことまでは直接証明できません。

受信側で同じパケットを見た意味

受信側で同じ要求パケットを観測できた場合は、

少なくとも受信側のその観測地点までは
要求パケットが到達した

と判断できます。

1地点の観測を全体へ広げない

悪い判断:

送信側で要求を観測した
↓
宛先でも必ず受信した

良い判断:

送信側で要求を観測した
↓
送信側のその地点までは確認できた
↓
宛先側は別の確認が必要

です。

観測方向とは

同じインターフェースでも、

ingress
egress

では観測対象が異なります。

ingressとは

ingressは、そのインターフェースへ入ってくる方向です。

概念図:

外部
  |
  v
[ Interface ]
   ingress

egressとは

egressは、そのインターフェースから出ていく方向です。

概念図:

[ Interface ]
   egress
     |
     v
    外部

同じインターフェースでも結果は異なり得る

同じインターフェースでも、

ingressで見えるパケット
egressで見えるパケット

が同一とは限りません。

転送処理やフィルタリングの前後など、観測する位置と方向によって結果が変わるためです。

観測地点と方向はセットで記録する

良い記録例:

Gi1/0/1 ingress
Gi1/0/1 egress
Gi1/0/2 ingress
Gi1/0/2 egress

悪い記録例:

Gi1/0/1で見えた

だけでは、どちら向きか分かりません。

要求の流れを比較する

たとえば、

入口 ingress
→ 要求あり

出口 egress
→ 要求あり

なら、その装置では少なくとも両地点で同じ要求を観測しています。

一方、

入口 ingress
→ 要求あり

出口 egress
→ 要求なし

なら、入口と出口の間を追加確認候補にできます。

観測条件を固定して比較する

複数回の結果を比較するときは、

観測地点
観測方向
対象通信
時刻
フィルタ条件

をそろえることが重要です。

条件が違う結果を直接比較すると、誤った判断につながります。

Ethernetヘッダを読む

Ethernetフレームでは、L2の送信元と宛先を確認します。

代表的な情報:

Destination MAC Address
Source MAC Address
EtherType

送信元MACアドレス

Source MAC Addressは、その観測地点でのEthernetフレームのL2送信元を示します。

例:

Source MAC Address:
00:11:22:33:44:55

宛先MACアドレス

Destination MAC Addressは、その観測地点でのEthernetフレームのL2宛先を示します。

例:

Destination MAC Address:
00:aa:bb:cc:dd:ee

MACアドレスはリンクごとに変わり得る

同じIPパケットでも、ルータを越える前後ではEthernetヘッダが作り直されます。

概念例:

Host A
IP送信元 192.0.2.10
IP宛先   198.51.100.20
        |
        | Ethernet
        | 宛先MAC = R1
        v
       R1
        |
        | Ethernet
        | 送信元MAC = R1
        | 宛先MAC = 次Hop
        v
       R2

IPアドレスが同じでも、L2のMACアドレスはリンクごとに変わり得ます。

1地点のMACアドレスを全区間へ当てはめない

悪い判断:

送信側で宛先MACがaa:bb:cc:dd:ee
↓
全リンクで宛先MACも同じ

とは限りません。

ルータを越えると、次のリンク用のEthernetヘッダになります。

L2とL3を分ける

Ethernet Source / Destination
→ L2

IP Source / Destination
→ L3

として分けて読みます。

802.1Qタグを読む

802.1Qタグが存在する場合、キャプチャ結果からVLAN IDを確認できます。

例:

802.1Q
VLAN ID: 20

VLAN ID 20を観測した意味

直接言えることは、

その観測地点で
VLAN ID 20のタグを持つフレームを観測した

ことです。

VLAN IDから言い過ぎない

VLAN ID: 20を観測しても、

ネットワーク全区間で必ずVLAN 20タグ付き

とは限りません。

観測地点によってタグの有無は変わり得ます。

トランク側とアクセスポート側の違いを意識する

例:

トランク側 ingress
→ VLAN 20タグあり

アクセスポート側 egress
→ 同じタグを観測しない

という状態は、観測地点ごとのフレーム状態として扱います。

タグがないことだけで異常と決めない

タグが見えない場合でも、

観測地点
ポートの役割
フレームがどの処理段階にあるか

を考慮します。

Native VLANを即断しない

VLAN ID 20のタグを観測した事実だけから、

Native VLAN = 20

とは判断しません。

直接確認できるのは、その地点で見えたタグ情報までです。

EtherTypeを読む

EtherTypeは、Ethernetフレームの上位プロトコルを識別する重要な情報です。

代表例:

EtherType 代表的な上位プロトコル
0x0800 IPv4
0x0806 ARP
0x86DD IPv6
0x8100 802.1QタグのTPID(Tag Protocol Identifier)

EtherType 0x0806

EtherType: 0x0806

なら、ARPとして内容を確認します。

EtherType 0x0800

EtherType: 0x0800

なら、IPv4ヘッダを確認します。

EtherType 0x86DD

EtherType: 0x86DD

なら、IPv6ヘッダを確認します。

EtherTypeは分類の入口

802.1Qタグ付きフレームでは、0x8100は上位L3プロトコルを示す値ではなく、802.1QタグのTPIDです。タグ情報の後ろに続く元のEtherTypeを確認して、ARP、IPv4、IPv6などの上位プロトコルを判断します。

判断の流れ:

EtherType確認
↓
ARPか
IPv4か
IPv6か
その他か
↓
該当する上位ヘッダを読む

Source MACだけで上位プロトコルを決めない

送信元MACアドレスはL2送信元を示します。

ARPかIPv4かIPv6か

の分類にはEtherTypeが有効です。

ARP Requestを読む

ARP Requestは、代表的には、

あるIPv4アドレスに対応するMACアドレスを知りたい

という問い合わせです。

ARP Requestの概念例

Who has 192.0.2.1?
Tell 192.0.2.10

この場合、

192.0.2.10側が
192.0.2.1に対応するMACアドレスを問い合わせている

と解釈します。

ARP Replyを読む

ARP Replyでは、問い合わせに対するMACアドレス情報が返されます。

概念例:

192.0.2.1 is at 00:aa:bb:cc:dd:ee

RequestとReplyの両方を観測した場合

同じ観測地点で、

ARP Request
ARP Reply

の両方を確認できたなら、

その観測地点で
ARPの要求と応答の両方を観測した

と判断できます。

ARP交換を見たこととネットワーク全体正常は別

ARP RequestとReplyを確認しても、

全スイッチのMACアドレステーブルが正しい
デフォルトルートが正しい
アプリケーションが正常

まで直接証明するわけではありません。

ARP Requestだけ見えてReplyがない場合

例:

ARP Request
→ 観測

ARP Reply
→ 観測なし

直接言えるのは、

この観測条件では
対応するARP Replyを観測していない

ことです。

Replyがない原因を即断しない

ARP Replyを観測できない場合でも、

対象ホスト停止
ケーブル断
ルーティング異常

のどれかに即断できません。

ARP Reply非観測の候補

考えられる方向:

Requestが相手まで届いていない
相手がReplyを生成していない
Replyが途中で失われた
Replyが別の観測条件では存在する
キャプチャ条件が対象を捉えていない

です。

ARPの非観測は観測条件付き

悪い判断:

ARP Replyがない
↓
対象ホスト停止確定

良い判断:

この観測地点・方向ではARP Replyなし
↓
別地点や別方向で追加確認

です。

IPv4ヘッダを読む

IPv4では、

Source Address
Destination Address
TTL
Protocol

などを確認します。

IPv4送信元アドレス

例:

Source Address: 192.0.2.10

なら、その観測パケットのL3送信元は192.0.2.10です。

IPv4宛先アドレス

例:

Destination Address: 198.51.100.20

なら、その観測パケットのL3宛先は198.51.100.20です。

送信元と宛先をセットで読む

例:

IPv4
Source:      192.0.2.10
Destination: 198.51.100.20

なら、

観測したIPv4パケットは
192.0.2.10から198.51.100.20宛て

と読みます。

インターフェース名だけでL3端点を決めない

観測インターフェースがGi1/0/1だからといって、

送信元IP = Gi1/0/1のIP

とは限りません。

L3端点は、観測したIPヘッダを確認します。

想定と異なる送信元IPを見た場合

期待:

Source IP = 192.0.2.10

実際:

Source IP = 192.0.2.99

なら、最初に記録するのは、

観測したパケットのL3送信元が
想定と異なる

という事実です。

想定差から原因を飛躍しない

送信元IPが想定と異なっても、

スイッチポート故障確定
宛先ホスト停止確定

とは判断しません。

IPv6ヘッダを読む

IPv6でも、

Source Address
Destination Address
Hop Limit

などを確認します。

IPv4 TTLを読む

TTLは、観測したIPv4パケットに残っている値です。

例:

TTL: 61

なら、

その観測地点で
TTL 61のIPv4パケットを観測した

と読みます。

TTLは全経路を一意に示さない

TTLが61だからといって、

必ず3台のルータを通過した

と一意に断定できるとは限りません。

初期TTLが分からない場合があるためです。

TTLだけで経路全体は復元できない

単一地点で、

TTL = 61

を見ても、

通過した全ルータ
往路全体
復路全体

を一意に復元することはできません。

TTLは比較情報として使える

同条件で複数地点を観測して、

地点A TTL 63
地点B TTL 62

のような差があれば、パケットが経路を進む中でTTLが減少していることを確認する材料になります。

IPv6 Hop Limitを読む

IPv6ではTTLではなく、

Hop Limit

を確認します。

例:

Hop Limit: 63

Hop Limitも観測地点での残存値

直接言えるのは、

そのIPv6パケットを
Hop Limit 63で観測した

ことです。

Hop Limitを残りHop数の絶対値にしない

Hop Limit = 63
↓
あと63台のルータを通れる

という単純な絶対値として経路全体を確定するものではありません。

TTLとHop Limitを区別する

IPv4
→ TTL

IPv6
→ Hop Limit

です。

フィールド名を混同しないようにします。

ICMPを読む

ICMPでは、メッセージの種類と方向を確認します。

代表的なPingの組み合わせ:

ICMP Echo Request
ICMP Echo Reply

ICMP Echo Request

ICMP Echo Requestは、Pingの要求側です。

概念例:

192.0.2.10
   |
   | Echo Request
   v
198.51.100.20

ICMP Echo Reply

ICMP Echo Replyは、対応する応答側です。

概念例:

192.0.2.10
   ^
   | Echo Reply
   |
198.51.100.20

RequestとReplyの両方を同じ地点で観測

同じ観測地点で、

Echo Request
Echo Reply

の両方を確認できたなら、

その観測地点では
要求と対応応答の両方を観測した

と言えます。

両方を観測しても復路全体は証明しない

要求と応答を同じ地点で見ても、

往路と復路が完全に同じ

とは限りません。

観測できたのはその地点です。

Requestだけ見える場合

例:

Echo Request
→ 観測

Echo Reply
→ 観測なし

直接言えるのは、

この観測条件では
対応するEcho Replyを観測していない

ことです。

Reply非観測だけでは原因を分けられない

Echo Replyが見えない原因候補:

Requestが宛先まで届いていない
宛先がReplyを生成していない
Replyが復路途中で失われた
フィルタリングされた
別の観測地点・方向には存在する
キャプチャ条件が対象を捉えていない

があります。

「見えない」を「存在しない」にしない

パケットキャプチャで重要な原則です。

このキャプチャで見えない

ことと、

ネットワーク上のどこにも存在しない

ことは同じではありません。

非観測は条件付き事実

正しい表現:

Gi1/0/1 ingressでは
対象パケットを観測していない

言い過ぎ:

対象パケットはネットワーク上に存在しない

です。

フィルタ条件も考慮する

実際にパケットが存在していても、

フィルタ条件に一致しない
観測方向が違う
観測インターフェースが違う
観測時間がずれている

などで見えない場合があります。

観測時間も重要

通信発生時刻とキャプチャ時間が一致していなければ、

取得結果に対象通信がない

ことがあります。

1地点の非観測で原因を確定しない

悪い判断:

1地点でReplyなし
↓
宛先停止確定

良い判断:

1地点でReplyなし
↓
観測地点・方向・時間・条件を確認
↓
別地点で追加確認

です。

複数地点キャプチャの目的

複数地点で同じ通信を観測すると、

どこまでは存在したか
どこから観測できなくなったか

を絞れます。

要求を2地点で比較する

例:

送信側 egress
→ Echo Requestあり

受信側 ingress
→ Echo Requestなし

なら、

送信側の観測地点では要求あり
受信側の観測地点では要求なし

という差が確認できます。

2地点間を候補範囲にする

この場合、

送信側観測地点
~
受信側観測地点

の間を追加確認候補にできます。

要求が両地点で見える場合

例:

送信側 egress
→ Requestあり

受信側 ingress
→ Requestあり

なら、

少なくとも両方の観測地点で
同じRequestを観測した

と判断します。

応答を2地点で比較する

例:

受信側 egress
→ Replyあり

送信側 ingress
→ Replyなし

なら、復路について、

受信側ではReplyあり
送信側ではReplyなし

という差を確認できます。

要求と応答を別々に追う

往路と復路は、

Request
Reply

を分けて追跡します。

一方が通っていても、他方が通っているとは限りません。

複数地点相関の基本

地点Aで存在
地点Bで存在
地点Cで非観測

なら、

地点Bから地点Cの間

を追加確認候補にできます。

同一パケットかを確認する

複数地点を比較するときは、

送信元 / 宛先IP
プロトコル
ICMP種別
時刻
識別情報

などを使い、同じ通信を比較していることを確認します。

異なる通信を比較しない

別の通信を、

同じパケットの前後

として扱うと誤判断になります。

複数地点比較では相関条件が重要です。

Cisco EPCの結果も同じ原則で読む

Cisco機器のEmbedded Packet Captureで、

Gi1/0/1 ingress
ICMP Echo Request

と記録されている場合、直接言えるのは、

Gi1/0/1 ingressで
ICMP Echo Requestを観測した

ことです。

EPCで見えたから宛先到達とは限らない

Gi1/0/1 ingressでRequestあり

という事実だけでは、

次Hopへ転送された
宛先に届いた
Replyが返った

まで証明できません。

EPCのBufferを読むとき

Buffer内の個々のパケットは、

どの観測地点
どの方向
どの通信
どの時刻

という条件付きで読みます。

1つのBufferをエンドツーエンド全体と考えない

EPC Bufferにパケットがあるからといって、

エンドツーエンド全体で同じ状態

とは限りません。

EthernetとIPを同時に読む

例:

Ethernet
Source MAC:      00:11:22:33:44:55
Destination MAC: 00:aa:bb:cc:dd:ee

IPv4
Source:          192.0.2.10
Destination:     198.51.100.20
TTL:             63

この場合、L2とL3を分けて記録します。

ルータ越え前後を比較する

地点A:

Ethernet Source MAC: Host A
Ethernet Destination MAC: R1
IP Source: 192.0.2.10
IP Destination: 198.51.100.20

地点B:

Ethernet Source MAC: R1
Ethernet Destination MAC: R2
IP Source: 192.0.2.10
IP Destination: 198.51.100.20

L2は変わっても、L3の送信元・宛先が維持されることがあります。

802.1QタグとIPアドレスを分ける

VLANタグはL2側の情報です。

VLAN ID 20

を見たことと、

IP Source 192.0.2.10

は別の観測項目です。

EtherTypeとIP Protocolを分ける

EtherTypeはEthernet側で上位プロトコルを識別します。

IPv4ヘッダ内のProtocolは、IPv4の上位プロトコルを識別する別のフィールドです。

パケットをLayerごとに読む

おすすめの順序:

1. 観測地点
2. 観測方向
3. Ethernet
4. 802.1Q
5. EtherType
6. ARP または IP
7. TTL / Hop Limit
8. ICMPなど上位内容
9. 要求と応答の対応

途中から読まない

いきなり、

Echo Replyがない

だけを見るのではなく、

どこで
どの方向で
何を対象に
取得したか

から確認します。

観測事実と推測を分ける

例:

観測事実:
Gi1/0/1 ingressでEcho Requestあり
Gi1/0/2 egressでEcho Requestなし

推測:
装置内部処理またはGi1/0/2側への転送条件に
追加確認が必要な可能性

です。

原因確定は別の確認情報が必要

パケットキャプチャは強い証拠になりますが、

1つの観測結果
=
根本原因確定

ではありません。

「存在した地点」を記録する

複数地点で調べる場合、

地点A Requestあり
地点B Requestあり
地点C Requestなし

のように記録します。

「存在しなくなった区間」を絞る

上の例なら、

地点Bから地点Cの間

を追加確認候補にできます。

RequestとReplyの表を作る

例:

観測地点 方向 要求 応答
送信側 egress あり —
受信側 ingress あり —
受信側 egress — あり
送信側 ingress — なし

この場合、往路要求は受信側まで観測できています。

復路応答は受信側で見える一方、送信側では見えていません。

復路候補範囲を絞る

前の例なら、

受信側 egress
~
送信側 ingress

の間を追加確認候補にできます。

VLANタグ比較の表

地点 方向 VLANタグ
トランク側 ingress VLAN 20あり
アクセスポート側 egress タグなし

これは、

観測地点ごとのフレーム状態が異なる

ことを示します。

MACアドレス比較の表

地点 Source MAC Destination MAC
Host A側 Host A R1
R1の次区間 R1 R2

同じIP通信でも、Ethernetヘッダがリンクごとに変わり得ることを確認できます。

TTL比較の表

地点 IPv4 TTL
地点A 63
地点B 62

同一パケットとして相関できるなら、地点間の転送でTTLが減少したことを確認する材料になります。

パケット未観測の扱い

パケットが見えない場合は、

未観測

という事実を先に記録します。

パケット未観測から直接言える範囲

例:

Gi1/0/2 egress
対象Echo Requestなし

なら、

その観測条件では
対象Echo Requestを観測していない

までです。

パケット未観測から直接言えないこと

その1件だけでは、

装置故障
リンク断
宛先停止
フィルタリング原因確定

までは証明できません。

観測地点の違いを確認する

別地点で見えた/見えないを比較することで、初めて範囲を絞れます。

Directionの違いを確認する

同じインターフェースでも、

ingressにはある
egressにはない

という差があるなら、装置内処理や転送判断の前後として追加確認できます。

RequestとReplyを混同しない

Requestあり
Replyなし

の場合、要求と応答は別方向・別イベントです。

RequestがあるからReplyも存在するとは限りません。

ARPとICMPを混同しない

ARPはL2隣接でのIPv4アドレスとMACアドレスの対応解決に使われます。

ICMP Echo RequestとICMP Echo ReplyはIP到達性確認で使われます。

別の役割です。

TTLとVLAN IDを混同しない

TTL
→ IPv4ヘッダ

VLAN ID
→ 802.1Qタグ

です。

Layerを分けて読みます。

EtherTypeとICMP Typeを混同しない

EtherType
→ Ethernetで上位プロトコルを識別

ICMP Type
→ ICMPメッセージ種別を識別

です。

問題での判断パターン

パターン1:最初に確認する条件

観測地点と観測方向

です。

パターン2:送信側でパケットを観測

直接言えるのは、

送信側のその観測地点でパケットを観測した

ことです。

宛先到達までは証明しません。

パターン3:同じインターフェースのingressとegress

見えるパケットが異なり得る理由は、

観測方向が異なる

ためです。

パターン4:ingressとegressで要求を比較

観測地点と観測方向を分けて比較

します。

パターン5:EthernetのL2送信元

確認するのは、

Source MAC Address

です。

パターン6:ルータ越え前後のMACアドレス

各観測地点のEthernetヘッダ

を比較します。

パターン7:VLAN ID 20のタグを観測

直接言えるのは、

その観測地点でVLAN 20のタグを持つフレームを観測した

ことです。

パターン8:トランク側でタグあり、アクセス側でタグなし

観測地点ごとのフレーム状態

として解釈します。

パターン9:EtherType 0x0806

ARP

として内容を確認します。

パターン10:ARP・IPv4・IPv6を分類

Ethernetヘッダの、

EtherType

を確認します。

パターン11:ARP Requestあり、Replyなし

直接言えるのは、

この観測条件ではARP Replyを観測していない

ことです。

パターン12:ARP RequestとReplyの両方あり

その観測地点でARPの要求と応答を観測した

と判断します。

パターン13:IPv4の送信元・宛先

観測したIPv4パケットの
L3送信元とL3宛先

を示します。

パターン14:想定と異なるSource IP

最初に、

観測したL3送信元が想定と異なる

という確認情報として扱います。

パターン15:IPv4 TTL

観測地点でのTTL残存値

として読みます。

TTLだけで全経路を一意に復元しません。

パターン16:IPv6 Hop Limit

観測したIPv6ヘッダのHop Limit値

として読みます。

パターン17:Echo RequestとEcho Replyの両方あり

その観測地点で
要求と応答の両方を観測した

と判断します。

パターン18:Echo Requestあり、Replyなし

この観測条件では
対応するEcho Replyを観測していない

と判断します。

パターン19:送信側egressでRequestあり、受信側ingressでRequestなし

両観測地点の間へ
追加確認範囲を絞る

ことができます。

パターン20:トラブルシューティングでの使い方

観測地点と方向を前提に
観測できたパケットから直接証明できる範囲だけ判断する

ことが基本です。

パターン21:EPC BufferでGi1/0/1 ingressにEcho Request

直接言えるのは、

Gi1/0/1 ingressで
Echo Requestを観測した

ことです。

パターン22:ARP Replyが見えず別地点で追加取得

目的は、

Replyがどこまで存在するか
Requestがどこまで到達するか

を追加確認することです。

よくある誤り

送信側で見えたから宛先到達と決める

送信側での観測は、その地点での存在を示します。

宛先側は別に確認します。

1地点で見えないからネットワーク全体に存在しないと決める

非観測は観測地点・方向・時間・フィルタ条件に依存します。

ARP Replyなしを対象ホスト停止と決める

Reply非観測の原因は複数あります。

Echo Replyなしを復路断と決める

Request未到達、Reply未生成、途中損失、フィルタリングなどもあり得ます。

VLANタグをエンドツーエンドで同じと決める

タグ状態は観測地点によって変わり得ます。

1地点のMACアドレスを全リンクへ当てはめる

L2ヘッダはルータ越えで変わり得ます。

TTLだけで通過ルータ数を確定する

初期TTLが不明なら一意に決まりません。

Hop Limitを絶対的な残りHop数として扱う

観測したIPv6パケットのフィールド値として読みます。

要求と応答を同じ方向として扱う

RequestとReplyは方向を分けて追跡します。

キャプチャ結果だけで根本原因を即断する

観測事実と原因仮説を分け、複数地点や別の確認情報と相関します。

切り分けの基本フロー

観測地点を確認
↓
観測方向を確認
↓
対象通信を確認
↓
Ethernetヘッダを読む
↓
802.1Qタグを読む
↓
EtherTypeで上位プロトコルを識別
↓
ARPまたはIPヘッダを読む
↓
TTL / Hop Limitを確認
↓
ICMPなど要求・応答を確認
↓
見えない場合は条件付き非観測として記録
↓
必要なら別地点で追加取得
↓
複数地点を相関して候補範囲を絞る

運用時に記録する情報

取得時刻
観測装置
観測インターフェース
観測方向
対象通信
Ethernet送信元MAC
Ethernet宛先MAC
VLAN ID
EtherType
IP送信元
IP宛先
TTL / Hop Limit
ICMP種別
Request有無
Reply有無

を残すと比較しやすくなります。

観測結果の記録例

観測地点: R1 Gi1/0/1
方向: ingress
時刻: 10:15:00

Ethernet:
  Source MAC: 00:11:22:33:44:55
  Destination MAC: 00:aa:bb:cc:dd:ee
  EtherType: 0x0800

IPv4:
  Source: 192.0.2.10
  Destination: 198.51.100.20
  TTL: 63

ICMP:
  Echo Requestあり

判断:

R1 Gi1/0/1 ingressで
192.0.2.10から198.51.100.20宛ての
ICMP Echo Requestを観測した。

ここから宛先到達までは証明しません。

複数地点比較の記録例

R1 Gi1/0/1 ingress
→ Echo Requestあり

R1 Gi1/0/2 egress
→ Echo Requestあり

R2 Gi1/0/1 ingress
→ Echo Requestなし

判断:

R1出口まではRequestを観測。
R2入口ではRequestを観測していない。
R1出口からR2入口の間を追加確認候補とする。

ARP比較の記録例

地点A
ARP Requestあり
ARP Replyなし

地点B
ARP Requestあり
ARP Replyあり

判断:

地点BではARP Replyを観測。
地点AではReplyを観測していない。
Replyが地点Bから地点Aまで戻る範囲を追加確認する。

ICMP比較の記録例

受信側
Echo Requestあり
Echo Replyあり

送信側
Echo Requestあり
Echo Replyなし

判断:

受信側ではReply生成後の通信を観測。
送信側ではReplyを観測していない。
復路の両地点間を追加確認候補とする。

VLANタグ比較の記録例

トランク側
VLAN 20タグあり

アクセスポート側
同じタグなし

判断:

観測地点ごとにフレーム状態が異なる。
VLANタグの有無だけで異常と即断しない。

TTLとHop Limitの記録例

IPv4:

地点A TTL 63
地点B TTL 62

IPv6:

地点A Hop Limit 63
地点B Hop Limit 62

同一通信として相関できる場合、経路を進む中で値が減少したことを確認する材料になります。

直接証明できること

パケットキャプチャから直接証明できるのは、

その観測地点で
その観測方向に
その条件に一致するパケットを
観測した

という事実です。

直接証明できないこと

1地点の観測だけでは、

エンドツーエンド全体の到達性
往路と復路の完全な経路
宛先アプリケーション正常性
観測地点外のパケット存在
非観測パケットの根本原因

までは証明できません。

最終判断の型

1. 観測地点を固定する
2. 観測方向を固定する
3. L2ヘッダを読む
4. 802.1Qタグを読む
5. EtherTypeで上位プロトコルを決める
6. ARPまたはIPヘッダを読む
7. TTL / Hop Limitを観測値として読む
8. Request / Replyを分ける
9. 非観測を原因確定に使わない
10. 複数地点を相関して範囲を絞る

まとめ

パケットキャプチャは、観測地点と観測方向に依存する確認情報です。

最初に、

どこで
どの方向を
観測したか

を確認します。

Ethernetでは、

Source MAC Address
Destination MAC Address
EtherType

を読み、必要に応じて802.1Qタグを確認します。

EtherTypeから、

ARP
IPv4
IPv6

などの上位プロトコルを識別します。

ARPでは、

Request
Reply

を分け、Replyが見えなくても対象ホスト停止と即断しません。

IPでは、

送信元
宛先
TTL
Hop Limit

を確認します。

TTLやHop Limitは観測地点での値であり、単一地点の値だけから全経路を一意に復元しません。

ICMPでは、

Echo Request
Echo Reply

を対応付けて読みます。

Replyが見えない場合でも、

宛先未到達
Reply未生成
復路途中損失
フィルタリング
観測条件

などを区別できないため、非観測だけで原因を確定しません。

最も重要なのは、

地点Aでは存在
地点Bでは存在
地点Cでは非観測

のように複数地点を相関させ、パケットを観測できる範囲と観測できなくなる範囲を絞ることです。

パケットキャプチャは、観測事実を非常に細かく確認できる一方で、1地点の結果をネットワーク全体へ広げず、直接証明できる範囲だけを判断することが重要です。

理解確認

このページの内容を15問で確認します。

理解確認15問へ →