はじめに
本ドキュメントでは、Resource reSerVation Protocol(RSVP)の、16 進数データを含んだエラーメッセージの読み取り方について記載します。
RSVP 関連のエラーメッセージとともに、次の例のような 16 進数データを含んだエラーメッセージが出力される場合があります。
※ 弊社環境(IOS XE 16.08.01b)の出力例をもとに記載しています。
出力例
09:00:00.000 JST: %RSVP-3-IP_HDR: 46C00180 0BFC0000 FE2EC0B4 C0A80101 C0A80A01 94040000 10010000 FF000168
09:00:00.001 JST: %RSVP-3-MSG_1: 10010000 FF000168 00100107 C0A80A01 000000A9 C0A80101 000C0301 C0A8640A
09:00:00.001 JST: %RSVP-3-MSG_2: 00000018 00080501 00007530 002C1401 0108C0A8 64012000 0108C0A8 C8012000
エラーメッセージの詳細については、次のページを参照してください。
System Error Messages Guide For Access and Edge Routers, Cisco IOS XE Gibraltar 16.10.1
16 進数データから IP アドレスやトンネル ID を読み取ることで、トラブルシューティングの一助となる場合があります。
%RSVP-3-IP_HDR 部
IP ヘッダーのフォーマットに合わせて確認してください。(RFC 791 - 3.1. Internet Header Format 参照)
Source IP アドレスと Destination IP アドレスが確認できます。
出力例
%RSVP-3-IP_HDR: (1)46C00180 (2)0BFC0000 (3)FE2EC0B4 (4)C0A80101 (5)C0A80A01 (6)94040000 (7)10010000 (8)FF000168
2 進数表示
(1) 0100/0110/ 11000000/ 00000001 10000000
(2) 00001011 11111100/ 000/00000 00000000
(3) 11111110/ 00101110/ 11000000 10110100 --> Protocol = 46 (RSVP)
(4) 11000000.10101000.00000001.00000001 --> Source IP = 192.168.1.1
(5) 11000000.10101000.00001010.00000001 --> Destination IP = 192.168.10.1
(6) 10010100 00000100 00000000 00000000
(7) 00010000 00000001 00000000 00000000
(8) 11111111 00000000 00000001 01101000
※ ( )内の数字や太字は、16 進数と 2 進数で対応させています。
※ フォーマットの区切りに合わせて「 / 」で区切っています。
%RSVP-3-MSG 部
出力例
%RSVP-3-MSG_1: (1)10010000 (2)FF000168 (3)00100107 (4)C0A80A01 (5)000000A9 (6)C0A80101 (7)000C0301 (8)C0A8640A
%RSVP-3-MSG_2: (9)00000018 (10)00080501 (11)00007530 (12)002C1401 (13)0108C0A8 (14)64012000 (15)0108C0A8 (16)C8012000
最初の 8 Byte は、RSVP Common Header です。
Msg Type が確認できます。(RFC 2205 - 3.1 RSVP Message Formats 参照)
出力例では Msg Type = 1 なので、PATH メッセージであることがわかります。
(1) 0001/0000/ 00000001/ 00000000 00000000 --> Msg Type = 1 (PATH)
(2) 11111111/ 00000000/ 00000001 01101000 --> Send_TTL = 255, RSVP Length = 360
Common Header の後には、各種 Object(Object Header と Object Contents のセット)が繰り返されます。
どのタイプの Object なのかは、各 Object Header(4 Byte)の Class と C-Type から判断できます。
次の出力例は、Class = 1, C-type = 7 なので、LSP_TUNNEL_IPv4 Session Object です。
(各 Class ごとのフォーマットは、RFC 2205 - APPENDIX A、RFC 3209、他 参照)
Tunnel ID などが確認できます。
LSP_TUNNEL_IPv4 Session Object(Class = 1, C-type = 7)
Object Header
(3) 00000000 00010000/ 00000001/ 00000111 --> Length = 16, Class = 1 (SESSION), C-type = 7
Object Contents
(4) 11000000.10101000.00001010.00000001 --> Tunnel End Point IP = 192.168.10.1
(5) 00000000 00000000/ 00000000 10101001 --> Tunnel ID = 169
(6) 11000000.10101000.00000001.00000001 --> Extended Tunnel ID = 192.168.1.1
詳細は記載しませんが、出力例ではその後以下の Object が続いています。
続く Object は、Msg Type によって異なります。
IPv4 RSVP_HOP Object(Class = 3, C-type = 1)
Object Header
(7) 00000000 00001100/ 00000011/ 00000001 --> Length = 12, Class = 3 (RSVP_HOP), C-type = 1
Object contents
(8) 11000000.10101000.01100100.00001010 --> Next/Previous Hop IP = 192.168.100.10
(9) 00000000 00000000 00000000 00011000 --> Logical Interface Handle
TIME_VALUES Object(Class = 5, C-type = 1)
Object Header
(10) 00000000 00001000/ 00000101/ 00000001 --> Length = 8, Class = 5 (TIME_VALUES), C-type = 1
Object Contents
(11) 00000000 00000000 01110101 00110000 --> Refresh Period
EXPLICIT_ROUTE Object(Class = 20, C-type = 1)
Object Header
(12) 00000000 00101100/ 00010100/ 00000001 --> Length = 44, Class = 20 (ERO), C-type = 1
Object Contents
- Subobject
(13) 0/0000001/ 00001000/ 11000000.10101000. --> IP = 192.168.
(14) 01100100.00000001/ 00100000/ 00000000 --> 100.1
- Subobject
(15) 0/0000001/ 00001000/ 11000000.10101000. --> IP = 192.168.
(16) 11001000.00000001/ 00100000/ 00000000 --> 200.1
実際のデータはこの後も続きますが、エラーメッセージとしての出力はここまでです。
今回は出力例の説明に必要な RFC のみを記載しているので、Class と C-Type の組み合わせが見つからない場合は、他の RSVP 関連 RFC を確認してください。
備考
このドキュメントの内容は予告なく変更される場合があります。
参考情報
System Error Messages Guide For Access and Edge Routers, Cisco IOS XE Gibraltar 16.10.1
RFC 791 - INTERNET PROTOCOL
RFC 2205 - Resource ReSerVation Protocol(RSVP)
RFC 3209 - RSVP-TE: Extensions to RSVP for LSP Tunnels