Set up OpenVPN Site-to-Site on UBNT EdgeRouter Lite

参考:https://help.ubnt.com/hc/en-us/articles/204949694-EdgeMAX-OpenVPN-Site-to-Site
不同的是,我一端是Ubuntu Linux,另一端是EdgeRouter Lite。

实现的目的也是让EdgeRouter连上远程vpn实现XXXX。
PPTP的方案参考:EdgeOS PPTP VPN客户端配置

环境

Ubuntu Linux, 10.99.99.2
EdgeRouter Lite, 10.99.99.1

配置EdgeRouter Lite

SSH到Ubnt EdgeRouter Lite
生成共享密钥文件

执行命令创建VPN

执行命令启用NAT

如果需要重启tunnel

配置Linux

安装openvpn

把EdgeRouter的 /config/auth/secret 复制到 /etc/openvpn/er-site2site-static.key

编辑 /etc/openvpn/server.conf

启动openvpn

测试

在EdgeRouter ping Linux

在Linux ping EdgeRouter

如果还有问题,可以看日志

配置路由

参考下一篇文章 UBNT EdgeOS 配置设备路由(interface-route)的方法

Set up OpenVPN Site-to-Site on UBNT EdgeRouter Lite by @sskaje: https://sskaje.me/2016/02/set-openvpn-site-to-site-ubnt-edgerouter-lite/

Incoming search terms:

TunnelBroker for EdgeRouter Lite

创建隧道

在北京联通这种不给IPv6网络的ISP下生存,总有走v6翻墙的欲望。
免费的Tunnel服务很多,最出名莫过HE.net的TunnelBroker

首先申请一个Tunnel。
访问:

注册登录之后,创建并输入当前路由公网IP “YOUR.ROUTER.INTERNET.IP”。

创建成功后会被跳转到

XXXXX的部分是一串数字,所谓的Tunnel ID.

在这个页面上选择第二个标签页 “Example Configurations
选择 “Vyatta / Ubiquiti EdgeMAX

文本框会自动生成如下配置:

remote-ip是创建时选择的远端服务器IP,local-ip本地当前的出口IP。
鉴于ISP给的IP都是动态的,所以local-ip改成如下‘0.0.0.0’。

如果之前有配置过tunnel,需要重新配置,则先删除既有的:

下面开始命令配置tunnel

Router Advert

配置完tunnel,就得配局域网内的配置了,毕竟只有路由能上v6是不够的

如果你本地的DNS规则有过配置,radvd-options 的配置一定要把ipv6地址设成路由器的v6地址

实践证明,我之前折腾了好久的dhcpv6没用,但是配置也可以贴出来

自动更新IP

之前一片EdgeRouter Lite相关的配置文章里,我把He.net提供的DDNS配置好了。Dynamic DNS on HE.net, HE.net Dynamic DNS on Ubiquiti Router.

脚本更新

首先按如下路径生成ddns专用的key

尝试过好多次,EdgeRouter Lite无法通过配置参数添加多个同类型的ddns配置。所以先提供一个简单粗暴的方法。

参考 https://forums.he.net/index.php?topic=1994.0 的说明,有如下的客户端语法:

新增文件 /etc/ppp/ip-up.d/update-tunnelbroker-ip
内容如下:

完成后给执行权限

复用ddclient配置

早先在配置DDNS的时候做过一些尝试,结果发现删除配置时 /etc/ddclient/ 目录下自动生成的配置并未被删除。
而tunnelbroker的IP更新协议跟ddns一样都是用了dyndns风格的。
所以第二个思路是自己写个配置文件(未验证)
参考模板

奇葩问题

从开始配置Tunnel到最终写这篇文章,中间隔了估计有好几个月,一直在更新IP(手动或者自动)时被提示无法连接到我的路由,HE的测试IP是 66.220.2.74
还发邮件问过那边,也怀疑了几种可能,但是确认中国的其他IP都没问题。

就在刚才,突然想到可能是路由表错了。
因为之前整理过 Google/Twitter/Facebook 的IP段(Google IP Address Ranges, EdgeOS PPTP VPN客户端配置),简单粗暴地直接把零散的IP段合并成一个个CIDR 16的网段,然后指向了我的pptpc0。
其中就有

核对了一下FB的网段,调整了路由:

TunnelBroker for EdgeRouter Lite by @sskaje: https://sskaje.me/2015/05/tunnelbroker-edgerouter-lite/

Incoming search terms: