1、简述
GRE(Generic Routing Encapsulation)GRE是一种最传统的隧道协议,其根本功能就是要实现隧道功能,以实现异地网络之间可以通过内部私网相互访问。
以上图为例,假设IP地址为10.1.1.1的XP1想访问IP地址为192.168.1.1的XP2,其流程大致如下:
源IP为10.1.1.1,目的IP为192.168.1.1的数据包到达路由器R2后,由于R2配置有GRE,所以此时会在原有的数据包上再封装一个IP包头,源IP为1.1.1.1,目标IP为1.1.1.2。
数据包被发到公网前,又在原来的数据包上封装新的IP包头,源IP为12.1.1.2,目标IP为13.1.1.3,然后路由器根据路由将数据包发送出去。
数据包到达路由器R3后,其将收到的数据包解封后,发现GRE包头,并且本身就是GRE隧道的终点,再次解封包,此时发现源IP地址为10.1.1.1,目标IP地址为192.168.1.1,紧接着就将数据包发往XP2。
XP2收到数据包后,回应源IP为192.168.1.1,目的IP为10.1.1.1的数据包。到达路由器R3后也同样封装GRE包头,源IP为1.1.1.2,目标IP为1.1.1.1。接着封装公网IP包头,源IP为13.1.1.3,目标IP为12.1.1.2。最后将数据包发送出去。
数据包到达路由器R2后,其将收到的数据包解封后,发现GRE包头,并且本身就是GRE隧道的终点,再次解封包,此时发现源IP地址为192.168.1.1,目标IP地址为10.1.1.1,紧接着就将数据包发往XP1。至此完成了一次通过私网互访的完整通信过程。
2、基础网络配置。
R1配置:
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
interface FastEthernet1/0
ip address 13.1.1.1 255.255.255.0
R2配置:
interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
interface FastEthernet1/0
ip address 10.1.1.254 255.255.255.0
ip route 0.0.0.0 0.0.0.0 12.1.1.1
R3配置:
interface FastEthernet0/0
ip address 13.1.1.3 255.255.255.0
interface FastEthernet1/0
ip address 192.168.1.254 255.255.255.0.3
ip route 0.0.0.0 0.0.0.0 13.1.1.1
此时XP1和XP2是无法通过私网互通的。
3、GRE配置
R2配置:
interface Tunnel2
ip address 1.1.1.1 255.255.255.252
tunnel source 12.1.1.2
tunnel destination 13.1.1.3
R3配置:
interface Tunnel3
ip address 1.1.1.2 255.255.255.252
tunnel source 13.1.1.3
tunnel destination 12.1.1.2
此时XP1和XP2依旧无法通过私网互通的,是因为此时数据包是通过物理口将数据发送出去的,而到达公网后,因为公网没有私网的路由而将数据包丢弃。
4、GRE路由配置。
R2配置:
ip route 192.168.1.0 255.255.255.0 Tunnel2
R3配置:
ip route 10.1.1.0 255.255.255.0 Tunnel3
配置GRE路由之后,所有前往私网的数据包都走GRE隧道。此时就可以通过私网正常互通了。
本文转自开源殿堂 51CTO博客,原文链接:http://blog.51cto.com/kaiyuandiantang/1694634,如需转载请自行联系原作者