6.1.4. Map-Reply Message Format (Map-Reply 消息格式)
6.1.4. Map-Reply Message Format (Map-Reply 消息格式)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Type=2 |P|E|S| Reserved | Record Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Nonce . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . . . Nonce |
+-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Record TTL |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
R | Locator Count | EID mask-len | ACT |A| Reserved |
e +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
c | Rsvd | Map-Version Number | EID-Prefix-AFI |
o +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
r | EID-Prefix |
d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| /| Priority | Weight | M Priority | M Weight |
| L +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| o | Unused Flags |L|p|R| Loc-AFI |
| c +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| \| Locator |
+-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
数据包字段描述:
Type: 2 (Map-Reply)
P: 这是 probe-bit (探测位), 表示 Map-Reply 是对 Locator 可达性探测 Map-Request 的响应。'Nonce' 字段必须包含原始 Map-Request 中 nonce 值的副本。有关更多详细信息, 请参见第 6.3.2 节。
E: 此位表示发送此 Map-Reply 消息的 ETR 正在宣告该站点已启用 Echo-Nonce Locator 可达性算法。有关更多详细信息, 请参见第 6.3.1 节。
S: 这是 Security bit (安全位)。当设置为 1 时, 以下认证信息将附加到 Map-Reply 的末尾。Authentication Data Content 的详细格式有待进一步研究。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AD Type | Authentication Data Content . . . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved: 此字段在传输时必须设置为 0, 在接收时必须忽略。
Record Count: 这是此回复消息中的记录数。记录由上面标记为 'Record' 的数据包部分组成, 出现的次数等于 Record Count。
Nonce: 这是在 Data-Probe 数据包中设置的 24 位值, 或者从 Map-Request 中回显在 Map-Reply 的 'Nonce' 字段中的 64 位值。当提供 24 位值时, 它位于 'Nonce' 字段的低位 64 位中。
Record TTL: 这是 Map-Reply 接收者存储映射的时间 (以分钟为单位)。如果 TTL 为 0, 则应立即从缓存中删除该条目。如果值为 0xffffffff, 则接收者可以在本地决定存储映射的时间。
Locator Count: 这是 Locator 条目的数量。Locator 条目包括上面标记为 'Loc' 的部分。Locator count 可以为 0, 表示 EID-Prefix 没有 Locator。
EID mask-len: 这是 EID-Prefix 的掩码长度。
ACT: 此 3 位字段描述 Negative Map-Reply 操作。在任何其他消息类型中, 这些位设置为 0 并在接收时忽略。这些位仅在 'Locator Count' 字段设置为 0 时使用。操作位仅在 Map-Reply 消息中编码。这些操作由 ITR 或 PITR 在目标 EID 匹配 negative Map-Cache 条目时使用。未分配的值应导致创建 Map-Cache 条目, 当数据包匹配此 negative cache 条目时, 它们将被丢弃。当前分配的值为:
(0) No-Action: map-cache 保持活动状态, 不进行数据包封装。
(1) Natively-Forward: 数据包不进行封装或丢弃, 而是本地转发。
(2) Send-Map-Request: 数据包调用发送 Map-Request。
(3) Drop: 匹配此 map-cache 条目的数据包被丢弃。应发送 ICMP Destination Unreachable 消息。
A: Authoritative bit (权威位), 发送时始终由 ETR 设置为 1。当 Map-Server 为 LISP 站点代理 Map-Replying [RFC6833] 时, Authoritative bit 设置为 0。这向请求的 ITR 指示 Map-Reply 不是由拥有 EID-Prefix 的站点管理的 LISP 节点发起的。
Map-Version Number: 当此 12 位值非零时, Map-Reply 发送者通知 ITR Map-Reply 中包含的 EID 记录的版本号是什么。ETR 可以在内部分配此号码, 但必须与站点的其他 ETR 协调此值。当此值为 0 时, 不传达版本信息。Map-Version Number 可以包含在 Map-Request 和 Map-Register 消息中。有关更多详细信息, 请参见第 6.6.3 节。
EID-Prefix-AFI: 根据 [AFI] 的 EID-Prefix 地址族。
EID-Prefix: 对于 IPv4 地址族, 此前缀为 4 个八位字节, 对于 IPv6 地址族为 16 个八位字节。
Priority: 为每个 RLOC 分配一个单播 Priority。较低的值更可取。当多个 RLOC 具有相同的 Priority 时, 它们可以以负载分担方式使用。值 255 表示 RLOC 不得用于单播转发。
Weight: 当多个 RLOC 的优先级相同时, Weight 表示如何在它们之间平衡单播流量。Weight 编码为匹配映射条目的总单播数据包的相对权重。例如, 如果 Locator-Set 中有 4 个 Locator, 其中分配的 Weight 为 30, 20, 20 和 10, 则第一个 Locator 将获得 37.5% 的流量, 第二和第三个 Locator 将获得 25% 的流量, 第四个 Locator 将获得 12.5% 的流量。如果 Locator-Set 的所有 Weight 相等, 则 Map-Reply 的接收者将决定如何负载分配流量。有关建议的哈希算法, 请参见第 6.5 节, 以在具有相同 Priority 和相等 Weight 值的 Locator 之间分配负载。
M Priority: 为每个 RLOC 分配一个组播 Priority, 由接收者组播站点中的 ETR 用于在源组播站点中选择 ITR 以构建组播分发树。值 255 表示 RLOC 不得用于加入组播分发树。有关更多详细信息, 请参见 [RFC6831]。
M Weight: 当多个 RLOC 的优先级相同时, Weight 表示如何在多个 ITR 之间平衡构建组播分发树。Weight 编码为相对权重 (类似于单播 Weight), 即构建到由 EID-Prefix 标识的源站点的树的总数。如果 Locator-Set 的所有 Weight 相等, 则 Map-Reply 的接收者将决定如何在 ITR 之间分配组播状态。有关更多详细信息, 请参见 [RFC6831]。
Unused Flags: 这些在发送时设置为 0, 在接收时忽略。
L: 当设置此位时, Locator 被标记为发送 Map-Reply 的 ETR 的本地 Locator。当 Map-Server 为 LISP 站点执行代理 Map-Replying [RFC6833] 时, 对于此 Locator-Set 中的所有 Locator, L-bit 设置为 0。
p: 当设置此位时, ETR 通知 RLOC-Probing ITR, 设置此位的 locator 地址是正在被 RLOC-probed 的地址, 并且可能与 Map-Reply 的源地址不同。对特定 Locator 进行 RLOC-probe 的 ITR 必须使用此 Locator 来检索用于存储 Locator 可达事实的数据结构。p-bit 在同一 Locator-Set 中为单个 Locator 设置。如果实现错误地设置了多个 p-bit, Map-Reply 的接收者必须选择第一个 Locator。对于在 Map-Request 和 Map-Register 消息中发送的 Locator-Set 记录, 不得设置 p-bit。
R: 当 Map-Reply 的发送者有到 Locator 数据记录中 Locator 的路由时设置此位。接收者可能会发现这对于知道 Locator 是否已启动但不一定从接收者的角度可达很有用。另请参见第 6.4 节了解使用 R-bit 的另一种方式。
Locator: 这是分配给 ETR 的 IPv4 或 IPv6 地址 (由 'Loc-AFI' 字段编码)。请注意, 目标 RLOC 地址可以是 anycast 地址。源 RLOC 也可以是 anycast 地址。源或目标 RLOC 不得是广播地址 (255.255.255.255 或路由器已知的任何子网广播地址), 并且不得是链路本地组播地址。源 RLOC 不得是组播地址。如果从组播目标 EID 映射, 则目标 RLOC 应该是组播地址。