锐捷NHRP解析,MGRE+NHRP

NHRP下一跳地址解析协议

        NHRP由IETF在RFC 2332 中定义。用于解决非广播多路访问网络上的源节点(主机或者路由器)获取到达目标节点的“下一跳”的互联网络层地址和NBMA子网地址。

        NHRP协议是一个典型的客户端/服务器协议,分为NHS(NHRP服务器)和NHC(NHC客户端),每个子网至少有一个NHS,一个NHS可以为多个子网服务。

NHRP工作原理

        NHRP类似ARP,ARP是IP地址到MAC地址的解析。NHRP是内部VPN的地址到NBMA地址(外部地址)的解析。

        NHS用于维护每个分支NHC公网地址的NHRP数据库。分支NHC通过NHRP协议向中心路由器NHS注册自己的外网端口IP地址,允许分支采用动态IP地址。当它要和其他分支直接建立隧道时,它向NHS的NHRP数据库里进行解析查询,用于确定其他分支的真实地址,并冗余到自己的NHRP数据库中。这样一个分支就可以动态的加入到组网中,解决了动态IP建立VPN隧道问题,并且可以通过解析到的地址直接与分支间传输数据,而不用再经过NHS传输,组成网状拓扑模型。

注册流程

        NHC需要配置静态的cache缓存,用于缓存当前组网中的NHS的IP地址和NBMA地址映射关系,根据NHS产生Registration(注册) Request报文发向NHS,NHS在收到该报文后就会产生动态的cache缓存,并且生成Registration Reply发向NHC完成注册。

解析流程

        在没有找到对应IP地址的NBMA地址时,NHS和NHC就会发送Resolution(解析) Request报文来进行解析请求协商寻找合适的地址。

配置NHRP

常用的NHRP功能包括以下几个配置:

开启NHRP功能(必须)     

配置广播报文发送的地址(必须) 

配置静态的IP和NMBA地址关系缓存(NHC必须)   

配置NHS(NHC必须)  

配置NHRP重定向(可选)

配置NHRP Shortcut功能(可选)

        这里的NHRP重定向共和NHRP Shortcut功能基本是绑定在一起的。NHRP重定向功能在NHS上开启,可以让NHS知道NBMA网络中其他NHS的NBMA地址。NHRP Shortcut功能在NHC上开启,可以让NHC去访问其他NHC时不经过NHS直接去找另一个NHC。

        所以如果NHS配置了NHRP重定向,则要在NHC上配置NHRP Shortcut,不然NHC还是会经过NHS。

配置MGRE+NHRP

锐捷NHRP解析,MGRE+NHRP_第1张图片

        如图一个典型的多点VPN拓扑,使用MGRE VPN,隧道IP和公网IP如图所示。锐捷的gre隧道由Tunnel隧道接口实现,Tunnel隧道是一种虚拟的点到点技术。

R2(config-if-Tunnel 0)#tunnel ?
  checksum            Enable end to end checksumming of packets
  destination         Destination of tunnel
  key                 Security or selector key
  mode                Tunnel encapsulation method
  path-mtu-discovery  Enable Path MTU Discovery on tunnel
  protection          Enable tunnel protection
  source              Source of tunnel packets
  tos                 Set tos
  ttl                 Set time to live
  vrf                 Set vrf

//Tunnel隧道中通过配置source和destination实现点到点的连接;前提是双方要能ping通
//source和destination都是公网IP

        要想在Tunnel隧道中实现点对多要开启gre multipoint模式,然后需要配置本端的隧道源(即是公网IP),而对端的公网IP地址因为不知道对端到底有多少个,所以交给NHRP去解析。NHRP通过NHC到NHS注册建立起IP地址NBMA地址关系数据库。

        当R2想通过隧道连通R3时,R2会先发送报文去R1(NHS),然后R1通过查看IP地址NBMA地址关系数据库把报文转发给R3。当然这是默认情况

        如果配置了NHRP重定向和NHRP Shortcut功能。这时因为R2会收到R1发送的IP地址NBMA地址关系数据库报文,R2本地中有IP地址NBMA地址关系数据库,且配置了NHRP Shortcut功能

R2会直接发送报文给R3。到达走"捷径"的效果。

        下面是每个设备的配置

R1:
interface Tunnel 0
 tunnel mode gre multipoint    //配置为gre多点模式
 tunnel source 17.1.1.2        //配置本地源出口网关IP
 ip nhrp redirect              //配置NHRP重定向
 ip nhrp network-id 100        //开启NHRP并配置ID
 ip nhrp map multicast dynamic    //配置NHRP广播发送方向为动态学习模式
 ip address 10.5.1.1 255.255.255.0    //tunnel口隧道IP
R2:
interface Tunnel 0
 tunnel mode gre multipoint
 tunnel source 25.1.1.2
 ip nhrp shortcut            //配置NHRP Shortcut功能
 ip nhrp nhs 10.5.1.1        //配置NHS地址
 ip nhrp network-id 100
 ip nhrp map 10.5.1.1 17.1.1.2    //配置一条NHS的静态缓存,以便能找到NHS
 ip nhrp map multicast 17.1.1.2   //配置NHRP广播到NHS
 ip address 10.5.1.2 255.255.255.0
R3:
interface Tunnel 0
 tunnel mode gre multipoint
 tunnel source 37.1.1.2
 ip nhrp shortcut
 ip nhrp nhs 10.5.1.1
 ip nhrp nhs 17.1.1.2
 ip nhrp network-id 100
 ip nhrp map 10.5.1.1 17.1.1.2
 ip nhrp map multicast 17.1.1.2
 ip address 10.5.1.3 255.255.255.0

        当然了,每个设备都需要配置静态路由让他们的公网IP能够互相ping通。但是静态路由中没有隧道IP的路由,隧道IP也能互相ping通。因为:

        tunnel隧道出去的时候会封装为源地址的IP(tunnel source 17.1.1.2),而目标IP会封装为IP地址NBMA地址关系数据库中查到的目标公网IP。这时外部网络(Internet)就能够路由这个数据报文。当数据报文到达隧道对端时会解封装,把原来的数据包还原出来。

R2#ping 10.5.1.3
Sending 5, 100-byte ICMP Echoes to 10.5.1.3, timeout is 2 seconds:
  < press Ctrl+C to break >
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

R2#traceroute 10.5.1.3
  < press Ctrl+C to break >
Tracing the route to 10.5.1.3

 1    10.5.1.3 0 msec 0 msec 0 msec
R2#

        当我们把这个隧道搭建好了以后,就可以实现跨地域的局域网建立。通过tunnel隧道把R1中的业务报文路由到R2的tunnel隧道再进行解封装,就可以实现R1和R2的业务互通,且在公网上有一层封装的IP头作为安全保障。

你可能感兴趣的:(智能路由器,网络)