一.GRE---通用路由封装技术
GRE(Generic Routing Encapsulation)通用路由封装是一种网络协议,它可以将不同的协议封装在IP包中,从而实现虚拟专用网络(VPN)和其他网络连接
GRE通用路由封装通常用于以下几种情况:
-
在公共网络中建立私有网络,如企业内部的VPN。
-
将远程控制设备或子系统接入到网络中。
-
在不同类型的网络之间建立连接,如WAN和LAN之间的连接。
-
实现多协议通信,如将IPv4和IPv6网络互连
1.GRE通用路由封装是一种重要的网络协议
2.它可以提供网络隧道和虚拟专用网络等功能
3.用于建立虚拟专线、虚拟专用网络(VPN)以及跨越Internet的WAN连接等应用场景。
4.为企业和个人用户提供更安全、更便利的网络连接方式。
GRE隧道的建立需要两个步骤:
1.为虚拟链路
-
在路由器上添加GRE隧道接口,并配置路由器的路由信息
[r1]interface Tunnel 0/0/0
[r1-tunnel0/0/0]ip address 192.168.3.1 24
2.定义封装方式:
[r1-Tunnel0/0/0]tunnel-protocal gre
3. 在隧道的两端,需要配置隧道的接口IP地址和隧道的远端IP地址
[r1-Tunnel0/0/0]source 12.0.0.1
[r1-Tunnel0/0/0]destination 23.0.0.2
在R3上再次重复上述配置
GRE协议在已有的IP协议上增加了一个新的头部,用于将网络包封装在另一个网络包中。这个过程被称为“封装”。
在GRE封装中,原始IP包被封装在一个新的IP包中,新的IP包的头部包含了原始IP包的源地址和目的地址。这样,原始IP包中的源地址和目的地址就被隐藏了,而新的IP包中的源地址和目的地址则被用来传输数据包。当路由器接收到该数据包之后进行解封装会将隐藏的原始IP中的源地址和目的地址暴露出来,借此来获得数据
GRE封装过程如下:
- 原始IP数据包被封装在GRE数据包中,并添加GRE头部,表示GRE协议版本等信息。
- GRE头部后面添加IP头部,以便在物理网络中进行路由。
- 封装后的数据包通过物理网络进行传输,到达目标设备。
- 目标设备接收到数据包后,将其解封,还原原始IP数据包,并将其传递到目标地址。
这种封装可以实现多个网络之间的互通,并且可以加密保护数据的安全性
报文通信过程:
当一个(源IP:192.168.1.1目标IP:192.168.2.1)的报文从R1转发时,R1查询路由表会将该报文转发至隧道接口并根据GRE协议在原理IP头部基础上再封装一个新的IP头部(源IP:12.0.0.1 目:23.0.0.2),之后R1会根据封装后的报文,查询路由表,将报文转发至R2,R2转发至R3,R3确认目标IP为本地IP后,进行解封装发现GRE协议后,去除报文的GRE协议部分,再根据IP:192.168.1.1目标IP:192.168.2.1,将报文转发至对应网段。
源IP:12.0.0.1 | 目标IP:23.0.0.2 |
GRE协议 | GRE协议 |
源IP:192.168.1.1 | 目标IP:192.168.2.1 |
二.NHRP协议-----下一跳解析协议
NHRP(Next Hop Resolution Protocol)下一跳解析协议是一种用于解析下一跳的网络协议。它主要用于处理虚拟私有网(VPN)中的动态路由问题。
在VPN中,路由器和端点设备可能会使用不同的网络地址,这就导致了路由表中的下一跳地址无法使用。NHRP协议通过在一个公共网络中动态映射VPN地址和公共地址之间的对应关系,解决了这个问题。
NHRP协议的工作流程如下:
1.选择公网IP地址固定的作为NHS----下一跳解析服务器
2.所有分支将自己的物理接口IP地址发送给NHS,如果物理接口的IP地址发生变化,则必 须上报给NHS
3.当分支和分支之间需要通信时,可以先向NHS发送申请,获取目标信息之后建立隧道
三.MGRE----多点通用封装技术
MGRE(Multi-Link GRE)多点通用封装技术是一种用于 VPN 和远程接入网络的协议,它可以将多条物理链路组合成一条虚拟链路,提高了网络的可靠性和性能。
MGRE特点如下:
-
多点通用:MGRE可以同时支持点对点和点对多的模式,实现灵活的网络拓扑结构。
-
网络隔离:MGRE可以将不同的多点VPN隔离开来,确保安全性和完整性。
-
灵活性:MGRE可以和其他VPN技术进行混合使用,实现更丰富的网络应用。
-
性能优异:MGRE使用IP封装技术,不需要额外的协议开销,具有较高的性能
#创建隧道接口
[r1]interface tunnel 0/0/0
#配置IP地址
[r1-tunnel0/0/0]ip address 192.168.5.1 24
#定义封装方式
[r1-tunnel0/0/0]tunnel-protocal gre p2mp
#定义封装内容---NHRP协议--中心站点的物理接口
[r1-tunnel0/0/0]source 15.0.0.1
#配置NHRP---创建NHRP域--100代表NHRP域编号
[r1-tunnel0/0/0]nhrp network-id 100
#分支配置
#创建隧道接口
[r2]interface tunnel 0/0/0
#配置IP地址
[r2-tunnel0/0/0]ip address 192.168.5.2 24
#定义封装方式
[r2-tunnel0/0/0]tunnel-protocal gre p2mp
#定义封装内容---分支允许IP地址发生变化,接口不会变化,因此只需定义写死分支路由器出接口即可
[r2-tunnel0/0/0]source Gigabitethernet 0/0/0
#配置NHRP---加入已创建的NHRP域
[r2-tunnel0/0/0]nhrp network-id 100
#将信息上报给中心--只有知道中心信息即中心隧道和物理接口的IP地址才能找到中心
[r2-tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
#查看邻居上报信息的命令
[r1]dispiay nhrp peer all
四.拓展配置
- 针对隧道接口配置OSPF时需要开启伪广播
[r1-tunnel0/0/0]nhrp entry multicast dynamic