本文系统 CentOS 6.3
tunnel 技术就是使不同地方的机房通过公网实现两边的机房内部的局域网互联互通。
因为没有实际环境,以下配置全在虚拟机中实现
------------------------------------------INTERNET--------------------------------------------------
| 192.168.100.0/24 | 10.6.88.229 <------> 10.6.88.223 |192.168.200.0/24 | |
client1 |- - - - | | - - - - | client2 |
| eth0(内网) | eth1(外网) | | eth1(外网)| eth0(内网) | |
----------------------------------------------------------------------------------------------------
在10.6.88.229中配置:
#加载路由模块
modprobe ipip
modprobe ip_gre
#添加隧道 ip tunnel add 隧道名 mode 协议 remote 远端可通ip local 本地出口ip ttl 255(64)
ip tunnel add tun30 mode gre remote 10.6.88.223 local 10.6.88.229 ttl 255
#启动隧道
ip link set tun30 up
#为隧道增加虚拟ip
ip addr add 172.16.10.1 dev tun30
#增加路由,目标本机虚拟ip通过本机tun30隧道连接
ip route add 172.16.10.1 dev tun30
#增加路由,目标远端内网ip通过本机tun30隧道连接
ip route add 192.168.200.0/24 dev tun30 via 172.16.10.1
#增加路由,目标远端隧道ip通过本机tun30隧道连接
ip route add 192.168.10.0/24 dev tun30 via 172.16.10.1
#增加一个 arp 的响应机制及打开ip转发功能
arp -Ds 192.168.100.253 eth1 pub
sysctl -w net.ipv4.ip_forward=1
在10.6.88.223中配置:
#加载路由模块
modprobe ipip
modprobe ip_gre
#添加隧道 ip tunnel add 隧道名 mode 协议 remote 远端可通ip local 本地出口ip ttl 255(64)
ip tunnel add tun40 mode gre remote 10.6.88.229 local 10.6.88.223 ttl 255
#启动隧道
ip link set tun40 up
#为隧道增加虚拟ip
ip addr add 192.168.10.1 dev tun40
#增加路由,目标本机虚拟ip通过本机tun40隧道连接
ip route add 192.168.10.1 dev tun40
#增加路由,目标远端内网ip通过本机tun40隧道连接
ip route add 192.168.100.0/24 dev tun40 via 192.168.10.1
#增加路由,目标远端隧道ip通过本机tun40隧道连接
ip route add 172.16.10./24 dev tun40 via 192.168.10.1
#增加一个 arp 的响应机制及打开ip转发功能
arp -Ds 192.168.100.253 eth1 pub
sysctl -w net.ipv4.ip_forward=1
配置完成后10.6.88.229和10.6.88.223就已经建立起tunnel了(一个简单的没有任何加密的隧道建立好了,这样通讯可能会带来安全隐患,毕竟我们访问的是内网。加密话需要使用到IPsec)
最后检测下连通性,直接在client1上ping client2