一.引言
在上述VPN的简单带入里面,我们就已经有微微提到过GRE协议———我们通过封装后的报文来学习VPN的封装原理,在本章节里面,我们会具体分析在GRE上面如何封装,解封装,如何配置,如何理解,希望大伙在学完之后掌握GRE,也对VPN有更好的理解。(本章讲述的搭建VPN的GRE协议与上文章VPN引入在书面上有所雷同,但上一章只不过泛讲有引入GRE举例罢了,本章细讲GRE具体知识点,大伙不要搞混)
二.作用
GRE的作用
GRE(General Routing Encapsulation ,通用路由封装)是对网络层的数据报文进行封装,使这些报文能够在不同的网络中传输,但不安全,协议并不提供数据加密。
理解
上述说法略有抽象,我们先通过举例的方法简单呈现以下GRE的实现效果
正常情况来说的话R4要与R5建立连接,这样的话R2就必须要有俩个对端的路由条目,但在GRE隧道技术的加持下,会在R1和R3之间建立一条虚拟的隧道,实现俩个对端的连接。
三.原理
概括
顾名思义:隧道封装!!!
实例
已在R1和R3之间配置GRE协议,先R4 ping R5,报文会进入隧道口(第一条静态路由实现,后面配置讲解),在隧道口上封装上公网地址,并发送到R2(第二条静态路由实现,后面配置讲解),由于直连的关系,R2发往R3的进接口,并解封装,脱去公网地址,发往私网地址R5,回包也是同样的例子。
封装报文简化查看
原本只有源数据报头以及载荷(右3右4),封装上GRE协议(右2),并打上公网的报头(右1)
抓包分析
在配置正常完成的情况下,我们R4 ping R5,并在R2上的e0/0接口进行查看
从上往下我们依次与报文的从左往右进行匹配分析,再结合实例去分析封装过程,原理想必大家也就迎刃而解了。
四.配置
R1
interface Tunnel13 //进入tunnel口
ip address 192.168.13.1 255.255.255.0 //给tunnel配置一个地址,与对端同一网段即可,不做额外要求
tunnel source Ethernet0/1 //配置源隧道出口地址
tunnel destination 202.101.20.1 //配置隧道目的地址
ip route 192.168.20.1 255.255.255.255 Tunnel13 //对匹配上的业务数据发往隧道口,因为是在隧道口上配置的GRE,所以是在隧道口上进行封装
ip route 202.101.20.1 255.255.255.255 202.101.10.2 //业务转发的前提是隧道建立,隧道建立前提是VPN的两端互相可通
R2(原理同上)
interface Tunnel13
ip address 192.168.13.2 255.255.255.0
tunnel source Ethernet0/0
tunnel destination 202.101.10.1
ip route 192.168.10.1 255.255.255.255 Tunnel13
ip route 202.101.10.1 255.255.255.255 202.101.20.2
补充链路检测是否可达以及验证配置
10秒检测一次,给三次重置(30s没回应,端协议状态就down)
site1(config-if)#keepalive 10 3
验证配置
site2(config-if)#tunnel key 123
注意事项
1.要实现tunnel双up必须要配置上地址,源接口,目的接口!!!并且在实现设备两端互通的基础下,要满足发往对方主机的报文要进入tunnel接口(一般俩静态路由实现)
2.tunnel口采用多种封装类型,思科默认为GRE,华为华三需要另需配置
3.tunnel接口支持主播报文发送,因此可以结合动态路由协议进行配置
五.特点
1.GRE属于VPN,但作为配置简单的存在,也有缺陷之处,并非属于安全隧道存在一定的安全隐患
2.配置简单,两端设备CPU负担小
3.隧道复用,可以与ipsec结合使用
六.常用环境
1.将非连续的网络连接起来,不用在企业间,缺乏安全保障
2.扩大RIP跳数
3.实现OSPF跨区域隧道
七.尾言
希望本文章能让大家大致掌握GRE,也对VPN有更好的理解,本人小白大一水平,全文资料来自于老师PPT,课本资料以及自己搭建拓扑分析总结,如有错误或其他方面的指点,望大佬指点指点,在后续时间里,我会相继讲解ipsec以及其中安全协议还有密钥管理,系统化,逻辑上去带入ipsec的知识体系,接着就是隧道嵌套,ipsec的高可用性,DMVPN,L2TP,SSL VPN也会相继推出(放心,我会以适合大学生体质的语言进行易懂的讲解阐述,绝不敷衍复制贴贴)
也希望各位在数通安全方向上越来越牛ber