实现跨机房内网网络互通

服务器环境

服务器环境

  机房 机器名称 公网IP 内网IP 公网网卡 内网网卡 系统 隧道虚拟ip
1 机房A test1 58.64.177.151 192.168.177.151 eth0 eth1 centos7 192.168.253.5
2 机房B test2 122.128.111.219 172.16.2.31 eth0 eth1 centos7 192.168.253.6


目的:按道理test1和test2的公网是可以互访的,但是内网之间是不能通信的。所以我们今天就是为了实现他们两个内网之间可以互通甚至是两个机房的内网都可以互通。

 

一.实现方式

两台机器都执行:echo 1 > /proc/sys/net/ipv4/ip_forward

两台机器分别作为两个机房的网关机器,实现网络转发。

1.在test1上执行:

ip tunnel del ipip0 mode ipip remote 122.128.111.219 local 58.64.177.151 ttl 255
ip tunnel add ipip0 mode ipip remote 122.128.111.219 local 58.64.177.151 ttl 255
ip link set ipip0 up
ip addr add 192.168.253.5 peer 192.168.253.6 dev ipip0
ip route add 172.16.2.31 dev ipip0 via 192.168.253.6

iptables -t nat -o eth1 -A POSTROUTING -s 192.168.253.0/24 -j MASQUERADE

执行完成后可以虚拟出一个网卡:ipip0

2.在test2上执行:

ip tunnel del ipip0 mode ipip remote 58.64.177.151 local 122.128.111.219 ttl 255
ip tunnel add ipip0 mode ipip remote 58.64.177.151 local 122.128.111.219 ttl 255
ip link set ipip0 up
ip addr add 192.168.253.6 peer 192.168.253.5 dev ipip0
ip route add 192.168.177.151 dev ipip0 via 192.168.253.5

iptables -t nat -o eth1 -A POSTROUTING -s 192.168.253.0/24 -j MASQUERADE

执行完成后我们也可以看到test2上面虚拟出同样一个网卡:ipip0

3.如果机房A的其它机器想访问机房B的其它机器

例如:机房A192.168.177.0/24网段的其它机器想访问机房B其它172.16.2.0/24网段的其它机器
则在192.168.177.0/24网段的其它机器上执行route add -net 172.16.2.0/24 gw  192.168.177.151 就可以了
反之:机房B172.16.2.0/24网段的其它机器想访问机房A其它192.168.177.0/24网段的其它机器
则在172.16.2.0/24网段的其它机器上执行route add -net 192.168.177.0/24 gw 172.16.2.31 就可以了,这样两台机器就可以互访了

参考链接:https://blog.csdn.net/XiaoXiao__cc/article/details/81559628

你可能感兴趣的:(实现跨机房内网网络互通)