背景
不同 VPC 之间或者是云下 IDC 机房和 VPC 网络之间互通,可以通过高速通道、自建 Site to Site VPC 和 GRE 隧道 3 种方式实现互通。本介绍如何使用 GRE 实现互通并对相关问题进行分析。
部署架构和环境介绍
部署图拓扑图:
杭州节点:
- 网段:172.16.0.0/24
- 部署 GRE ECS:172.16.0.1 绑定 EIP:121.196.208.175 系统:Centos6.5
- 隧道互联地址:192.168.1.1
- 测试主机:172.16.0.136 系统:Centos6.5
北京节点:
- 网段:10.10.10.0/24
- 部署 GRE ECS:10.10.10.1 绑定EIP:60.205.187.39 系统:Centos6.5
- 隧道互联地址:192.168.1.2
- 测试主机:10.10.10.118 系统:Centos6.5
部署步骤
一、杭州 VPC 部署
1、在虚拟路由器上添加去往 10.10.10.0/24 指向 ECS:172.16.0.1
2、在杭州 VPC 的虚拟路由器上增加去往互联地址的路由:
3、在 ECS:172.16.0.1 上加载 GRE 模块
[root@HZ-GW ~]# modprobe ip_gre
[root@HZ-GW ~]# lsmod |grep ip_gre
9575 0 ip_tunnel 12661 1 ip_gre
4、在 ECS:172.16.0.1 上创建隧道 tun1
[root@HZ-GW ~]# ip tunnel add tun1 mode gre remote 60.205.187.39 local 172.16.0.1
5、在 ECS:172.16.0.1 上激活隧道 tun1
[root@HZ-GW ~]# ip link set tun1 up
6、在 ECS:172.16.0.1 上为隧道配置互联地址
[root@HZ-GW ~]# ip addr add 192.168.1.1 peer 192.168.1.2 dev tun1
7、在 ECS:172.16.0.1 上指路由,将访问 10.10.10.0/24 丢到 tun1 上
[root@HZ-GW ~]# route add -net 10.10.10.0/24 dev tun1
8、在 ECS:172.16.0.1 上开启路由转发
[root@HZ-GW ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
以上已经把 GER 在杭州的环境已经配置好
二、北京 VPC 部署
1、在虚拟路由器上添加去往 172.16.0.0/24 指向 ECS:10.10.10.12、在杭州 VPC 的虚拟路由器上增加去往互联地址的路由:
3、在 ECS:10.10.10.1上加载 GRE 模块
[root@BJ-GW ~]# modprobe ip_gre
[root@BJ-GW ~]# lsmod |grep ip_gre
9575 0ip_tunnel 12661 1 ip_gre
4、在 ECS:10.10.10.1 上创建隧道 tun1
[root@BJ-GW ~]# ip tunnel add tun1 mode gre remote 121.196.208.175 local 10.10.10.1
5、在 ECS:10.10.10.1 上激活隧道 tun1
[root@BJ-GW ~]# ip link set tun1 up
6、在 ECS:10.10.10.1 上为隧道配置互联地址
[root@BJ-GW ~]# ip addr add 192.168.1.2 peer 192.168.1.1 dev tun1
7、在 ECS:10.10.10.1上指路由,将访问 172.16.0.0/24 丢到 tun1上
[root@BJ-GW ~]# route add -net 172.16.0.0/24 dev tun1
8、在 ECS:10.10.10.1 上开启路由转发
[root@BJ-GW ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
以上已经把 GER 在北京的环境已经配置好:
测试
1、在北京 VPC 下测试去往杭州 VPC
在 10.10.10.1上 ping 172.16.0.1 通
在 10.10.10.1上 ping 172.16.0.136 通
在 10.10.10.118 上 ping 172.16.0.136 通
在 10.10.10.118 上 ping 172.16.0.1 通
2、在杭州 VPC 下测试去往北京 VPC
在 172.16.0.1 上 ping 10.10.10.1 通
在 172.16.0.1 上 ping 10.10.10.118 通
在 172.16.0.136 上 ping 10.10.10.118 通
在 172.16.0.136 上 ping 10.10.10.1 通
总结
在搭建 GRE 隧道的时候,如果发现不通,要注意的地址是内核上要开启路由转发,相关路由要设置正确。如果检查配置没有问题还是不通,那么建议在各个节点上进行抓包。