华为HCIA进阶笔记:GRE 原理与配置

目录

GRE(Generic Routing Encapsulation)通用路由封装协议

前言

GRE 应用场景

GRE 应用场景

GRE 应用场景

GRE 报文结构

GRE 关键字验证

Keepalive 检测

GRE 配置

配置验证

配置验证

配置 Keepalive 检测

配置验证

总结


GRE(Generic Routing Encapsulation)通用路由封装协议

前言

        lPSec VPN用于在两个端点之间提供安全的IP通信,但只能加密并传播单播数据,无法加密和传输语音、视频、动态路由协议信息等组播数据流量。
        通用路由封装协议GRE (Generic Routing Encapsulation)提供了将一种协议的报文封装在另一种协议报文中的机制,是一种隧道封装技术。GRE可以封装组播数据,并可以和IPSec结合使用,从而保证语音、视频等组播业务的安全。

GRE 应用场景

⦁    GRE用来对某些网络层协议如IPX(Internet Packet Exchange)的报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。GRE可以解决异种网络的传输问题。
⦁    IPSec VPN技术可以创建一条跨越共享公网的隧道,从而实现私网互联。IPSec VPN能够安全传输IP报文,但是无法在隧道的两个端点之间运行RIP和OSPF等路由协议。GRE可以将路由协议信息封装在另一种协议报文(例如IP)中进行传输。

GRE 应用场景

 ⦁    使用GRE可以克服IGP协议的一些局限性。例如,RIP路由协议是一种距离矢量路由协议,最大跳数为15。如果网络直径超过15,设备将无法通信。这种情况下,可以使用GRE技术在两个网络节点之间搭建隧道,隐藏它们之间的跳数,扩大网络的工作范围。

GRE 应用场景

 ⦁    GRE本身并不支持加密,因而通过GRE隧道传输的流量是不加密的。将IPSec技术与GRE相结合,可以先建立GRE隧道对报文进行GRE封装,然后再建立IPSec隧道对报文进行加密,以保证报文传输的完整性和私密性。

GRE 报文结构

⦁    GRE封装报文时,封装前的报文称为净荷,封装前的报文协议称为乘客协议,然后GRE会封装GRE头部,GRE成为封装协议,也叫运载协议,最后负责对封装后的报文进行转发的协议称为传输协议。
⦁    GRE封装和解封装报文的过程如下:
⦁    设备从连接私网的接口接收到报文后,检查报文头中的目的IP地址字段,在路由表查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块进行处理。
⦁    隧道模块接收到报文后首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装,即添加GRE报文头。
⦁    然后,设备给报文添加传输协议报文头,即IP报文头。该IP报文头的源地址就是隧道源地址,目的地址就是隧道目的地址。
⦁    最后,设备根据新添加的IP报文头目的地址,在路由表中查找相应的出接口,并发送报文。之后,封装后的报文将在公网中传输。
⦁    接收端设备从连接公网的接口收到报文后,首先分析IP报文头,如果发现协议类型字段的值为47,表示协议为GRE,于是出接口将报文交给GRE模块处理。GRE模块去掉IP报文头和GRE报文头,并根据GRE报文头的协议类型字段,发现此报文的乘客协议为私网中运行的协议,于是将报文交给该协议处理。

GRE 关键字验证

Keepalive 检测

⦁    Keepalive检测功能用于在任意时刻检测隧道链路是否处于Keepalive状态,即检测隧道对端是否可达。如果对端不可达,隧道连接就会及时关闭,避免形成数据空洞。使能Keepalive检测功能后,GRE隧道本端会定期向对端发送Keepalive探测报文。若对端可达,则本端会收到对端的回应报文;若对端不可达,则收不到对端的回应报文。如果在隧道一端配置了Keepalive功能,无论对端是否配置Keepalive,配置的Keepalive功能在该端都生效。隧道对端收到Keepalive探测报文,无论是否配置Keepalive,都会给源端发送一个回应报文。
⦁    使能Keepalive检测功能后,GRE隧道的源端会创建一个计数器,并周期性地发送Keepalive探测报文,同时进行不可达计数。每发送一个探测报文,不可达计数加1。
⦁    如果源端在计数器值达到预先设置的值之前收到回应报文,则表明对端可达。如果计数器值达到预先设置的重试次数,源端还是没有收到回应报文,则认为对端不可达。此时,源端将关闭隧道连接。

GRE 配置

⦁    interface tunnel interface-number命令用来创建Tunnel接口。创建Tunnel接口后,需要配置Tunnel接口的IP地址和Tunnel接口的封装协议。
⦁    tunnel-protocol命令用来配置Tunnel接口的隧道协议。
⦁    source { source-ip-address | interface-type interface-number }命令用来配置Tunnel源地址或源接口。
⦁    destination dest-ip-address命令用来指定Tunnel接口的目的IP地址。
⦁    在本端设备和远端设备上还必须存在经过Tunnel转发的路由,这样,需要进行GRE封装的报文才能正确转发。经过Tunnel接口转发的路由可以是静态路由,也可以是动态路由。配置静态路由时,路由的目的地址是GRE封装前原始报文的目的地址,出接口是本端Tunnel接口。

配置验证

 ⦁    执行display interface Tunnel 0/0/1命令,可以查看接口的运行状态和路由信息。如果接口的当前状态和链路层协议的状态均显示为UP,则接口处于正常转发状态。隧道的源地址和目的地址分别为建立GRE隧道使用的物理接口的IP地址。

配置验证

 ⦁    执行display ip routing table命令,可以查看IP路由表,判断GRE隧道连接的两个网络的可达信息。在本示例中,可以看出目的地址为通过GRE隧道可达的网络地址,下一跳地址为GRE隧道远端接口的IP地址。

配置 Keepalive 检测

 ⦁    执行keepalive [ period period [ retry-times retry-times ] 命令,可以在GRE隧道接口启用Keepalive检测功能。其中,period参数指定Keepalive检测报文的发送周期,默认值为5秒;retry-times参数指定Keepalive检测报文的重传次数,默认值为3。如果在指定的重传次数内未收到对端的回应报文,则认为隧道两端通信失败,GRE隧道将被拆除。

配置验证

 ⦁    执行display interface tunnel命令,还可以查看GRE的Keepalive功能是否使能。本示例中,Keepalive检测功能的当前状态显示为启用,且报文的发送周期为3秒,重传次数为3次。

总结

1.GRE可以解决异种网络的传输问题;GRE隧道扩展了受跳数限制的路由协议的工作范围,支持企业灵活设计网络拓扑;GRE可以与IPSec结合来实现加密传输组播数据。

2.Internet Address代表建立GRE隧道所用的虚拟隧道地址,Tunnel source表示隧道的起点,是设备的出接口物理地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

君不见黄河之水天上来

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值