沐鸣娱乐官方平台下载-沐鸣娱乐官方平台手机下载

工业路由器
您(nin)当前位置: 首页 >> 服务与支持 >> 产品百科 >> 工业路由器

详解GRE协议

发布(bu)时间(jian):2020-07-08浏览:3240

GRE详解


GRE定义(yi):


通用路(lu)由(you)封装协议(yi)GRE(Generic Routing Encapsulation)可以(yi)对某(mou)些(xie)网络(luo)层协议(yi)(如IPX、ATM、IPv6、AppleTalk等)的数(shu)据(ju)报文进行(xing)封装,使这些(xie)被(bei)封装的数(shu)据(ju)报文能(neng)够在另一个网络(luo)层协议(yi)(如IPv4)中传(chuan)输。


GRE提供(gong)了(le)将(jiang)一种(zhong)协议的报文封装在另一种(zhong)协议报文中的机制,是(shi)一种(zhong)三(san)层隧道封装技(ji)术,使报文可以通(tong)过GRE隧道透明(ming)的传(chuan)输(shu),解决异种(zhong)网(wang)络(luo)的传(chuan)输(shu)问题。


GRE的优点


•GRE实现机制简(jian)单,对隧道两端的设备负担小。


•GRE隧道可以(yi)通过IPv4网络(luo)(luo)连通多种网络(luo)(luo)协(xie)议(yi)的(de)本(ben)地网络(luo)(luo),有效利用了原有的(de)网络(luo)(luo)架构,降低成(cheng)本(ben)。


•GRE隧道扩展了跳数受限网络协议(yi)的工作(zuo)范(fan)围,支(zhi)持企业灵活设计网络拓扑。


•GRE隧道可(ke)以封装(zhuang)组(zu)播(bo)数(shu)据,和IPSec结合使用时可(ke)以保证语音、视频等组(zu)播(bo)业务(wu)的安全。


•GRE隧道支持(chi)使能MPLS LDP,使用GRE隧道承载MPLS LDP报文,建(jian)立LDP LSP,实现MPLS骨干网(wang)的互通。


•GRE隧道将不连续(xu)的子(zi)网连接起来,用于组建VPN,实现企业总(zong)部(bu)和分(fen)支间安(an)全(quan)的连接。


基(ji)本原理


实(shi)现过程(cheng)


报(bao)(bao)文(wen)在(zai)GRE隧(sui)(sui)道(dao)中传输(shu)包括(kuo)封(feng)(feng)装(zhuang)和解封(feng)(feng)装(zhuang)两个(ge)过程。如(ru)图(tu)1所示,如(ru)果(guo)X协议报(bao)(bao)文(wen)从Ingress PE向(xiang)Egress PE传输(shu),则封(feng)(feng)装(zhuang)在(zai)Ingress PE上完成(cheng),而解封(feng)(feng)装(zhuang)在(zai)Egress PE上进行。封(feng)(feng)装(zhuang)后的数据报(bao)(bao)文(wen)在(zai)网络(luo)中传输(shu)的路径(jing),称为GRE隧(sui)(sui)道(dao)。
通(tong)过GRE隧道实(shi)现X协议互通(tong)组网图(tu)





•封装


1.Ingress PE从连接X协议网络的接口接收到X协议报(bao)文后,首先交(jiao)由X协议处理(li)。


2.X协议根(gen)据报(bao)(bao)文(wen)头中(zhong)的(de)目的(de)地(di)址在路由表或转发(fa)表中(zhong)查找出接(jie)口(kou),确定如何转发(fa)此(ci)报(bao)(bao)文(wen)。如果发(fa)现出接(jie)口(kou)是GRE Tunnel接(jie)口(kou),则对报(bao)(bao)文(wen)进行(xing)GRE封(feng)装(zhuang),即添加(jia)GRE头。


3.根据骨干网传输协(xie)议为IP,给(ji)报文(wen)加上(shang)IP头(tou)。IP头(tou)的源地(di)址(zhi)就(jiu)是隧(sui)道源地(di)址(zhi),目的地(di)址(zhi)就(jiu)是隧(sui)道目的地(di)址(zhi)。


4.根据(ju)该IP头(tou)的(de)目的(de)地址(zhi)(即隧道目的(de)地址(zhi)),在(zai)骨干网(wang)路由表中查找相(xiang)应的(de)出(chu)接口(kou)并发送(song)报文(wen)。之后(hou)(hou),封装(zhuang)后(hou)(hou)的(de)报文(wen)将在(zai)该骨干网(wang)中传(chuan)输。


•解封(feng)装


解封装过程(cheng)(cheng)和(he)封装过程(cheng)(cheng)相(xiang)反(fan)。


1.Egress PE从GRE Tunnel接口收到该报文,分(fen)析IP头(tou)发现(xian)报文的(de)目的(de)地(di)址为本(ben)设备,则Egress PE去(qu)掉IP头(tou)后交给GRE协议处理。


2.GRE协(xie)议剥掉(diao)GRE报(bao)(bao)头,获(huo)取X协(xie)议报(bao)(bao)文,再交由(you)X协(xie)议对此数据报(bao)(bao)文进(jin)行后续的转发处理。


报文格式(shi)


GRE封装后的报文(wen)格(ge)式(shi)如图(tu)2所示。
•乘(cheng)客协议(yi)(yi)(Passenger Protocol):封装(zhuang)前的报文称为净荷,封装(zhuang)前的报文协议(yi)(yi)称为乘(cheng)客协议(yi)(yi)。


•封装协(xie)(xie)(xie)议(Encapsulation Protocol):GRE Header是由封装协(xie)(xie)(xie)议完(wan)成并填充的,封装协(xie)(xie)(xie)议也称为(wei)运载协(xie)(xie)(xie)议(Carrier Protocol)。


•传输(shu)协议(yi)(yi)(Transport Protocol或(huo)者(zhe)Delivery Protocol):负(fu)责对封装后的(de)报文进行转发的(de)协议(yi)(yi)称为传输(shu)协议(yi)(yi)。






GRE头的(de)各(ge)字(zi)段解(jie)释如下(xia)所示。


表(biao)1 GRE头(tou)的各字段解释


GRE头(tou)字段


字段解释


C


校验和验证(zheng)位。•该位置1,表示(shi)GRE头插入了(le)校验和(Checksum)字段。
•该位置0,表(biao)示(shi)GRE头不包含校(xiao)验和字段(duan)。


K


关键字(zi)位。•该位置(zhi)1,表(biao)示GRE头插入了关键字(zi)(Key)字(zi)段。
•该位(wei)置0,表示GRE头不包含关键字字段(duan)。


Recursion


表示GRE报(bao)文(wen)被封(feng)(feng)装(zhuang)的层(ceng)数。完成一(yi)次GRE封(feng)(feng)装(zhuang)后将该字(zi)段加(jia)1。如果封(feng)(feng)装(zhuang)层(ceng)数大于3,则(ze)丢(diu)弃(qi)该报(bao)文(wen)。该字(zi)段的作用是防止报(bao)文(wen)被无限(xian)次的封(feng)(feng)装(zhuang)。


说明:


•RFC1701规定该字(zi)段默认值为0。


•RFC2784规定当发送(song)和接收端(duan)该字(zi)段不一(yi)致时(shi)不会(hui)引起异(yi)常,且接收端(duan)必(bi)须忽略该字(zi)段。


•设备实现时(shi)(shi)该(gai)字(zi)段仅在加(jia)封装(zhuang)报(bao)文(wen)时(shi)(shi)用(yong)作标记隧(sui)道(dao)嵌套层数(shu),GRE解封装(zhuang)报(bao)文(wen)时(shi)(shi)不感(gan)知该(gai)字(zi)段,不会影响报(bao)文(wen)的处(chu)理(li)。


Flags


预(yu)留字(zi)段。当前必须置为0。


Version


版本(ben)字段。必须(xu)置为0。


Protocol Type


标(biao)识(shi)乘(cheng)客协议(yi)的协议(yi)类型(xing)。常见(jian)的乘(cheng)客协议(yi)为IPv4协议(yi),协议(yi)代码为0800。


Ethernet over GRE协(xie)议的协(xie)议代码(ma)为0x6558。


Checksum


对GRE头及其负载(zai)的校验和字(zi)段。


Key


关键字字段,隧道接收(shou)端用于对收(shou)到的(de)报文进(jin)行验证。


GRE的安全(quan)机制


GRE本身提供两种基本的安全机制(zhi):


•校验和验证


•识别关键字(zi)


GRE的安(an)全机制


校验和验证


校(xiao)验和验证(zheng)是指对封装的报文进行端到(dao)端校(xiao)验。


若GRE报(bao)(bao)文(wen)头(tou)中的(de)(de)C位标识位置1,则校验(yan)和(he)有效(xiao)。发送方将(jiang)(jiang)根据GRE头(tou)及(ji)Payload信息计算校验(yan)和(he),并将(jiang)(jiang)包(bao)含校验(yan)和(he)的(de)(de)报(bao)(bao)文(wen)发送给对端。接收方对接收到的(de)(de)报(bao)(bao)文(wen)计算校验(yan)和(he),并与(yu)报(bao)(bao)文(wen)中的(de)(de)校验(yan)和(he)比较,如果一致(zhi)则对报(bao)(bao)文(wen)进一步处(chu)理,否则丢(diu)弃。


隧道两(liang)端(duan)(duan)(duan)(duan)(duan)可以根据实际应用(yong)的(de)需要决定配置(zhi)(zhi)校(xiao)(xiao)验(yan)和(he)(he)或(huo)禁止校(xiao)(xiao)验(yan)和(he)(he)。如果本端(duan)(duan)(duan)(duan)(duan)配置(zhi)(zhi)了校(xiao)(xiao)验(yan)和(he)(he)而对(dui)端(duan)(duan)(duan)(duan)(duan)没有配置(zhi)(zhi),则(ze)本端(duan)(duan)(duan)(duan)(duan)将(jiang)不(bu)会(hui)对(dui)接(jie)收到的(de)报文进行校(xiao)(xiao)验(yan)和(he)(he)检查,但对(dui)发送(song)的(de)报文计算(suan)校(xiao)(xiao)验(yan)和(he)(he);相反(fan),如果本端(duan)(duan)(duan)(duan)(duan)没有配置(zhi)(zhi)校(xiao)(xiao)验(yan)和(he)(he)而对(dui)端(duan)(duan)(duan)(duan)(duan)已配置(zhi)(zhi),则(ze)本端(duan)(duan)(duan)(duan)(duan)将(jiang)对(dui)从对(dui)端(duan)(duan)(duan)(duan)(duan)发来的(de)报文进行校(xiao)(xiao)验(yan)和(he)(he)检查,但对(dui)发送(song)的(de)报文不(bu)计算(suan)校(xiao)(xiao)验(yan)和(he)(he)。


识别关键字(zi)


识别关键字(Key)验证是指(zhi)对Tunnel接(jie)口进(jin)行校验。通过(guo)这种弱(ruo)安全机制,可以防止错(cuo)误识别、接(jie)收其它地方来的报文。


RFC1701中(zhong)(zhong)规定:若GRE报文头中(zhong)(zhong)的K位为1,则在GRE头中(zhong)(zhong)插入一个四字(zi)(zi)节(jie)长关键(jian)字(zi)(zi)字(zi)(zi)段,收发双方(fang)将进行识(shi)别关键(jian)字(zi)(zi)的验(yan)证。


关键(jian)(jian)字(zi)的(de)(de)作用是标志隧道中的(de)(de)流(liu)量,属于(yu)同(tong)(tong)一(yi)流(liu)量的(de)(de)报文使用相(xiang)同(tong)(tong)的(de)(de)关键(jian)(jian)字(zi)。在报文解封(feng)装时(shi),GRE将(jiang)(jiang)基于(yu)关键(jian)(jian)字(zi)来识(shi)别属于(yu)相(xiang)同(tong)(tong)流(liu)量的(de)(de)数据报文。只(zhi)有Tunnel两端(duan)(duan)设置的(de)(de)识(shi)别关键(jian)(jian)字(zi)完全(quan)一(yi)致(zhi)时(shi)才能通过验证,否则将(jiang)(jiang)报文丢弃。这(zhei)里的(de)(de)“完全(quan)一(yi)致(zhi)”是指两端(duan)(duan)都不(bu)设置识(shi)别关键(jian)(jian)字(zi),或者两端(duan)(duan)都设置相(xiang)同(tong)(tong)的(de)(de)关键(jian)(jian)字(zi)。


GRE的keepalive检(jian)测


由于(yu)GRE协议并(bing)不(bu)(bu)具备检测链路状态的(de)功能,如果对端接口不(bu)(bu)可达,隧道并(bing)不(bu)(bu)能及时关闭该(gai)Tunnel连接,这样会(hui)造成源端会(hui)不(bu)(bu)断的(de)向(xiang)对端转发数(shu)据,而对端却因(yin)隧道不(bu)(bu)通(tong)接收不(bu)(bu)到报(bao)文(wen),由此就会(hui)形成数(shu)据空(kong)洞。


GRE的Keepalive检测(ce)功(gong)能可(ke)以检测(ce)隧道(dao)(dao)状态(tai),即(ji)检测(ce)隧道(dao)(dao)对端是否可(ke)达。如果对端不可(ke)达,隧道(dao)(dao)连接就会及时关闭,避免(mian)因对端不可(ke)达而造成(cheng)的数据丢失,有效防止数据空洞,保证数据传输的可(ke)靠性。


Keepalive检测功能的(de)实现过程如下:
1.当(dang)GRE隧道的源端(duan)使能(neng)Keepalive检测(ce)功能(neng)后(hou),就创建一个定时(shi)器,周期地发(fa)送Keepalive探(tan)测(ce)报文,同(tong)时(shi)通过计数器进行不(bu)可达(da)计数。每发(fa)送一个探(tan)测(ce)报文,不(bu)可达(da)计数加1。


2.对端每收到(dao)一个探测报文,就给源端发送(song)一个回应报文。


3.如果源(yuan)(yuan)端(duan)(duan)的(de)计数(shu)器值(zhi)未达到(dao)(dao)预先设置的(de)值(zhi)就(jiu)(jiu)收到(dao)(dao)回应(ying)报文(wen),就(jiu)(jiu)表明对端(duan)(duan)可达。如果源(yuan)(yuan)端(duan)(duan)的(de)计数(shu)器值(zhi)到(dao)(dao)达预先设置的(de)值(zhi)——重试(shi)次数(shu)(Retry Times)时,还没收到(dao)(dao)回送报文(wen),就(jiu)(jiu)认为对端(duan)(duan)不可达。此时,源(yuan)(yuan)端(duan)(duan)将关闭隧道(dao)连接。但是源(yuan)(yuan)端(duan)(duan)口仍会(hui)继续发(fa)送Keepalive报文(wen),若对端(duan)(duan)Up,则源(yuan)(yuan)端(duan)(duan)口也会(hui)Up,建(jian)立隧道(dao)链接。


说明: (对(dui)于设备实现的GRE Keepalive检测功能(neng)(neng),只要(yao)(yao)在隧道一(yi)端(duan)配置Keepalive,该端(duan)就(jiu)具备Keepalive功能(neng)(neng),而不要(yao)(yao)求隧道对(dui)端(duan)也具备该功能(neng)(neng)。隧道对(dui)端(duan)收到报文,如果是(shi)(shi)Keepalive探(tan)测报文,无论是(shi)(shi)否配置Keepalive,都会给源端(duan)发送(song)一(yi)个(ge)回应报文。)
Ethernet over GRE


Ethernet over GRE


通(tong)用路由封(feng)装协(xie)议(yi)GRE(Generic Routing Encapsulation)提供了(le)将一(yi)种(zhong)协(xie)议(yi)报(bao)(bao)文封(feng)装在(zai)另一(yi)种(zhong)协(xie)议(yi)报(bao)(bao)文中(zhong)(zhong)的机制,使报(bao)(bao)文能(neng)够在(zai)异(yi)种(zhong)网络中(zhong)(zhong)传输(shu)(shu),这种(zhong)在(zai)异(yi)种(zhong)网络中(zhong)(zhong)传输(shu)(shu)报(bao)(bao)文的通(tong)道称为(wei)隧(sui)道(Tunnel)。


目前,GRE隧道(dao)可以通过(guo)两种(zhong)隧道(dao)接口(kou)建立:
•GRE隧(sui)道接口


GRE隧道(dao)接口(kou)是为实现报文的封(feng)装(zhuang)而提供的一种(zhong)点对点类(lei)型的逻辑接口(kou),包(bao)含源(yuan)地(di)址、目的地(di)址和(he)隧道(dao)接口(kou)IP地(di)址。


•mGRE隧道接口(kou)


mGRE隧道接口(kou)是为实现DSVPN而提供的(de)一种点到多点类(lei)型(xing)的(de)逻辑接口(kou),包含源(yuan)地址(zhi)、目的(de)地址(zhi)和(he)隧道接口(kou)IP地址(zhi)。


与GRE隧(sui)道(dao)接(jie)口(kou)手工指定目的(de)地址(zhi)不同,mGRE隧(sui)道(dao)接(jie)口(kou)的(de)目的(de)地址(zhi)来自于NHRP地址(zhi)解(jie)析协议,一个mGRE隧(sui)道(dao)接(jie)口(kou)上,可以存在(zai)多(duo)条GRE隧(sui)道(dao),有多(duo)个GRE对端。


如图1所示,分(fen)(fen)支与总(zong)部(bu)的网(wang)络都是以(yi)太网(wang)络,分(fen)(fen)支与总(zong)部(bu)之间(jian)(jian)通(tong)过(guo)(guo)IP骨干(gan)网(wang)相(xiang)连,如果用户(hu)希望分(fen)(fen)支与总(zong)部(bu)之间(jian)(jian)能(neng)(neng)够(gou)互通(tong),可以(yi)部(bu)署Ethernet over GRE功(gong)能(neng)(neng),实现以(yi)太报文(wen)通(tong)过(guo)(guo)GRE隧道进行透(tou)传。
Ethernet over GRE是将(jiang)以太网协议的报文通过(guo)GRE封装后,在另一个(ge)网络层(ceng)协议(如(ru)IPv4)的网络中传输(shu),具(ju)体工作原(yuan)理如(ru)下:
1.在(zai)设备LAN侧的物理以(yi)太网接(jie)口(kou)GE2/0/0上(shang)绑(bang)(bang)定(ding)二(er)层VE接(jie)口(kou)VE0/0/2,在(zai)设备WAN侧的Tunnel接(jie)口(kou)Tunnel0/0/1上(shang)绑(bang)(bang)定(ding)二(er)层VE接(jie)口(kou)VE0/0/1。
2.Router_1的LAN侧(ce)物理(li)以(yi)(yi)太(tai)网(wang)接口GE2/0/0收到分支网(wang)络的以(yi)(yi)太(tai)报文,以(yi)(yi)太(tai)报文中(zhong)携带了VLAN Tag信息。
3.GE2/0/0收到的以太报文转发(fa)到VE0/0/2后,在VE0/0/2上(shang)进行入接口VLAN处理,然后在设备(bei)内(nei)基于MAC和(he)VLAN进行二层转发(fa),找到出接口VE0/0/1。
4.以太(tai)报文(wen)在VE0/0/1上进行(xing)出接(jie)口VLAN处理后(hou),将(jiang)转发(fa)到VE0/0/1绑(bang)定的Tunnel0/0/1接(jie)口,经过GRE封装(协(xie)议代码(ma)为0x6558)后(hou),进行(xing)后(hou)续(xu)的GRE转发(fa)处理。
5.Router_2的Tunnel0/0/1接(jie)口上对收到(dao)的报(bao)文进行GRE解封(feng)装(zhuang),检查到(dao)协议(yi)代码为0x6558后,将以太报(bao)文转发给入接(jie)口VE0/0/1。
6.在(zai)VE0/0/1上进(jin)行(xing)入接口(kou)VLAN处理后,二层转(zhuan)发给(ji)VE0/0/2进(jin)行(xing)出(chu)接口(kou)VLAN处理。

7.以太报(bao)文中(zhong)携带新的VLAN Tag信息从出接口GE2/0/0发(fa)往(wang)总部网络。


下面我们举个配置GRE的例子
配置GRE通过OSPF实现IPv4协议互(hu)通示例(li)
组网拓(tuo)扑


上一篇:详解PPTP协议 下一篇:什么是Ntrip?Ntrip协议简介
免费样(yang)机申请 样机免费试用,提前沟通确保沐鸣娱乐产品深度契合贵司业务需求
相关产品
产品百科
隐私政策网站地图 Copyright © 2015-2022 厦(sha)门沐鸣娱乐通信科(ke)技有限公(gong)司 All Rights Reserved.  
拨打电话
极悦娱乐-科技赋能场景,让娱乐更有趣。 极悦娱乐-科技注册场景,让平台更有趣。 鼎点耀世娱乐HEMO-拉菲2娱乐「一家靠谱的游戏平台」Facai-新博2官网登录入口「一家靠谱的游戏平台」Facai-摩臣平台是正规平台吗「一家走心的游戏平台」