OpenVPN Site-to-Site VPN between Asus Merlin And Ubnt EdgeRouter

前言 Network Topology RT-AC68U 使用PPPoE拨号上网,但是分配的IP是100.64.204.111, 看着像公网IP实际却是Carrier-grade NAT. 现在需要将RT-AC68U与一台在公网的EdgeRouter使用OpenVPN Site-to-Site连接起来,并在RT-AC68U端实现policy-based routing。 需要让RT-AC68U下的所有设备能访问EdgeRouter LAN的网络,并根据需求透过VPS访问指定互联网。 本实验参考下列文章: Set up OpenVPN Site-to-Site on UBNT EdgeRouter Lite EdgeRouter OpenVPN Connectivity Monitor EdgeRouter 策略路由实现分析 EdgeRouter Policy Based Routing Using DNSMASQ IPSET Incoming search terms:merlin openvpn policy basedbeen1nnboxz65countryljyleft1i1nervous8xdofficesn8openvpn pbr iptables tagsrunningafxshout6uxsum1tuthoughsh1Link to this post!

EdgeRouter Policy Based Routing Using DNSMASQ IPSET

之前用SNIProxy按域名区分流量,着实麻烦。尤其是后期发现路由表莫名其妙出问题。 EdgeRouter的Policy Based Routing(PBR)使用的是自带配置语法的firewall modify功能。 官方有两篇教程: EdgeRouter – Policy-based routing for destination port EdgeRouter – Policy-based routing (source address based) 第二篇文章顺带提了network-group。之前在配置VPN时,使用过network-group,还比较过使用firewall modify + network-group 与配置一堆interface-route的区别。 而,这里的network-group的实现,使用了netfilter的ipset。Man pages可以看这里,命令在edgerouter上也附带了。 dnsmasq支持 ‘–ipset‘ 参数,把对配置域名解析的IP存入到指定的ipset。具体细节可以看dnsmasq的文档。 dnsmasq配置的语法比较简单。

domain 部分参考 address 的语法。例如:

配置好所有自己需要的域名,重启dnsmasq即可。 ipset本身支持timeout,但是edge os的network-group不支持,所以在配置dnsmasq之前,最好创建一个新的network-group。 假定新建的ipset名叫 MY_SET,edge router的主要相关配置如下:

其他诸如配置 static table, interface firewall 可以参考最前边的文档。 Incoming search terms:edgeos firewall network-group … Continue reading “EdgeRouter Policy Based Routing Using DNSMASQ IPSET”

L2TP Remote Access Server on UBNT EdgeRouter

EdgeRouter Lite with Firmware 1.9.0 L2TP PSK Mode. WAN interface: eth1 LAN IP: 192.168.3.1 VPN Subnets: 192.168.47.1-192.168.47.99 Run commands below in ‘configure mode’. 1 Configure IPSec

2 Configure L2TP

3 Configure DNS Make sure you have following lines, otherwise you can get DNS resolved.

Incoming search terms:edgerouter lite l2tpLink to this post!

UBNT EdgeOS 配置设备路由(interface-route)的方法

之前 EdgeOS PPTP VPN客户端配置 里,配置VPN后,需要按需配置路由。由于自用的路由下一跳IP不确定,所以用了 interface-route。 配置命令如下:

按这种方式配置路由的麻烦在于,每次输入都需要把目标网段后边配上一个interface,万一哪天需要改这个interface,要不一个一个改,要不重新导入配置文件。 另外一个方法是用路由表+防火墙 路由表如下:

防火墙里配置一个地址组,并配好modify规则

再把内外网口的防火墙规则改一下

就行了。这里我的eth1连的外网,eth0是LAN。 不过这里有个case我没试过,直接配置interface-route的方法,如果目标网段的interface掉了,会回落到默认的出口上,不知道modify的效果如何。 EdgeOS 1.8b3下firewall的log记录在 /var/log/messages 里,可以看到请求命中了哪个规则。 Incoming search terms:EDGEOSset firewall on ubntset interfaces ethernet eth0 firewall in modify balancestatic route edgerouterubnt edgeos su rootUBNT 防火墙ubnt 防火墙禁pingLink to this post!