您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > GREProtocol
Question:1、GRE是什么?2、GRE用在什么地方?3、GRE隧道如何实现?4、GRE的优点和不足?5、GRE隧道如何做到更安全?GRE详解简介GRE(GenericRoutingEncapsulation)在任意一种网络协议上传送任意一种其它网络协议的封装方法GRE协议是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(VirtualPrivateNetwork)的第三层隧道协议。GRE提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输,异种报文传输的通道称为tunnelRFC1701和RFC2784定义了标准GRE封装。GRE协议特点机制简单,对隧道两端设备的CPU负担小不提供数据的加密不对数据源进行验证不保证报文正确到达目的地不提供流量控制和QoS特性多协议的本地网可以通过单一协议的骨干网实现传输将一些不能连续的子网连接起来,用于组建VPN不能分隔地址空间封装格式协议BGRE协议A链路层协议载荷协议封装协议承载协议协议B载荷GRE封装包格式载荷协议承载协议GRE头协议B头协议A头载荷数据链路层头IPOverIP载荷链路层头GRE头IP头载荷协议0x0800IP头IP协议号47IP用协议号47标识GREGRE使用以太类型0x0800标识载荷协议为IPIPoverIP包格式GRE头部GRE头部格式:01234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|C|R|K|S|s|Recur|Flags|Ver|ProtocolType|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Checksum(optional)|Offset(optional)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Key(optional)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|SequenceNumber(optional)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Routing(optional)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+参照RFC1701中GRE封装格式1、前4个字节必须出现;2、第5-20字节根据第1个字节相关标志位可选出现;3、GRE头部长度将影响tunnel和mtu值。详细字段解释参照RFC1701.GRE头部字段验证-1Tunnel0Tunnel0172.16.0.1/16172.16.0.2/1612.12.12.0/2423.23.23.0/243.3.3.3/241.1.1.1/24R1R2R3interfaceTunnel0ipaddress172.16.0.1255.255.0.0keepalive103tunnelsource12.12.12.1tunneldestination23.23.23.3interfaceTunnel0ipaddress172.16.0.2255.255.0.0keepalive103tunnelsource23.23.23.3tunneldestination12.12.12.1GRE头部字段验证-2Tunnel0Tunnel0172.16.0.1/16172.16.0.2/1612.12.12.0/2423.23.23.0/24R1R2R31.1.1.1/243.3.3.3/24interfaceTunnel0ipaddress172.16.0.1255.255.0.0keepalive103tunnelsource12.12.12.1tunneldestination23.23.23.3tunnelkey1tunnelsequence-datagramstunnelchecksuminterfaceTunnel0ipaddress172.16.0.2255.255.0.0keepalive103tunnelsource23.23.23.3tunneldestination12.12.12.1tunnelkey1tunnelsequence-datagramstunnelchecksumGREVPNGREVPN直接使用GRE封装建立GRE隧道,在一种协议的网络上传送其它协议虚拟的隧道(Tunnel)接口OriginalDataPacketTransferProtocolHeaderGREHeaderInternetTunnel企业总部分支机构GRE隧道处理流程隧道起点路由查找加封装承载协议路由转发中途转发解封装隧道终点路由查找隧道起点路由查找R1R2站点A站点BS0/0S0/0E0/0E0/0Tunnel0Tunnel010.1.1.1/2410.1.2.1/2410.1.2.2/2410.1.3.1/24203.1.1.2/24202.1.1.1/24Destination/MaskProtocolCostNextHopInterface10.1.1.0/24DIRECT0--LOOP010.1.2.0/24DIRECT0--LOOP010.1.3.0/24OSPF210010.1.2.2Tunnel0202.1.1.0/24DIRECT0--LOOP0203.1.1.0/24STATIC0202.1.1.2S0/0IP公网IP私网IP私网13加封装R1R2站点A站点BS0/0S0/0E0/0E0/0Tunnel0Tunnel010.1.1.1/2410.1.2.1/2410.1.2.2/2410.1.3.1/24203.1.1.2/24202.1.1.1/24IP公网IP私网IP私网RTATunnel0接口参数:•GRE封装•源接口S0/0,地址202.1.1.1•目标地址203.1.1.2SD私网IP包GRE头公网IP头目的地址:203.1.1.2源地址:202.1.1.114承载协议路由转发R1R2站点A站点BS0/0S0/0E0/0E0/0Tunnel0Tunnel010.1.1.1/2410.1.2.1/2410.1.2.2/2410.1.3.1/24203.1.1.2/24202.1.1.1/24IP公网IP私网IP私网Destination/MaskProtocolCostNextHopInterface10.1.1.0/24DIRECT0--LOOP010.1.2.0/24DIRECT0--LOOP010.1.3.0/24OSPF210010.1.2.2Tunnel0202.1.1.0/24DIRECT0--LOOP0203.1.1.0/24STATIC0202.1.1.2S0/015中途转发R2站点BS0/0E0/010.1.3.1/24203.1.1.2/24IP私网IP公网R1站点AS0/0E0/010.1.1.1/24202.1.1.1/24IP私网解封装R1R2站点A站点BS0/0S0/0E0/0E0/0Tunnel0Tunnel010.1.1.1/2410.1.2.1/2410.1.2.2/2410.1.3.1/24203.1.1.2/24202.1.1.1/24IP公网IP私网IP私网RTBTunnel0接口参数:•GRE封装•源接口S0/0,地址203.1.1.2•目标地址202.1.1.1SD私网IP包GRE头公网IP头私网IP包17隧道终点路由查找R1R2站点A站点BS0/0S0/0E0/0E0/0Tunnel0Tunnel010.1.1.1/2410.1.2.1/2410.1.2.2/2410.1.3.1/24203.1.1.2/24202.1.1.1/24IP公网IP私网IP私网Destination/MaskProtocolCostNextHopInterface10.1.3.0/24DIRECT0--LOOP010.1.2.0/24DIRECT0--LOOP010.1.1.0/24OSPF210010.1.2.2Tunnel0203.1.1.0/24DIRECT0--LOOP0202.1.1.0/24STATIC0202.1.1.2S0/0GRE弱安全机制GRE本身提供了两种比较弱的安全机制:校验和验证识别关键字验证KeepAlive校验和验证本端对端本端对接收报文的处理本端对发送报文的处理配置校验没有配置校验不检查校验和计算校验和没有配置校验配置校验检查校验和不计算校验和实际应用时,隧道两端可以根据需要选择是否配置校验和,从而决定是否触发校验功能。因校验和配置不同,对收发报文的处理方式也不同.20识别关键字验证识别关键字(key)是指对Tunnel接口进行校验。通过这种弱安全机制,可以防止错误识别、接收其它地方来的报文。RFC1701中规定:若GRE报文头中的K位置位,则在GRE头中插入关键字字段,收发双方将进行通道识别关键字的验证。只有Tunnel两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。这里的“完全一致”是指两端都不设置识别关键字;或者两端都设置关键字,且关键字的值相等。21KeepAliveGRE的数据空洞Keepalive检测功能:VRP实现了GRE隧道的链路状态检测功能(Keepalive检测功能)。Keepalive检测功能用于时刻检测隧道链路是否处于Keepalive状态,即检测隧道对端是否可达。如果对端不可达,隧道连接就会及时关闭,避免形成数据空洞。如果GRE隧道本端使能Keepalive检测功能后,周期地发送link-alive探测报文给对端。若对端可达,则本端会收到对端的回应报文;否则,收不到对端的回应报文。不可达计数器:GRE隧道的源端使能Keepalive检测功能后,就创建一个定时器,周期地发送Keepalive探测报文,同时进行不可达计数。每发送一个探测报文,不可达计数加1。对端每收到一个探测报文,就给源端发送一个回应报文。如果源端的计数器值未达到预先设置的值就收到回应报文,就表明对端可达。如果源端的计数器值到达预先设置的值——重试次数(RetryTimes)时,还没收到回送报文,就认为对端不可达。此时,源端将关闭隧道连接。22KeepAlive报文GRE的应用场合多协议的本地网可以通过单一协议的骨干网传输路由协议中的应用扩大跳数受限的网络工作范围将不连续的子网连接起来,用于组建VPNCE采用GRE隧道接入MPLSVPN24多协议本地网InternetTunnelIPX1IPX2IP1IP2IPX1和IPX2是运行NovellIPX的本地网,IP1和IP2是运行IP的本地网。通过在RouterA和RouterB之间采用GRE协议封装的隧道,IPX1和IPX2、IP1和IP2可以互不影响地进行通信。RouterARouterB25tunnelGRE在路由协议中的应用R1R2R3R4Area0Area1Area2OSPFNetworkR1-R4运行OSPF协议,但是要求R1和R4能够通信的话是不可以的,因为区域2和区域0断开了。如果通过OSPF的V-Link是可以解决的,同样这里通过GRE隧道将区域2和区域0连接起来,一样是可以解决区域断开的问题。26扩大跳数受限的网络R1R2R3R4tunnelnetworknetworknetwork网络运行
本文标题:GREProtocol
链接地址:https://www.777doc.com/doc-1228962 .html