一、完成基础配置
R1
R2
R3
二、配置GRE隧道接口和隧道参数
[r1] interface tunnel 0/0/0 #创建Tunnel0/0/0接口
[r1-Tunnel0/0/0] tunnel-protocol gre #指定Tunnel接口的协议类型为GRE
[r1-Tunnel0/0/0] ip address 192.168.3.1 24 #配置Tunnel接口的IP地址
[r1-Tunnel0/0/0] source 12.0.0.1 #指定Tunnel的本地源
[r1-Tunnel0/0/0] destination 23.0.0.3 #指定Tunnel的目的地
[r1-Tunnel0/0/0] quit
[r1] ip route-static 192.168.2.0 24 192.168.3.2 #配置静态路由,将去往192.168.2.0/24网络的流量引导向192.168.3.2
[r3] interface tunnel 0/0/0
[r3-Tunnel0/0/0] tunnel-protocol gre
[r3-Tunnel0/0/0] ip address 192.168.3.2 24
[r3-Tunnel0/0/0] source 23.0.0.3
[r3-Tunnel0/0/0] destination 12.0.0.1
[r3-Tunnel0/0/0] quit
[r3] ip route-static 192.168.1.0/24 192.168.3.1
以R1的配置为例,我们首先是创建了一个隧道口(Tunnel),然后将隧道接口指定为GRE类型,并指定隧道的源和目的。隧道的源是本地的GE0/0/0接口,隧道的目的地址是23.0.0.3 。当R1收到需要从隧道接口送出的报文时,它会为这些报文封装上一个GRE的头部,然后再封装上一个新的IP头部,在这个IP头部中写入源地址12.0.0.1(也就是GE0/0/0接口的地址)和目的IP地23.0.0.3,然后把数据包转发出去。那么什么数据包是需要被送到隧道的呢?这就要看路由了,我们配置的ip route-static192.168.2.0 24 tunnel0/0/0这条路由发挥的用途就是将去往192.168.2.0/24这个网络的报文送到隧道。由于送入隧道的报文被封装上一个新的IP头部,而这个IP头部中的源、目的地址是全局可路由的,因此这个报文会被顺利的转发到隧道的另一端,另一端的路由器将增加的IP头部和GRE头部剥除,然后将里头所包裹的数据转发下去。如此一来,两座孤岛就能够被打通。