阿里云VPC网络之间通过GRE隧道打通
此前介绍了VPC网络下阿里云服务器如何配置Snat让整个VPC网络都通过一个EIP访问公网,今天介绍一下如何通过GRE隧道将两个VPC网络的私网打通。
测试环境如下:
2个VPC(VPC1,VPC2)代表两个完全隔离的物理网络
每个VPC网络交换机,路由器,公网IP各一个,ECS2台,一台作为VPC网络的网关,一台作为局域网内部的服务器。
VPC1: {EIP:112.74.32.191 GW:172.16.1.1 VPC1-Client: 172.16.1.2}
VPC2: {EIP:112.74.32.161 GW:172.16.2.1 VPC2-Client: 172.16.2.2}
拓扑如下:
VPC1-GW操作
加载gre模块
1 | [root@VPC1-GW ~] # modprobe ip_gre |
2 | [root@VPC1-GW ~] # lsmod |grep gre |
3 | ip_gre 9575 0 |
4 | ip_tunnel 12597 1 ip_gre |
创建隧道tun1
1 | [root@VPC1-GW ~] # ip tunnel add tun1 mode gre remote 112.74.32.161 local 172.16.1.1 |
激活隧道tun1
1 | [root@VPC1-GW ~] # ip link set tun1 up |
为隧道配置互联地址
1 | [root@VPC1-GW ~] # ip addr add 192.168.2.1 peer 192.168.2.2 dev tun1 |
将访问VPC2网络的数据都丢到tun1接口
1 | [root@VPC1-GW ~] # route add -net 172.16.2.0/24 dev tun1 |
#VPC2-GW配置和VPC1一样,只是链路反过来,按照实际情况修改一下。
1 | [root@VPC2-GW ~] # modprobe ip_gre |
2 | [root@VPC2-GW ~] # lsmod |grep gre |
3 | ip_gre 9575 0 |
4 | ip_tunnel 12597 1 ip_gre |
5 | [root@VPC2-GW ~] # ip tunnel add tun1 mode gre remote 112.74.32.191 local 172.16.2.1 |
6 | [root@VPC2-GW ~] # ip link set tun1 up |
7 | [root@VPC2-GW ~] # ip addr add 192.168.2.2 peer 192.168.2.1 dev tun1 |
8 | [root@VPC2-GW ~] # route add -net 172.16.1.0/24 dev tun1 |
查看隧道,属于激活状态
从VPC2网络测试VPC1的GW,已经可以联通,从VPC1测试VPC2的GW也可以联通了
1 | [root@VPC2-GW ~] # nc -zv 172.16.1.1 22 |
2 | Connection to 172.16.1.1 22 port [tcp/ ssh ] succeeded! |
3 | [root@VPC1-GW ~] # nc -vz 172.16.2.1 22 |
4 | Connection to 172.16.2.1 22 port [tcp/ ssh ] succeeded! |
至此,两个VPC网络的网关都已经能互通了,但是测试两个VPC网络的其他服务器,目前依然不能互通,如下:
这是因为路由还不通,这里以VPC2的client访问VPC1的client为例:
登陆VPC2的控制台为VPC2路由器配置默认路由,指向配置了EIP的VPC2-GW(可参考此前的SNAT教程),
登陆VPC2-GW,开启IP转发,并配置SNAT,让VPC1client的数据包转换为GRE隧道可以通讯的192.168.2.2这个IP:
1 | [root@VPC2-GW ~] # echo 1 > /proc/sys/net/ipv4/ip_forward |
2 | [root@VPC2-GW ~] # iptables -t nat -I POSTROUTING -s 172.16.2.0/24 -d 172.16.1.0/25 -j SNAT --to 192.168.2.2 |
这时,VPC2-client的数据包已经可以到达VPC1-GW了(VPC2-client->VPC2路由->VPC2-G->GRE->VPC1-GW),但是依然Ping不通,抓包看一下:
源地址是VPC1的互联地址,目标地址是172.16.1.2,这个路径显然是不通的,需要VPC1-GW将这个数据包转换为VPC1网络的地址:
1 | [root@VPC2-GW ~] # echo 1 > /proc/sys/net/ipv4/ip_forward |
2 | [root@VPC1-GW ~] # iptables -t nat -I POSTROUTING -j SNAT --to 172.16.1.1 |
配置完毕后,VPC1->VPC2反向也做同样的配置。
至此再做测试,VPC1和VPC2的网络就完全互通了:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云SLB使用Windows 2008/Windows 2012时TCP端口不通
Linux使用LVS DR或者阿里云的SLB TCP模式转发时,需要关闭rp_filter参数,否则会造成健康检查正常,但是端口不通的情况。 随着Windows系统的升级,在Windows2008以上版本, 也有了这样类似功能的参数weakhostsend(中文版系统叫弱主机),如果弱主机发送接收被禁用,就会导致阿里云TCP协议的SLB转发异常。win/linux下这个参数的功能是类似的,都是为了 防止跨接口转发数据包。 我们来测试一下: 1 2 SLB VIP : 101.201.178.107 ECS 公网 IP: 123.57.147.200 SLB配置,前后端都是用TCP协议的3389,如下: 查看目前的配置 01 PS C:\Users\Administrator> netsh interface ipv4 show interface 本地连接 02 03 接口 本地连接 参数 04 ---------------------------------------------- 05 IfLuid : ethernet_14 06 IfIndex : 14 07 状态...
- 下一篇
阿里云磁盘无损扩容&Windows,Linux无损扩容分区大小
曾经何时,阿里云升级磁盘只能购买一块新的磁盘,这样老的磁盘大小不够的时候,只能被丢弃然后购买一块更大的磁盘。独立云磁盘推出后虽然可以随时释放老的磁盘了,但是数据迁移也是个大问题。终于,阿里云推出磁盘扩容功能,今天测试了一把无损扩容磁盘分区,记录下来分享大家。 由于涉及到磁盘操作,强烈建议操前创建一个自定义快照做个备份,数据无价,一个操作毁一生~~ 1 Linux操作: 如下,是一个7G的非LVM分区(LVM磁盘的扩容,只需要扩容物理磁盘,通过vgchange -a n vgname取消vg激活状态,通过fdisk等工具将新扩容的部分创建为一个新的分区,然后通过vgchange -ay vgname激活vg,将新的分区加入到vg中即可。) 从控制台扩容到8G,然后从控制台重启VM使新的磁盘尺寸生效(测试独立云磁盘,从控制台卸载后重新挂载也可生效,对无法重启的服务器可以用这招) 重启后查看,磁盘已经8G了,但是原来的/dev/xvdc1分区依然是7G 为了测试是否是真的无损,我们先在这个7G的分区下,创建一个内容为test的文件 1 [root@AY140627175005145240Z ...
相关文章
文章评论
共有0条评论来说两句吧...