一直以来,本地路由器远程连接实验室的网络连接都是通过办公室ikuai软路由的L2TP连接实现的,但L2TP作为一个有状态协议,在遇到连接中断后恢复起来会比较麻烦,以及ikuai的L2TP server并不是很稳定,且没有办法分配IPv6。因此在近期,笔者将路由器连接实验室网络的组网方式改为了IPIP及EoIP的组合组网配置,并在很大程度上解决了上述问题。
笔者同时提供了基于GRETAP的二层组网方案,此方案无需RouterOS设备,且性能开销更小,但配置相对略麻烦一些。
为什么选择IPIP/IPOE?
- IPIP/EoIP均是无状态协议,不会像L2TP一样,在网络波动后还需要重连。
- 理论上组网只需要EoIP即可,但学校的校园网阻断了GRE协议(EoIP基于GRE),需要在EoIP下再套一层协议以方便在学校的三层内网上传输,且这层套壳的协议最好能开销尽量小。因此笔者选择了IPIP协议。
网络结构图
网络结构图如下所示,其中红线的意思是Openwrt路由器下设备的数据的实际流向。
配置IPIP隧道
RouterOS 侧
添加隧道:
interface > ip tunnel > add new
name: ipip-openwrt
local address: 10.20.1.1
remote address: 10.20.1.2
分配IP:
IP > address > add new
address: 9.0.0.1/24
network: 9.0.0.0
interface: ipip-openwrt
Openwrt 侧
先安装IPIP相关的包:
opkg update
opkg install luci-proto-ipip
重启路由器,随后添加IPIP interface:
Network > Interface > Add new interface...
name: ipip1
protocal: IPv4-in-IPv4 (RFC2003)
Remote IPv4 address or FQDN: 10.20.1.1
Local IPv4 address: 10.20.1.2
Bind interface: wan
同时也需要在Advanced Settings里去掉Use Default Gateway的选项。
给IPIP的interface分配一个静态IP:
Network > Interface > Add new interface...
name: ipip1static
protocal: Static
Device: ipip-ipip0
IPv4 address: 9.0.0.2/24
IPv4 gateway: 9.0.0.1
同时也需要在Advanced Settings里去掉Use Default Gateway的选项。
RouterOS和Openwrt一侧都配置好IPIP隧道后,可以互相ping一下对方的隧道IP (9.0.0.1
, 9.0.0.2
)来检查一下隧道是否通了。
配置EoIP隧道及添加网桥
RouterOS 侧
添加隧道:
interface > EoIP tunnel > add new
name: eoip-openwrt
local address: 9.0.0.1
remote address: 9.0.0.2
tunnel ID: 150 (这个可以自己设置,和客户端一样就可以了)
添加网桥:
bridge > add new
name: bridge-eoip-ikuai
注意需要关闭dhcp snooping
给网桥添加端口:
bridge > port > add new
把 eoip-openwrt 和连接ikuai的wan口都桥接到bridge-eoip-ikuai上
Openwrt 侧
安装EoIP的包:
opkg update
opkg install luci-app-eoip
重启路由器(可选),配置EoIP interface:
于Network > EoIP Tunnel
中配置,如下图所示:
通过隧道分配IP
IPv4
在Openwrt上新建一个interface,名字叫dhcpipip4
,Protocal选择dhcp client
,Device选择zeoip0
(eoip的虚拟设备)勾选Use default gateway
,防火墙划分到WAN
区。
IPv6
把WAN6
的接口改为zeoip0
即可。
全部配置完成后,dhcpipip4
和wan6
的interface理论上均能取得上级路由器(ikuai)分配的IP。
性能
笔者使用运行Openwrt 22.03.0的红米AX6s路由器,4*E5-2683 v4,内存2G的RouterOS(安装于ESXI虚拟机中)进行实际测试时,使用iperf3测速时峰值速度可达500Mbps左右。但笔者也注意到当客户端使用AX6s的无线连接进行测速时,iperf3的峰值速度则只有300Mbps左右,因此用此种方式组网对设备性能的要求可能较高。