郭玉超

N2N异地组网实战

2019-06-06 Views 网络 5 min read            
 

用户需求

技术人员在公司本地即可实现像访问本地网络(例如192.168.1.1)一样来访问异地网络,从而能够对远端路由网关下面的PLC等设备进行维护与调试。

拓扑结构

EbdVFH.png

工作原理

在这里简单介绍一下N2N的原理。如下图所示,

n2n_yuanli.png

n2n是一个二层架构的VPN网络,服务器端中心节点(SuperNode) 用于交流,相当于一个”路由器”, 而边界节点(EdgeNode)就是每一台在网络中(可以是内网中)的主机。EdgeNode通过和SuperNode沟通后,进入某个组的“局域网”,当有同“局域网”(同组)的主机进行连接时,两台主机就直接连接起来,就像局域网内的两台主机一样。在两台主机连接后, SuperNode任务完成,EdgeNode断开中心节点,实现P2P的加密通信。因此SuperNode并不参与两台主机间直接通信,。只是起到媒人的作用。

解决过程

本地PC

首先我们需要在本地PC安装N2N组网软件。您既可以选择源码编译方式安装,也可以选择下载编译后的程序直接使用,在这里我们用已经编译好的客户端软件做示范。下载程序,以管理员权限安装TAP适配器驱动,然后打开客户端并填写必要参数,如下图所示:

n2n_win.png

对于服务器地址和端口,可以采用网络的免费的服务器,也可以选择自建服务器。本地IP是您所想要使用的虚拟IP,组名和密码决定了您与其他设备能否处于同一网络内。服务器版本需要和客户端版本一致,否则无法连接。附加参数我们需要勾选-r参数以开启流量转发功能。填写完毕后,启动软件便可以连接了。

远程网关

其次我们还需要在远端路由网关安装N2N客户端。

OpenWrt硬路由型网关

如何安装N2N我们不再赘述,安装完成后,编辑配置文件如下:cat /etc/config/n2n_v2

config edge
	option enabled      '1'
	option tunname      'n2n'
	option mode         'static'
	option ipaddr		'10.10.10.100'
	option netmask      '255.255.255.0'
	option supernode	'你的服务器IP'
	option port         '7654'
	option community	'组名'
	option key          '密码'
	option route		'1'

然后我们需要编辑OpenWrt的防火墙规则,执行如下脚本以开启防火墙通道和IP伪装(SNAT)功能。

#!/bin/sh
n2n_v2=$(ifconfig | grep n2n | awk '{print $1}')
iptables -D FORWARD -i $n2n_v2 -j ACCEPT 2>/dev/null
iptables -D FORWARD -o $n2n_v2 -j ACCEPT 2>/dev/null
iptables -t nat -D POSTROUTING -o $n2n_v2 -j MASQUERADE 2>/dev/null
iptables -I FORWARD -i $n2n_v2 -j ACCEPT
iptables -I FORWARD -o $n2n_v2 -j ACCEPT
iptables -t nat -I POSTROUTING -o $n2n_v2 -j MASQUERADE
ip_segment=$(ip route | grep "dev $n2n_v2 proto" | awk '{print $1}')
iptables -t nat -I POSTROUTING -s $ip_segment -j MASQUERADE

然后运行程序/etc/init.d/n2n_v2 start即可连接到服务器。此时本地PC已经可以访问到网关的虚拟IP10.10.10.100,如下图所示:

100.png

但是不能ping通网关的真实IP192.168.1.254,如下图所示:

254timeout.png

这是因为本地PC还没有指向192.168.1.0网段的路由,因此我们需要手动添加路由表。

route add 192.168.1.0 mask 255.255.255.0 远程网关虚拟IP

例如route add 192.168.1.0 mask 255.255.255.0 10.10.10.100,注意添加路由表需要管理员权限。这时我们再访问网关以及网关的下属设备,就可以畅通无阻,如下图所示:

jieguo.png

Windows软路由型网关

有的工业设备是使用Windows作为路由使用的,这种情况下,需要开启Windows的路由和远程访问(Routing and Remote Access)服务,以管理员权限运行如下命令即可:

sc config remoteaccess start=auto
sc start remoteaccess

然后将软路由的两个网口一个设置为固定IP地址作为LAN,而另一个则为WAN口接入互联网,接着按照在本地PC配置N2N的方式进行配置即可。当然了,要想访问到软路由及其下属设备,也需要同样的在本地PC添加路由表。

总结

N2N的使用只需要简单的填写几个参数即可快速实现异地网络互连,使用简单方便。相对于传统的OpenVPN方案而言,不仅节省了服务器的开支,而且搭建方便,支持平台广泛,灵活性高,大大提高了企业运维人员的工作效率。



本文由郭玉超创作
该文章采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。转载请注明出处!
发布时间为:2019-06-06

支付宝扫码打赏 微信打赏
如果觉得这篇文章对您有帮助,可以请作者喝一杯饮料哦🥤

下一篇

Hello Gridea