MPLS Ping/Tracert (MPLS Echo)报文
MPLS Echo消息封装在IPv4/IPv6的UDP报文中,可能还带有MPLS标签。MPLS Echo使用的UDP端口号为3503(这是IANA为MPLS Echo请求所定义的值),只有使能MPLS的路由器才能够识别该端口号。
MPLS Ping/Tracert (MPLS Echo)报文封装
+---------------------------------------+
| MPLS Echo PDU |
+---------------------------------------+
| UDP header |
+---------------------------------------+
| IPv4/IPv6 header |
+---------------------------------------+
| One or more MPLS headers (Optional) |
+---------------------------------------+
| Link layer header |
+---------------------------------------+
| Physical layer header |
+---------------------------------------+
MPLS Echo消息分为两种:Echo请求消息和Echo回应消息。
MPLS Echo请求消息中,源IP地址为发送端的IP地址,目的IP是个127/8网段的IPv4地址或者0:0:0:0:0:FFFF:127/104网段的IPv6地址;IP TTL设置为1。UDP源端口号为发送端自行选择的端口号,目的端口号设置为3503。IP头必须携带Router Alert选项并置位。
MPLS Echo请求消息携带了待测试的FEC所对应的标签栈。
在MPLS Ping中,最外层标签的TTL值设置为255;MPLS Tracert中,最外层标签的TTL值分别设置为1、2、3……。MPLS LSP Traceroute和传统的Traceroute类似,通过连续发送一个TTL步进为1的Echo Request报文,让LSP沿途的每一个LSR都收到TTL超时的Echo Request报文,同时回送一个携带下游信息(可选)以及相应返回码的Echo Reply给发送者。这样发送者就会得到该LSP沿途每一个节点的信息。
MPLS Ping/Tracert (MPLS Echo)报文
MPLS LSP Ping/Tracert通过发送MPLS Echo消息实现。
MPLS LSP Echo报文格式
+0--------------7--------------15--------------23-------------31
| Version Number | Must Be Zero |
+--------------------------------------------------------------+
| Message Type | Reply mode | Return Code | Return subcode|
+--------------------------------------------------------------+
| Sender's Handle |
+--------------------------------------------------------------+
| Sequence Number |
+--------------------------------------------------------------+
| Timestamp(Sent seconds) |
+--------------------------------------------------------------+
| Timestamp(Sent microseconds) |
+--------------------------------------------------------------+
| Timestamp(Received seconds) |
+--------------------------------------------------------------+
| Timestamp(Received microseconds) |
+--------------------------------------------------------------+
| TLVs(...) |
+--------------------------------------------------------------+
MPLS LSP Echo报文字段含义
| 字段 | 长度 | 含义 |
|---|---|---|
| Version Number | 2B | 标识MPLS Echo的版本号,目前为1。 |
| Must Be Zero | 2B | 必须填全0,接收时忽略。. |
| Message Type | 1B | 标识该MPLS Echo消息的类型:1: MPLS Echo请求消息2: MPLS Echo响应消息 |
| Reply mode | 1B | 指示Reply Router采用什么方式回应这个消息: 1: Do Not Reply 2: Reply via an IPv4 UDP Packet 3: Reply via an IPv4 UDP packet with Router Alert |
| Return Code | 1B | 发送端设置为0,接收端可以设置详见(摘自): |
| Return subcode | 1B | 该字段包含了标签栈的处理结束的指针。如果其值为0,标识报文没有携带标签,不需要处理标签。否则,报文携带了标签。 |
| Sender's Handle | 4B | 发送者句柄,是用来标识一个MPLS Echo的,其值是在应用程序发送一个MPLS Echo Request时随机生成的。单次的LSP Ping操作可以产生多个Echo Request,但是这些Echo Request所包含的Sender’s Handle的值是相同,即单次LSP Ping操作仅能产生一个Sender’s Handle的Echo Request。 |
| Sequence Number | 4B | 序列号,用来标识MPLS Echo的,它是一个进程的概念,进程内有效,可以用来检测丢失的Reply的个数,从而可以对网络进行延时和抖动统计。单次LSP Ping操作可以产生多个Sequence Number,其值一般从零开始逐一递增。 |
| Timestamp | 4B | 时间戳,采用NTP协议的时间格式,包含两部分:收到的时间戳和发送时间戳;可以用来计算报文从一个节点到另一个节点所需要花费的时间。 |
| TLVs | 可变 | TLV (Type, Length, Value),类型值及对应的含义详见(摘自):, Length: Value字段的长度,以字节为计数单位。Value: 取决于Type的取值,如果TLV不足4字节的整数倍,需要填充。 |
Return Code
| Code | 类型 | 含义 |
|---|---|---|
| 0 | No return code | |
| 1 | Malformed Echo Request Received | |
| 2 | One Or More of the TLVs Was Not Understood | |
| 3 | Replying Router Is an Egress for the FEC at stack-depth <RSC> | |
| 4 | Replying Router Has No Mapping for the FEC at stack-depth <RSC> | |
| 5 | Downstream Mapping Mismatch | |
| 6 | Upstream Interface Index Unknown | |
| 7 | Reserved |
MPLS LSP Echo TLV Code
| Code | 类型 | 含义 |
|---|---|---|
| 1 | Target FEC Stack TLV | |
| 2 | Downstream mapping TLV | |
| 3 | PAD TLV | |
| 4 | Error Code TLV | |
| 5 | Vendor Enterprise Code TLV |
TLV (Type, Length, Value),类型值及对应的含义详见(摘自):, Length: Value字段的长度,以字节为计数单位。Value: 取决于Type的取值,如果TLV不足4字节的整数倍,需要填充。
参考标准
| 标准 | 描述 |
|---|---|
| Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures | |
| Operations and Management (OAM) Requirements for Multi-Protocol Label Switched (MPLS) Networks | |
| Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires | |
| Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP) |
No comments to display
No comments to display