《CCIE学习之路》-CCNP阶段之GRE隧道

《CCIE学习之路》-CCNP阶段之GRE隧道

1.GRE介绍

全称:GRE(Generic Routing Encapsulation),通用路由封装协议;
功能:定义了一种网络层协议上封装另一种协议(或同一种协议);
举例:对某种网络层协议(如IP和IPX)的数据进行封装,使这些被封装的数据能够在另一种网络层协议(如IP)中传输;
所在层次:GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术;

2.Tunnel技术

定义:Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据包能在这个通路上传输,并且在一个Tunnel的两端分别对数据包进行封装及解封装。
封装过程
GRE封装过程

  • 经过GRE模块处理后,原IP头部已经被封装在新IP头部和GRE头部之后;
  • 新IP数据包的IP头部的协议号为47;
  • 新IP头部的长度为20字节;
  • GRE头部的长度为4~20字节(根据实际配置而定);

3.GRE格式

GRE头

  • GRE头部结构参照RFC1701定义;前4字节是必须出现的,第5~20字节将根据第1字节的相关bit位xin信息,可选出现。另外GRE的头部长度将影响Tunnel口的MTU值。
  • 0 bit,C:校验和标志位。
    如配置了checksun则该位置为1,同时校验和(可选)、偏离(可选)部分的共4 bytes出现在GRE头部;
    如不配置checksun则该位置位0,同时校验和(可选)、偏离(可选)部分不出现在GRE头部;
  • 1 bit,R:路由标志位。
    如R为1,校验和(可选)、偏离(可选)、路由(可选)部分的8 bytes出现在GRE头部;
    如R为0,校验和(可选)、偏离(可选)、路由(可选)部分不出现在GRE头部;
  • 2 bit,K:密钥标志位。
    如配置了KEY则该位置为1,同时密钥(可选)部分的共4 bytes出现在GRE头部;
    如配置了KEY则该位置为0,同时密钥(可选)部分不出现在GRE头部;
  • 3 bit,S:序列号同步标志位。
    如配置了sequence-datagrams则该位置为1,同时序列号(可选)部分的共4 bytes出现在GRE头部;
    如不配置sequence-datagrams则该位置为0,同时序列号(可选)部分不出现在GRE头部;
  • 4 bit,s:严格原路由标志位。
    除非所有路由都符合严格源路由,该bit位为1,通常该bit位为0;
  • 5 ~ 7 bit,递归控制:该位置需为0。
  • 8 ~ 12 bit,未定义,需为0。
  • 13 ~ 15 bit,版本,需为0。
  • 16 ~ 31 bit,协议类型:常用的协议,例如IP协议为0800。

4.GRE实验

  • 拓扑图
    在这里插入图片描述
  • 实验环境
    某企业的总部与分部之间想要实现内网的互访,R1和R4分别为总部和分部的边界路由器,为真实模拟现实环境,R1和R4分别写一条静态路由指向R2,R1与PC5之间的网段为192.168.1.X/24,R4与PC6之间的网段为192.168.2.X/24;内网路由协议使用EIGRP;使用GRE使得PC5与PC6之间可以互相访问(Ping通即可)。
  • 搭建实验环境

R1环境配置

R1>enable
R1#configure Terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface ethernet 0/0				
R1(config-if)#ip add 202.118.4.1 255.255.255.0     //配置e0/0接口的IP地址
R1(config-if)#no shutdown 
R1(config-if)#interface ethernet 0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0   //配置e0/1接口的IP地址
R1(config-if)#no shutdown 
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 202.118.4.2	   //配置静态路由,指向下一跳R2路由器的e0/0接口
R1(config)#router eigrp 100 
R1(config-router)#network 192.168.1.0

R2环境配置

R2>enable
R2#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#interface ethernet 0/0
R2(config-if)#ip add 202.118.4.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface ethernet 0/2
R2(config-if)#ip add 204.118.4.2 255.255.255.0
R2(config-if)#no shuot down
R2(config-if)#exit

R4环境配置

R4>enable
R4#configure Terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R4(config)#interface ethernet 0/0				
R4(config-if)#ip add 204.118.4.1 255.255.255.0     //配置e0/0接口的IP地址
R4(config-if)#no shutdown 
R4(config-if)#interface ethernet 0/1
R4(config-if)#ip add 192.168.2.254 255.255.255.0   //配置e0/1接口的IP地址
R4(config-if)#no shutdown 
R4(config-if)#exit
R4(config)#ip route 0.0.0.0 0.0.0.0 204.118.4.2	   //配置静态路由,指向下一跳R2路由器的e0/0接口
R4(config)#router eigrp 100 
R4(config-router)#network 192.168.2.0

PC5环境配置

pc5> ip 192.168.1.1 255.255.255.0 192.168.1.254
Checking for duplicate address...
PC1 : 192.168.1.1 255.255.255.0 gateway 192.168.1.254
pc5> 

PC6环境配置

PC6> ip 192.168.2.1 255.255.255.0 192.168.2.254
Checking for duplicate address...
PC1 : 192.168.2.1 255.255.255.0 gateway 192.168.2.254
PC6> 

环境配置完成,现在使用GRE技术实现PC5和PC6之间的互通

  • 只需要在R1和R4上分别配置Tunnel的虚拟接口配置相应的IP地址,并且宣告进EIGRP中即可实现PC5与PC6之间的互通;

5.配置命令

R1上

R1(config)#interface tunnel 0         		   //进入tunnel虚拟接口
*Feb 26 17:17:39.941: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
R1(config-if)#ip add 10.1.1.1 255.255.255.0    //配置隧道虚拟接口的IP地址
R1(config-if)#tunnel mode gre ip    		   //设置tunnel的模式为GRE IP模式
R1(config-if)#tunnel source 202.118.4.1		   //配置tunnel的源IP地址
R1(config-if)#tunnel destination 204.118.4.1   //配置tunnel的目的IP地址
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 10.1.1.0			   //将10.1.1.0网段宣告进入EIGRP

R4上

R4(config)#interface tunnel 0         		   //进入tunnel虚拟接口
*Feb 26 17:17:39.941: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
R4(config-if)#ip add 10.1.1.2 255.255.255.0    //配置隧道虚拟接口的IP地址
R4(config-if)#tunnel mode gre ip    		   //设置tunnel的模式为GRE IP模式
R4(config-if)#tunnel source 204.118.4.1		   //配置tunnel的源IP地址
R4(config-if)#tunnel destination 202.118.4.1   //配置tunnel的目的IP地址
R4(config-if)#exit
R4(config)#router eigrp 100
R4(config-router)#network 10.1.1.0			   //将10.1.1.0网段宣告进入EIGRP

此时R1与R4已经建立了EIGRP邻居,PC5与PC6之间已经能够进行互通
在PC5上Ping一下PC6的IP地址

pc5> ping 192.168.2.1
84 bytes from 192.168.2.1 icmp_seq=1 ttl=62 time=1.502 ms
84 bytes from 192.168.2.1 icmp_seq=2 ttl=62 time=1.435 ms
84 bytes from 192.168.2.1 icmp_seq=3 ttl=62 time=1.338 ms
84 bytes from 192.168.2.1 icmp_seq=4 ttl=62 time=1.159 ms
84 bytes from 192.168.2.1 icmp_seq=5 ttl=62 time=1.176 ms

至此,隧道建立完成!!!

还在学习中,如有问题可以交流,若有不准确的地方还请大神支出,望多多包涵。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值