GRE(Generic Routing Encapsulation,通用路由封装),是简单的VPN。GRE是第三层隧道协议,采用Tunnel(隧道)技术。 优点:支持IP网络作为承载网络、支持多种协议、支持IP组播,配置简单,容易部署 缺点:缺少保护功能,不能执行如认证、加密以及数据完整性检查这些任务 因为安全上的限制,GRE通常不能用作一个完整的VPN解决方案,然而它可以和其他解决方案结合在一起,例如IPsec,来产生一个极强大的、具有扩展性的VPN实施方案
隧道起点-->路由查找-->封装-->承载协议路由转发-->公网转发-->解封装-->隧道终点路由查找 报文格式: GRE在封装数据报文时。会添加GRE头部信息及新的IP头部信息 IP用协议号47标识GRE GRE使用以太类型0x0800标识载荷协议为IP
eg干文解释:类似于二层的dot1q,都是在原有的网关接口上基于某种协议生成一个虚拟接口,与对端接口又通过某种协议进行报文的定向传输。而GRE的概念就是在三层链路中使用Tunnel虚拟接口打通隧道,封装三层报文,使用路由协议引流,实现流量分割(你跑你的流量,我tunnel口走我自己设定好的流量,我们不干涉),这就是基础的vpn,可惜谁都能拆我的包,因为我没有安全加密的功能~
简单的配置命令:
R1:
interface Tunnel0/0/0 # 创建Tunnel隧道
ip address 192.168.3.1 255.255.255.0 # 隧道IP
tunnel-protocol gre # 配置隧道协议
source 100.1.1.1 # 隧道源地址
destination 100.1.1.2 # 隧道目的地址
ip route-staic 192.168.2.0 24 Tunnel 0/0/0 # 配置静态路由让数据报文从tunnel走
R2:
interface Tunnel0/0/0 # 创建Tunnel隧道
ip address 192.168.3.2 255.255.255.0 # 隧道IP
tunnel-protocol gre # 配置隧道协议
source 100.1.1.2 # 隧道源地址
destination 100.1.1.1 # 隧道目的地址
ip route-staic 192.168.1.0 24 Tunnel 0/0/0 # 配置静态路由让数据报文从tunnel走
以华为设备为例,在路由器各端创建 tunnel0/0/0虚拟接口(随便用,没有对称要求,但是对于设备版本来说接口号的格式可能不一样可以问号下看看),ip add(封装前的ip),source(封装后的ip,用来在隧道里寻址的,所以再给隧道引流的时候也要用隧道的出接口号或者隧道下一跳ip),desti(对端隧道ip),就是这么简单。实际场景可想而知(我是不是可以给隧道单独做带宽保护?我的三层ip包变成了gre包这有什么好处?如果中途还有其他二三层设备会不会影响我的隧道传输?如果跨三层设备我的路由会如何显示,这有什么优缺点?)
欢迎咨询~

还没有评论,来说两句吧...