本节书摘来自异步社区《CCNP ROUTE 300-101认证考试指南》一书中的第2章,第2.7节NHRP,作者 【美】Kevin Wallace(凯文 华莱士),更多章节内容可以访问云栖社区“异步社区”公众号查看
2.7 NHRP
CCNP ROUTE 300-101认证考试指南
DMVPN要求路由器运行下一跳解析协议(NHRP),这项协议使用的是客户端/服务器模型。被指定为中心的路由器会充当服务器,其余的路由器则被指定为分支路由器并充当客户端。NHRP分支用NHRP中心的IP地址进行配置,当分支上线时,它会把自己要为隧道使用的物理IP地址(分配给其物理接口)和逻辑IP地址(分配给其虚拟隧道接口)告诉中心路由器。
下面参考图2-8的示例。
在图2-8中,“中心”路由器是NHRP中心,“分支A”、“分支B”和“分支C”是NHRP分支。当NHRP分支上线时,它们都会将自己要用来建立隧道的物理接口IP地址和虚拟隧道接口IP地址通告给NHRP中心。例如分支A会告知中心路由器,其虚拟隧道接口的IP地址是10.0.0.1,其可用物理接口的IP地址是192.0.2.1。分支B和分支C也会向中心路由器发送相似的通告。中心路由器会根据这些通告填写自己的NHRP数据库。
注释:
之前关于NHRP的描述中,使用术语“物理接口”的目的是区分非隧道接口和隧道接口。然而这里所说的物理接口也可能是环回接口。
在NHRP中心填写好自己的数据库后,NHRP分支可以向NHRP中心查询特定隧道接口IP地址的物理接口IP地址。图2-9展示了NHRP如何帮助分支C路由器与分支B路由器建立GRE隧道连接。
在图2-9中,分支C路由器需要与分支B路由器动态建立GRE隧道。分支C路由器知道其想建立隧道的另一端的IP地址为10.0.0.2。然而分支C路由器不知道分支B路由器上对应于这个虚拟隧道IP地址的物理接口IP地址是多少。发现远程物理IP地址并建立隧道的过程如下所示。
关键
步骤1 分支C路由器向NHRP中心路由器发送NFRP查询,请求与隧道接口IP地址10.0.0.2关联的物理接口IP地址。
步骤2 NHRP中心(即中心路由器)检查自己的NHRP数据库并回应请求,告诉分支C对应于隧道接口IP地址10.0.0.2的物理接口IP地址是203.0.113.1,即分支B路由器的IP地址。
步骤3 动态学习到分支B路由器的物理接口IP地址后,分支C路由器与分支B路由器建立GRE隧道。
虽然NHRP的配置超过了ROUTE课程的范围,但读者应当熟悉show ip nhrp验证命令的输出内容。例2-3显示了该命令的示例输出。
关键
例2-3中的输出内容显示了“IP到NBMA地址”缓存中的IP地址(及对应的子网掩码)。注意IP地址的子网掩码总是/32,因为Cisco部署的NHRP不支持汇总NBMA(非广播多路访问)信息。输出也显示了隧道接口的名称以及隧道建立的时间。最后,注意authoritative标记。这个标记表示提供NHRP信息的是下一跳服务器(或路由器)。