grevpn建立过程

grevpn建立过程

Success rate is 0 percent (0/5)

R3#

因为使用ping针对的是数据流协议为ip才行,而本例中对于VPN来说所封装的原始IP数据流协议为GRE,所以不能用ping来测试这两个IP。

R3#sh crypto session 

Crypto session current status

Interface: FastEthernet0/0

Session status: UP-ACTIVE    

Peer: 2.2.2.10 port 500 

  IKE SA: local 3.3.3.10/500 remote 2.2.2.10/500 Active 

  IPSEC FLOW: permit 47 host 30.3.3.10 host 20.2.2.10   \“47”表明为GRE协议,如果为“IP”则是IP协议,那么才可以ping通。

        Active SAs: 2, origin: crypto map

R3#

grevpn建立过程

GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是(VirtualPrivate Network)的第三层隧道协议。

Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封装。一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程:

1、Router A 连接Group 1 的接口收到X 协议报文后,首先交由X 协议处理

2、X 协议检查报文头中的目的地址域来确定如何路由此包

3、若报文的目的地址要经过Tunnel 才能到达,则设备将此报文发给相应的Tunnel 接口

4、Tunnel 口收到此报文后进行GRE 封装,在封装IP 报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。

GRE是对某些网络层协议(如:IP,IPX,AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。这是GRE最初的定义,最新的GRE封装规范,已经可以封装二层数据帧了,如PPP帧、MPLS等。在RFC2784中,GRE的定义是“Xover Y”,X和Y可以是任意的协议。GRE真的变成了“通用路由封装”了。

GRE协议实际上是一种封装协议,它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异(本文来自:WwW.dXf5.coM 东星 资源网:grevpn建立过程)种网络中传输。异种报文传输的通道称为tunnel(隧道)。GRE隧道不能配置二层信息,但可以配置IP地址。GRE利用为隧道指定的实际物理接口完成转发,转发过程如下:

(1) 所有发往远端VPN的原始报文,首先被发送到隧道源端

原始报文在隧道源端进行GRE封装,填写隧道建立时确定的隧道源地址和目的地址,然后再通过公共IP网络转发到远端VPN网络

GRE的封装过程无论是何种隧道协议,其数据包格式都是由乘客协议、封装协议和运输协议3部分组成的。例如,以GRE为例,GRE协议栈如下:

图1 GRE协议栈

图2:GRE的封装过程

图2中的原始数据包,可以是IP报文。当然,GRE也可以封装其它的协议报文,如IPX报文、PPP、MPLS等。

总结起来,GRE的封装过程如下:当报文需要经由隧道接口处理时,IP层的输出函数调用tunnel接口的输出函数进行加封装处理。加封装处理结束后,再进行IP转发。GRE隧道对端的解封装过程如下:当IP层接收到GRE报文,检查到外层IP报文头部中的协议号是47时,那么,IP层输入入口函数会根据协议开关表,直接调用GRE的解封装处理函数,对GRE解封装。解封装完成后,再将原始数据报文送入IP输入队列中,以便进行进一步的传输。