篇幅无多余废话,多为代码演示,建议耐心阅读。

这里使用的是cicso的模拟器进行演示,代码理解请根据实际用户的模拟器的进行阅读。

前部分篇幅为基础的拓扑搭建,本篇文章所讲的处理案例请点击这里跳转。

tunnel使用gre协议 gre tunnel 协议down_链路

首先完成拓扑上的路由链路的配置,使得链路上的两台PC机能够互相PING通对方(连接PC机的接口配置不再演示)。

这里声明为什么不用最简单的两台直连路由实验?因为两台直连路由只要完成链路互通就能直接搭建隧道,不会出现该案例讲的原因。

  1. 接口IP地址
  2. 静态路由

路由配置命令参考:

R0(config-if)#int fa0/0
R0(config-if)#ip add 1.1.1.1 255.255.255.0
R0(config-if)#no shu
R0(config-if)#ip route 192.168.2.0 255.255.255.0 1.1.1.2
R1(config)#int fa0/0
R1(config-if)#ip add 1.1.1.2 255.255.255.0
R1(config-if)#no shu

R1(config-if)#int fa0/1
R1(config-if)#ip add 2.1.1.1 255.255.255.0
R1(config-if)#no shu
R1(config)#ip route 192.168.2.0 255.255.255.0 2.1.1.2
R1(config)#ip route 192.168.1.0 255.255.255.0 1.1.1.1
R2(config-if)#int fa0/0
R2(config-if)#ip add 2.1.1.2 255.255.255.0
R2(config-if)#no shu
R2(config)#ip route 192.168.1.0 255.255.255.0 2.1.1.1

PING效果测试:

tunnel使用gre协议 gre tunnel 协议down_路由器_02


使用跟踪路由,获得数据包访问目标所采取的路径:

tunnel使用gre协议 gre tunnel 协议down_路由器_03

GRE VPN 配置命令参考:

R0(config)#int tunnel 0
R0(config-if)#ip address 10.1.1.1 255.255.255.0
R0(config-if)#no shu
R0(config-if)#tunnel source fa0/0
R0(config-if)#tunnel destination 2.1.1.2(目的地址,指向R2的fa0/0)
R2(config)#int tunnel 0
R2(config-if)#ip add 10.1.1.2 255.255.255.0
R2(config-if)#no shu
R2(config-if)#tunnel source fa0/0
R2(config-if)#tunnel destination 1.1.1.1(目的地址,指向R0的fa/0)
当你的Tunnel配置完成后,发现隧道接口状态并没有up,我们查看一下。

tunnel使用gre协议 gre tunnel 协议down_路由器_04


原因分析:

  1. 是否配置了tunnel接口的IP地址。
  2. 是否配置了源地址和目的地址。
  3. 是否源和目的地址之间有可达的路由。

看到这里很明显的,我们上面没有配置隧道的可达路由,测试看看吧

tunnel使用gre协议 gre tunnel 协议down_交换机_05

隧道路由之间的可达链路配置(静态路由):

R0(config)#ip route 192.168.2.0 255.255.255.0 10.1.1.2
R0(config)#ip route 2.1.1.0 255.255.255.0 1.1.1.2
R0(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
R0(config)#no ip route 192.168.2.0 255.255.255.0 1.1.1.2(隧道已经搭建成功,原先的链路不需要了)
R2(config)#ip route 192.168.1.0 255.255.255.0 10.1.1.1
R2(config)#ip route 1.1.1.0 255.255.255.0 2.1.1.1
R2(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
R2(config)#no ip route 192.168.1.0 255.255.255.0 2.1.1.1(隧道已经搭建成功,原先的链路不需要了)

tunnel使用gre协议 gre tunnel 协议down_链路_06

(数据包已经通过构建的隧道进行转发数据)

这里解释一下静态路由这样构建的原因:
  • 第一条静态路由配置是让PC机的数据包去找Tunnel的目的地址,通过隧道进行转发数据。
  • 第二条静态路由配置是因为:文章上面所配置路由的Tunnel目的地址时,分别指向了R0、R2的fa0/0接口地址,即R0指向2.1.1.2,R2指向1.1.1.1。
  • 这样构建后的拓扑可以想象成是两台路由直连,不过中间的链路成了隧道。
  • 所以这里的静态路由就是让数据包找到转发的方向,构成隧道的"畅通",本案例所讲解的down原因,就是此。

本案例来源于学习过程,纯原创,有编辑错误的地方欢迎留言讨论。