华为云上有三台云主机,内网 CIDR 是 192.168.0.0/24,阿里云上有三台云主机,内网 CIDR 是 172.26.32.0/24。现在想要打通两个云商之间的内网,使得华为云上的云主机能够访问阿里云上的内网IP地址,同时阿里云上的云主机能够访问华为云上的内网IP地址。下边将会介绍通过 GRE 隧道打通华为云 192.168.0.200 主机与阿里云 172.26.32.235 两台云主机之间的内网通信,GRE 隧道搭建完成后,192.168.0.200 与 172.26.32.235 能够正常的通过内网 IP 进行互通,但并不能支持 172.168.0.201 与 172.26.32.103 主机之间的内网通信,如果想要打通华为云内网与阿里云内网所有云主机的内网通信,需要在 GRE 隧道搭建完成后做额外的服务配置,本章节暂时不做介绍,后续单独介绍。
我们选择内网 IP 地址为 192.168.0.200 的云主机部署 GRE隧道。
ip_forward
。echo > /etc/sysctl.d/gre.conf <
modprobe ip_gre
lsmod | grep ip_gre
remote IP
地址为阿里云云主机的公网IP地址,local IP
为华为云云主机内网地址。ip tunnel add tunnel999 mode gre remote 114.116.84.123 local 192.168.0.200
ip link set tunnel999 up
ip addr add 192.168.100.1 peer 192.168.100.2/32 dev tunnel999
route add -net 172.26.32.0/24 dev tunnel999
route -n
华为云上的GRE隧道搭建完成,但此时隧道无法正常工作,需要等待阿里云上的隧道搭建完成后,隧道才能正常实现阿里云与华为云内网通信。
我们选择内网 IP 地址为 172.26.32.235 的云主机部署 GRE隧道。
echo > /etc/sysctl.d/gre.conf <
modprobe ip_gre
lsmod | grep ip_gre
remote IP
地址为华为云云主机的公网IP地址,local IP
为阿里云云主机内网地址。ip tunnel add tunnel999 mode gre remote 112.124.59.21 local 172.26.32.235
ip link set tunnel999 up
ip addr add 192.168.100.2 peer 192.168.100.1/32 dev tunnel999
route add -net 192.168.0.0/24 dev tunnel999
route -n
如上图中 tunnel999 虚拟网卡接口有两条路有记录。
不同的云商设置安全组的菜单不一样,例如在华为云上设置安全组,允许GRE协议。如果不设置安全组,将会导致GRE隧道无法正常通信。
阿里云上设置安全组请参考阿里云操作手册,如果有防火墙策略禁用了GRE协议,请清理防火墙中相关的设置,允许GRE协议。
ping 172.26.32.235
ping 192.168.0.200
通过搭建GRE隧道,将两个不同云商之间的云主机内网打通,实现两个云之间节点内网通信。此功能与云商提供的对等连接有相似之处,云商提供的对等连接服务一般针对同一云商跨VPC之间的网络互通,通过自行搭建GRE隧道,可实现不同云商之间云主机内网互通,但这种做法存在网络安全问题,以及网络稳定性问题,毕竟GRE隧道仍然通过公网通信,想要实现更安全的网络隧道服务,可通过IPSec或VPN建立加密通信服务,保证通信的安全可靠。亦或是将加密传输交给业务应用自行处理,GRE隧道只负责网络通道的能力,但这种做法依赖于业务应用必须支持加密传输。