话不多说,上图:

这里是最简单的两个路由器配置。
左右代码粘贴进路由器就可以。
pc1,IP:192.168.1.1 掩码:255.255.255.0 网关:192.168.1.254
pc2,IP:192.168.2.1 掩码:255.255.255.0 网关:192.168.2.254

PS: 路由器配置里的gre key 123456是配置密钥,还有其他的配置,这些根据需要,不配置也能ping通。

三个路由器的话,上图:

这里是有一个路由器隔开了,所以两边的路由器要配置静态路由才能找到对面(所以多了那条ip route-static 20/10…巴拉巴拉)

ps: 当然这两条静态路由也可以用缺省路由代替,因为查路由表的最长匹配原则,ping 192.168.2.1的包肯定会匹配到gre_vpn的那条路由(就这两条路由,你肯定知道我说哪条的哈)

补充:缺省路由写法是这样的( ip route-static 0.0.0.0 0.0.0.0 下一跳地址)

总结:gre是一种网络层协议

GRE(Generic Routing Encapsulation,通用路由封装)是一个三层协议,能够将各种不同的数据包封装成IP包,然后通过IP网络进行传输.它能对IP包或非IP包进行再封装,而再封装方式是在原始包头的前面加一个GRE包头和一个新IP包头:采用明文传送,在IP中的协议号为47.

通过gre协议可以建立VPN,上面的两个拓扑明显是LAN—LAN (局域网到局域网),能解决的用户场景是,企业总部和企业分部以及类似的网络访问需要。
在两个出口路由器,除了基本的连接路由配置。
需要的配置:

1、创建隧道 : int tunnel 0/0/0
2、声明协议是gre : tunnel-protocol gre
3、配置隧道源入口IP :ip add 172.16.1.1 24 (ip视情况!这个IP,这个地址会被封装到gre包头里,外面在加上出口路由器的包头,进入互联网后,数据包根据外面的IP转发到对端路由器接口,拆包到,这个IP,路由器就能知道这是发给gre隧道的,额,我是这么理解的)
4、source 10.0.0.1 指定出口公网IP(出口路由器的出接口IP)
5、destination 10.0.0.2 指定目的公网IP(目的局域网路由器的入接口IP)
6、ip route-static 192.168.2.1 24 tunnel 0/0/0 告诉路由器,有往这个网段的包,扔给0/0/0这个vpn隧道。