摘要
- RFC 2333 明确把 NHRP 放在路由决策之后:它解析适合的 NBMA 下一跳,但不替代路由协议,也不执行端到端可达测试。
- 是否值得建立捷径,取决于拓扑、建链成本、应用需求、NHRP 覆盖范围和环路安全;“适用”只代表值得尝试,不代表捷径已经存在。
- 登记成功、权威解析答复和缓存命中分别记录有限的控制面状态,必须结合来源、策略、Holding Time、刷新与清除信息理解。
- 在 ATM 上,获得地址之后仍可能需要建立虚电路;建链、双向转发、远端服务和应用结果都有各自的证明责任。
- 运维判断应按路由、适用性、映射、连接、数据面、服务和应用逐层推进,不能用前一层的“绿色”替后一层结案。
最像成功的那条记录,只回答了一个问题
NHRP 的界面状态很容易诱导过度解释。
当一条缓存记录显示目标 IP、下一跳 NBMA 地址、权威标志和剩余时间时,人们自然会把它概括为“下一跳已经通了”。但 RFC 2333 的问题不是“这一行字段齐不齐”,而是“NHRP 在什么环境下适合被使用”。
适用性说明先划定功能,再讨论机制。
网络可能非常适合使用 NHRP,却还没有任何客户端发起解析。客户端可能拿到一份正确映射,却没有建立底层连接。虚电路可能成功建立,IP 转发仍可能受到过滤、回程或 MTU 问题影响。主机可能在网络层响应,而应用进程已经停止。
因此,缓存记录不是缩小版的端到端结果。它是下一步行动的输入。
路由先说“往哪里走”
RFC 2333 直接指出,NHRP 不是路由协议。
源站先通过普通网络层路由确定到达目的地的下一跳。如果这条路径经过 NBMA 接口,且本地没有可用映射,源站才可能发起 NHRP Resolution Request。目的地位于同一个逻辑 NBMA 网络时,答复可以给出目的站自身地址;目的地在外部时,答复给出当前出口路由器的 NBMA 地址。
当 NHRP 借助动态路由工作时,返回的出口反映的是路由系统已经作出的选择。
这并不证明该出口在所有维度上最优。原有路径跳数较少,不等于时延最低、拥塞最小、成本最低或故障域最独立。NHRP 也不为路由算法的政策和数据来源背书。
更重要的是,解析结果属于某个路由时期。度量或拓扑快速变化时,捷径可能很快过时。RFC 2333 还警告:在某些路由器到路由器的场景中,如果底层路由丢失抑制环路所需的信息,NHRP 捷径可能形成持续转发环路。
映射继承了路由决策,却不能把那项决策永久冻结。
捷径不是默认真理,而是一笔成本账
经典 IP over ATM 以 LIS 为边界。
同一 LIS 内的站点可以通过 ATMARP 完成 IP 到 ATM 地址解析。不同 LIS 的站点即使共享一张物理 ATM 网络,通常也要经过 IP 路由器。NHRP 的价值在于越过这个逻辑限制:它可以解析跨 LIS 的目标或出口地址,让数据在同一逻辑 NBMA 网络中绕过部分中间路由器。
这不代表每个流都应建立捷径。
面向连接的底层需要信令、接口资源和持续状态。一次很短、没有特殊 QoS 要求的通信,可能在捷径建好之前就结束。捷径成本可以是时间、设备负担,也可以是实际费用。RFC 2333 因而把决定放在应用需求与运营策略附近。
“本环境适合 NHRP”回答的是机制是否合理;“此刻为这条流建立捷径”还需要一次具体决策。
谁可以发起,决定了网络会长出多少状态
普通 IP 包可能在捷径建立前已经经过多个节点。
如果沿途每个理解 NHRP 的节点都为同一流量发起解析,网络会形成多条重复捷径。RFC 2333 建议把发起权限制给三类主体:有 NBMA 接口的源主机、路径上第一个可通过 NBMA 接口到达其下一跳的路由器,或者流量必须经过的策略路由器。
这是一条状态治理规则。
它不保证发起者一定成功,而是界定谁有资格让底层为某段流量承担新的连接与缓存成本。发起权如果没有边界,一项优化就可能成为状态放大器。
路由器到路由器,是最清楚的停止线
RFC 2333 把 host-host、host-router 和 router-host 列入基本适用场景。router-router 则暴露了更深的限制。
当路由协议的路径信息在自治系统边界等位置发生变化时,基本 NHRP 可能缺少抑制环路所需的上下文。适用性说明只为一种更安全的特例开门:目的主机稳定地直接邻接出口路由器的非 NBMA 接口。
Q bit 表示请求者是路由器。如果目的地不满足稳定直连条件,出口路由器可以返回 NAK,让数据继续走普通路由路径。
这份否定答复不是可达性失败。它拒绝的是一项尚未证明安全的优化。
把 NAK 直接计入“网络不可达”,会抹去协议最重要的保护动作:捷径不成立时,保留权威清晰的原路径。
登记 ACK 只证明服务器接受了映射
RFC 2332 允许 NHRP Client 向 serving NHS 登记自己的协议地址与 NBMA 地址。
服务器收到 Registration Request 后要进行错误检查和策略判断。它可能因为不能服务该地址、资源不足、管理策略禁止或唯一性冲突而返回 NAK。
成功的 Registration Reply 有明确价值:NHS 在当时条件下接受了这份映射信息。
它没有探测远端应用,也没有自动建立端到端虚电路。它不能证明所有 NHS 已经同步,更不能保证路由仍会把请求送到相同的逻辑域。
登记还必须刷新。规范建议客户端按 Holding Time 的一定比例重发,以便即使偶尔丢包也能维持条目。需要持续续期的状态,本身就承认其权威会随时间衰减。
ACK 是一次受理收据,不是存活证明。
“权威答复”中的权威有明确对象
NHRP 区分 authoritative 与 non-authoritative resolution information。
客户端可以要求由服务于目标的 NHS 给出权威答复。中转 NHS 在被允许时,也可能用自己的缓存返回非权威信息。这个区别帮助接收者判断答复来自谁、与目标有什么服务关系。
但权威范围仍然只是地址映射。
即使答复来自正确的 serving NHS,它也不能代替 ATM 信令判断资源是否充足,不能证明 closed user group 或地址过滤允许直接通信,不能确认回程,不能检查远端服务端口。
“权威”不是“全知”。它表示该服务器有资格回答这一项映射,而不是有资格替后续所有层宣告成功。
一张缓存表,实际混合了多种来源
RFC 2332 没有规定缓存只能从一种路径产生。
NHS 可以从登记、Resolution Request/Reply、预配置表、ARP 或规范之外的机制获得映射。NHC 也可以从解析答复、人工配置或其他机制填充本地缓存。
如果界面只展示“存在”,这些来源差异会全部消失。
RFC 2677 提供了更完整的观察字段:缓存类型、用途、Holding Time 是否有效、剩余时间、协商 MTU 等。学习得到的条目在倒计时归零后应被删除;人工配置条目的 Holding Time 则可能没有定义,因为它可以由非易失配置支撑。
相同的地址对因此可能代表完全不同的证据链。刚收到的权威答复、SCSP 同步来的副本、人工写入的静态项和缓存的负面答复,不应被同一个“绿色”覆盖。
缓存表保存声明,不直接观察数据包。
多台服务器一致,不等于外部现实仍然一致
SCSP 解决的是服务器之间的缓存同步问题。RFC 2335 把这套机制用于分布式 NHRP 服务。
多个 NHS 共享信息,可以让请求落到不同服务器时仍获得相对一致的结果。这对可扩展性和运营稳定性有价值。
但是,同步没有产生新的端点观测。
如果源信息已经陈旧,复制可以让更多服务器一致地陈旧。服务器之间的共识证明复制成功,不证明外部主机仍在原地址,也不证明电路和转发有效。
RFC 2332 因此还定义 Purge Request 来使缓存失效,并规定环路、协议地址不可达、无效答复、认证失败、跳数超限等错误。控制面状态天然需要拒绝、清除和重建。
地址解析之后,底层才开始回答自己的问题
RFC 2332 对面向连接与无连接 NBMA 的区别写得很清楚。
在 SMDS 一类无连接环境中,获得地址后可以开始发送。在 ATM 一类面向连接环境中,源站可能还要建立具有所需带宽的连接。
所以,“resolved”从来不等于“connected”。
建链可能因为资源、策略或远端接口而失败。连接可能建立,却没有正确的 IP 转发或回程。数据包可能双向通过,而应用认证、事务或业务语义仍然失败。
这些事件由不同组件观察,必须分别取证。
普通路由路径是连续性,不是落后的失败模式
当某个数据包触发解析时,源站可以丢弃它、暂存它,或继续沿路由路径发送。RFC 2332 推荐把沿原路径转发作为默认选择,因为解析期间数据仍可能到达。
如果 NHRP Request 遇到不支持 NHRP 的路由器,请求可能被静默丢弃。捷径无法形成,但逐跳连接仍可维持。
这说明 NHRP 的目标是优化路径,不是取代基本连通性。
NHRP 失败而业务正常,与 NHRP 状态正常而业务失败,都是合理且必须被监控系统表达的组合。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
