6. 错误处理 (Error Handling)
本节针对这里说明的错误条件及其处理方式, 对 RFC 4271 [RFC4271] 进行更新.
鉴于过渡期间二字节 AS 号占主导地位, 并由 OLD BGP speaker 在 AS_PATH 属性中承载, 本文档选择使用 "attribute discard" 方法来处理格式错误的 AS4_PATH 属性.
类似地, 由于 AS4_AGGREGATOR 仅提供信息, 本文档选择使用 "attribute discard" 方法来处理格式错误的 AS4_AGGREGATOR 属性.
AS4_PATH 属性和 AS4_AGGREGATOR 属性 MUST NOT 在 NEW BGP speaker 之间的 UPDATE 消息中承载. 如果 NEW BGP speaker 在来自另一个 NEW BGP speaker 的 UPDATE 消息中收到 AS4_PATH 属性或 AS4_AGGREGATOR 属性, 它 MUST 丢弃该路径属性并继续处理 UPDATE 消息. 这种情况 SHOULD 在本地记录以供分析.
此外, 路径段类型 AS_CONFED_SEQUENCE 和 AS_CONFED_SET [RFC5065] MUST NOT 在 UPDATE 消息的 AS4_PATH 属性中承载. 如果 NEW BGP speaker 在来自 OLD BGP speaker 的 UPDATE 消息的 AS4_PATH 属性中收到这些路径段类型, 它 MUST 丢弃这些路径段, 相应调整相关属性字段, 并继续处理 UPDATE 消息. 这种情况 SHOULD 在本地记录以供分析.
在以下条件下, UPDATE 消息中的 AS4_PATH 属性 SHALL 被视为格式错误:
- 属性长度不是二的倍数, 或者对于承载至少一个 AS 号而言过小 (即小于 6), 或
- 属性中的路径段长度为零, 或与属性长度不一致, 或
- 属性中的路径段类型不是已定义类型之一: AS_SEQUENCE, AS_SET, AS_CONFED_SEQUENCE, AS_CONFED_SET.
如果 NEW BGP speaker 在来自 OLD BGP speaker 的 UPDATE 消息中收到格式错误的 AS4_PATH 属性, 它 MUST 丢弃该属性并继续处理 UPDATE 消息. 该错误 SHOULD 在本地记录以供分析.
如果 UPDATE 消息中的 AS4_AGGREGATOR 属性长度不是 8, 则该属性 SHALL 被视为格式错误.
如果 NEW BGP speaker 在来自 OLD BGP speaker 的 UPDATE 消息中收到格式错误的 AS4_AGGREGATOR 属性, 它 MUST 丢弃该属性并继续处理 UPDATE 消息. 该错误 SHOULD 在本地记录以供分析.