第三章,GRE和MGRE
VPN---虚拟专用网络
VPN的核心技术----隧道技术---封装
GRE---通用路由封装
配置
GRE的配置:
R1:
[r1]interface Tunnel 0/0/0 ---创建一个虚拟的隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24 ---给隧道接口分配一个IP地址
[r1-Tunnel0/0/0]tunnel-protocol gre ---定义接口的封装方式
[r1-Tunnel0/0/0]source 12.0.0.1
[r1-Tunnel0/0/0]destination 23.0.0.3R3:
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]ip address 192.168.3.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre
[r3-Tunnel0/0/0]source 23.0.0.3
[r3-Tunnel0/0/0]destination 12.0.0.1
一定要记住需要添加通往隧道的路由信息。
GRE的报文结构和封装过程
1、R1从连接私网的接口收到报文后,检查报文头部中的目的IP地址字段,在路由表查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块来处理。
2、隧道模块收到该报文后,会首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装--加GRE报文头部。
3、设备给报文添加传输协议报文头部,即IP报文头。该IP报文头部的源地址和目的地址是隧道中配置的源目信息。
4、最后,设备根据新添加的IP报文头部的地址,在路由表中查找相应的出接口,并发送报文。5、接收方设备从连接公网的接口收到报文后,首先分析IP报文头部,如果发现协议类型字段的数值为47,表明内层为GRE,于是接口将报文交付给GRE模块处理。又GRE模块去掉IP报文头部和GRE头部信息,并根据内层的IP头部信息进行数据转发。
Keepalive检测
-
Keepalive检测功能用于在任意时刻检测隧道是否处于正常状态。
-
如果对端不可达,可以即使关闭隧道,避免形成路由黑洞。
-
-
逻辑
-
设备在本地创建一个计数器,并周期性发送keepalive报文,如果没有得到回复,则每发送一次报文,计数器加一。当计数器超过10,则认为对端不可达。周期性时间为10S。
-
[r1-Tunnel0/0/0]keepalive ---开启接口的keepalive检测
只需要开一段就可以了
MGRE---多点通用路由封装
在MGRE的网络类型结构中,是存在多个节点,但是MGRE本身在发送数据时,还是以点到点的形式发送,并不存在广播或者组播行为,所以,这种网络架构,可以被近似的看做是NBMA网络。
现实中的公网IP地址可能是不固定的,所以出现了NHRP协议
NHRP----下一跳解析协议
在私网环境中,选择一个出口物理IP地址不会改变的设备作为NHRP的中心(NHS--下一跳服务器)。剩下的分支节点就可以确定的知晓中心节点的隧道地址和物理地址。
然后,NHRP要求所有的分支节点都需要将自己的物理接口IP和隧道IP发送给NHS,并由NHS记录下来,这样,中心节点会保存有所有分支节点的地址映射关系。在发送数据时,查询该记录关系即可。
中心-分支:Hub and Spoke架构
配置
MGRE的shortcut配置(所有路由的下一跳均为hub节点)
中心节点:
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp ---修改接口的封装协议为P2MP
[r1-Tunnel0/0/0]source 15.0.0.1 --规定公网的源IP地址spoke节点:
interface Tunnel0/0/0
ip address 192.168.5.2 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet0/0/0 ---分支节点的IP地址不固定
nhrp entry 192.168.5.1 15.0.0.1 register
1、在本地记录中心节点的隧道地址和物理地址的对应关系;2、该命令代表需要向中心节点(15.0.0.1)发送NHRP注册报文(注册报文中包含本地的隧道IP地址和物理IP地址);
3、第一个IP是隧道IP,第二个IP为公网IP
[r2]display nhrp peer all 查看NHRP表项
非shorcut多的命令
[r1-Tunnel0/0/0]nhrp redirect ---在hub节点开启重定向功能。开启后,hub会主动为其他设备发送重定向报文
[r2-Tunnel0/0/0]nhrp shortcut ---使能shortcut功能,如果不开启,则分支节点会丢弃重定向报文,每个分支节点都需要配置
非shortcut方式的数据流通过程
1、R2访问R3---192.168.2.1 192.168.3.1--->ICMP
2、R2发送两个报文给hub节点,分别为ICMP和NHRP请求报文(R2请求R3)
3、R1将R2的两个报文转发给R3设备
4、R3处理ICMP报文-->发送ICMP应答报文给中心节点;并且向中心节点发送NHRP请求(R3请求R2的信息)
5、R3处理NHRP请求报文,在该报文中知晓源IP地址为25.0.0.2,故直接向该节点回复报文,告知其映射关系
6、R1转发R3的两个报文信息给R2设备
7、R2处理ICMP报文-->直接回复给R3
8、R2处理NHRP请求-->直接回复给R3
作业
录讲作业:讲解在MGRE环境中,spoke节点之间获取对方的映射关系的过程。讲解shortcut和非shortcut两种方式。
MGRE环境下的RIP网络搭建
非shortcut方式:
[r1]rip 1
[r1-rip-1]version 2
[r1-rip-1]network 192.168.1.0 ----主类宣告方式
[r1-rip-1]network 192.168.5.0 ----宣告:1、激活接口;2、发布路由。[r1-Tunnel0/0/0]nhrp entry multicast dynamic ---开启中心节点伪广播(给所有人以单播形式发送一次报文)
[r1-Tunnel0/0/0]undo rip split-horizon ---关闭该接口的水平分割机制