跳到主要内容

6.1.3. EID-to-RLOC UDP Map-Request Message

6.1.3. EID-to-RLOC UDP Map-Request Message

当 ITR 需要 EID 的映射、想要测试 RLOC 的可达性或想要在 TTL 过期前刷新映射时, 会发送 Map-Request。对于初始情况, Map-Request 使用的目标 IP 地址是映射缓存查找失败的数据包目标地址 (即目标 EID)。对于后两种情况, Map-Request 使用的目标 IP 地址是 Map-Cache 条目 Locator-Set 中的一个 RLOC 地址。源地址分别是 IPv4 或 IPv6 RLOC 地址, 取决于 Map-Request 使用的是 IPv4 还是 IPv6 头部。在所有情况下, Map-Request 消息的 UDP 源端口号是 ITR/PITR 选择的 16 位值, UDP 目标端口号设置为众所周知的目标端口号 4342。成功的 Map-Reply (即具有与未完成 Map-Request nonce 匹配的 nonce 的 Map-Reply) 将更新与 EID-Prefix 范围关联的缓存 RLOC 集。

ITR 必须填写一个或多个 Map-Request ('ITR-RLOC-AFI', 'ITR-RLOC-Address') 字段。编码的字段数量 (减 1) 必须放在 'IRC' 字段中。ITR 可以在此列表中包含所有本地配置的 Locator, 或仅提供它支持的每个地址族的一个 locator 地址。如果 ITR 错误地不提供 ITR-RLOC 地址, Map-Replier 必须丢弃 Map-Request。

当从 ITR 发送到 Map-Resolver 时, Map-Request 也可以使用 UDP 目标端口 4342 和 LISP Type 值设置为 "Encapsulated Control Message (封装控制消息)" 进行 LISP 封装。同样, Map-Request 从 Map-Server 到 ETR 也以相同方式进行 LISP 封装。有关封装 Map-Request 和 Map-Resolver 的详细信息, 请参见 [RFC6833]。

Map-Request 必须进行速率限制。建议对同一 EID-Prefix 的 Map-Request 发送频率不超过每秒一次。

配置了映射数据库信息 (即它也是 ETR) 的 ITR 可以选择在 Map-Request 中包含这些映射。当配置为接受和验证此类 "piggybacked (背负)" 映射数据的 ETR 收到此类 Map-Request 且在 map-cache 中没有此映射时, 它可以发起 "verifying Map-Request (验证 Map-Request)", 该请求发送到请求映射的 ITR, 并且 ETR 可以添加 Map-Cache 条目。如果 ETR 具有与 "piggybacked" EID 匹配的 Map-Cache 条目, 并且 RLOC 在该条目的 Locator-Set 中, 那么它可以将 "verifying Map-Request" 直接发送到原始 Map-Request 源。如果 RLOC 不在 Locator-Set 中, 则 ETR 必须将 "verifying Map-Request" 发送到 "piggybacked" EID。这样做会强制 "verifying Map-Request" 通过映射数据库系统到达有关该 EID 的权威信息源, 防止 "piggybacked" 映射数据中的 RLOC 欺骗。