mingyunyuziyou

如何连接两个局域网

作者: 秒速五厘米     
 


首先定义一下什么叫做连接两个局域网


假如一个局域网在192.168.1.0/24 这个段,另外一个局域网在192.168.2.0/24这个段,我们可以在192.168.1.0这个网段里直接访问192.168.2.0里的任何ip,也可以在192.168.2.0里访问任何192.168.1.0里的ip,那么这个就叫做连接两个局域网


如果192.168.1.0和192.168.2.0能够通过第三个网络进行连接,比如互联网,应用场景可能是两个机房,怎么做呢?


1、vpn,这是一个很自然的想法,通过vpn将两边连接起来,但是这需要额外的vpn服务器和客户端软件,比如openvpn


2、如果两个网络都有一个公网ip服务器,那么可以直接通过ip tunnel来解决


方法如下


ip tunnel add mytun mode ipip remote 192.168.2.x local 192.168.1.y


ip config mytun 10.2.8.1 up


route add -net 10.2.8.0 netmask 255.255.255.0 dev mytun


route add -net 192.168.2.0 netmask 255.255.255.0 dev mytun



我们来看一下每条命令都是什么意思


ip tunnel add mytun mode ipip remote 192.168.2.x local 192.168.1.y


这是指在当前机器上建立一个tunnel,本地ip是192.168.1.y,当有路由请求通过这个tunnel时,发送给远端的192.168.2.x


ip config mytun 10.2.8.1 up


给这个新建的设备一个ip


route add -net 10.2.8.0 netmask 255.255.255.0 dev mytun


route add -net 192.168.2.0 netmask 255.255.255.0 dev mytun


凡是 发给10.2.8.0和192.168.2.0的请求请路由给mytun设备,这样一来就会直接发给192.168.2.x


于是很显然192.168.2.0里也得有一台机器干同样的事情


ip tunnel add mytun mode ipip remote 192.168.1.y local 192.168.1.x


ip config mytun 10.2.8.2 up


route add -net 10.2.8.0 netmask 255.255.255.0 dev mytun


route add -net 192.168.1.0 netmask 255.255.255.0 dev mytun