ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Cisco路由器配置GRE(路由封装)隧道的方法

2014-8-26 11:53| 发布者: admin| 查看: 7146| 评论: 0

摘要: 路由封装(GRE)是由思科公司提出的标准,如今已经成为行业公认的标准了。被定义在RFC 1701、RFC 1702和RFC 2784中。简单来说,GRE就是一种隧道协议,用来从一个网络向另一个网络传输数据包。下文通过实例来说明配置 ...

路由封装(GRE)是由思科公司提出的标准,如今已经成为行业公认的标准了。被定义在RFC 1701、RFC 1702和RFC 2784中。简单来说,GRE就是一种隧道协议,用来从一个网络向另一个网络传输数据包。下文通过实例来说明配置的方法,包括为什么使用GRE和解决使用过程中一些问题的办法。

GRE是一种VPN隧道技术,其原理为本端路由器将3层报文封装到IP报文里,通过IP网络(例如Internet)送 到对端路由器后再解开还原。可以把tunnel想象成一条DDN专线,tunnel口上配置的ip地址就相当于连接DDN专线的串口的IP地址。这个地址 一般是内部的IP,Internet上是不认的。

如果你觉得它和虚拟专用网(VPN)有些类似,那只是因为:从技术上讲,GRE隧道是某一类型的VPN,但是并不是一个安全隧道方式。不过你也可以使用某种加密协议对GRE隧道进行加密,比如VPN网络中常用的IPSec协议。

实际上,点到点隧道协议(PPTP)就是使用了GRE来创建VPN隧道。比如,如果你要创建Microsoft VPN隧道,默认情况下会使用PPTP,这时就会用到GRE。

为什么要用GRE?

为什么要使用GRE进行隧道传输呢?原因如下:

有时你需要加密的多播传输。GRE隧道可以像真实的网络接口那样传递多播数据包,而单独使用IPSec,则无法对多播传输进行加密。多播传输的例子包括OSPF, EIGRP, 以及RIPV2。另外,大量的视频、VoIP以及音乐流程序使用多播。

你所采用的某种协议无法进行路由,比如NetBIOS或在IP网络上进行非IP传输。比如,你可以在IP网络中使用GRE支持IPX或AppleTalk协议。

你需要用一个IP地址不同的网络将另外两个类似的网络连接起来。

如何配置GRE隧道?

在Cisco路由器上配置GRE隧道是一个简单的工作,只需要输入几行命令即可实现。以下是一个简单的例子。

路由器A:

interface Ethernet0/1
ip address 10.2.2.1 255.255.255.0

interface Serial0/0
ip address 192.168.4.1 255.255.255.0

interface Tunnel0
ip address 1.1.1.2 255.255.255.0
tunnel source Serial0/0
tunnel destination 192.168.4.2

路由器B:

interface FastEthernet0/1
ip address 10.1.1.1 255.255.255.0

interface Serial0/0
ip address 192.168.4.2 255.255.255.0

interface Tunnel0
ip address 1.1.1.1 255.255.255.0
tunnel source Serial0/0
tunnel destination 192.168.4.1

另外注意下路由配置情况,
而tunnel source和tunnel destination地址是Internet上可以路由的IP地址,用于建立tunnel。例如,本端路由器地址规划为:
eth0:10.1.1.1/24 
http://www.luyouqiwang.com/14711/ (连接内部局域网)
tunnel0:10.2.1.1/30(tunnel source:202.38.160.1;tunnel destination:192.15.135.80)
serial0:202.38.160.1/24(连接Internet)
ip route 10.3.1.0 255.255.255.0 10.2.1.2(到对端以太网的路由)
对端路由器地址规划为:
eth0:10.3.1.1/24(连接内部局域网)
tunnel0:10.2.1.2/30(tunnel source:192.15.135.80;tunnel destination:202.38.160.1)
serial0:192.15.135.80/24(连接Internet)
ip route 10.1.1.0 255.255.255.0 10.2.1.1(到对端以太网的路由)

在这个例子中,两个路由器均拥有虚拟接口,即隧道接口。这一接口属于各自的网络,就好像一个点到点的T1环路。跨越隧道网络的数据采用串行网络方式传输。

对于每个路由器都有两种途径将数据传递到另一端,即通过串行接口以及通过隧道接口(通过隧道传递数据)。该隧道可以传输非路由协议的数据,如NetBIOS或AppleTalk。如果数据需要通过互联网,你可以使用IPSec对其进行加密。

从下面的信息反馈可以看出,路由器B上的隧道接口和其他网络接口没有什么不同:

RouterB# sh ip int brie

Interface   IP-Address   OK? Method Status                 Protocol
Ethernet0   10.1.1.1     YES manual up                     down
Serial0     192.168.4.2 YES manual up                     up
Serial1     unassigned   YES unset   administratively down down
Tunnel0     1.1.1.1      YES manual up                     up
RouterB#

解决GRE隧道的问题

由于GRE是将一个数据包封装到另一个数据包中,因此你可能会遇到GRE的数据报大于网络接口所设定的数据包最大尺寸的情况。接近这种问题的方法是在隧道接口上配置ip tcp adjust-mss 1436。

另外,虽然GRE并不支持加密,但是你可以通过tunnel key命令在隧道的两头各设置一个密钥。这个密钥其实就是一个明文的密码。

由于GRE隧道没有状态控制,可能隧道的一端已经关闭,而另一端仍然开启。这一问题的解决方案就是在隧道两端开启 keepalive数据包。它可以让隧道一端定时向另一端发送keepalive数据,确认端口保持开启状态。如果隧道的某一端没有按时收到 keepalive数据,那么这一侧的隧道端口也会关闭。

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2024-5-16 08:02 , Processed in 0.159658 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部