logo资料库

Cisco路由器配置GRE隧道详解.docx

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
Cisco路由器配置GRE隧道
Cisco 路由器配置 GRE 隧道 路由封装(GRE)最早是由 Cisco 提出的,而目前它已经成为了一种标准,被定义在 RFC 1701, RFC 1702, 以及 RFC 2784 中。简单来说,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(连接内部局域网) 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 Serial0 Serial1 Tunnel0 up RouterB# down 192.168.4.2 YES manual up up unassigned YES unset administratively down down 1.1.1.1 YES manual up 解决 GRE 隧道的问题 由于 GRE 是将一个数据包封装到另一个数据包中,因此你可能会遇到 GRE 的数据报大于网络接口 所设定的数据包最大尺寸的情况。接近这种问题的方法是在隧道接口上配置 ip tcp adjust-mss 1436。 另外,虽然 GRE 并不支持加密,但是你可以通过 tunnel key 命令在隧道的两头各设置一个密钥。 这个密钥其实就是一个明文的密码。 由于 GRE 隧道没有状态控制,可能隧道的一端已经关闭,而另一端仍然开启。这一问题的解决方 案就是在隧道两端开启 keepalive 数据包。它可以让隧道一端定时向另一端发送 keepalive 数 据,确认端口保持开启状态。如果隧道的某一端没有按时收到 keepalive 数据,那么这一侧的 隧道端口也会关闭。
分享到:
收藏