方案实现步骤
1. 在 A 和 B 路由器上配置 WireGuard
确保 A 和 B 路由器之间建立稳定的 WireGuard 隧道。
配置 WireGuard 接口
- 在 A 路由器上:
/interface wireguard add name=wg1 listen-port=51820 private-key="A_PRIVATE_KEY" /interface wireguard peers add interface=wg1 public-key="B_PUBLIC_KEY" allowed-address=192.168.10.2/32 endpoint="B_PUBLIC_IP:51820"
- 在 B 路由器上:
/interface wireguard add name=wg1 listen-port=51820 private-key="B_PRIVATE_KEY" /interface wireguard peers add interface=wg1 public-key="A_PUBLIC_KEY" allowed-address=192.168.10.1/32 endpoint="A_PUBLIC_IP:51820"
验证连接
确保 WireGuard 隧道正常工作,并在两个路由器上相互 ping WireGuard 的虚拟 IP。
2. 配置 VXLAN over WireGuard
利用 VXLAN 构建二层网络。
配置 VXLAN 接口
- 在 A 路由器上:
/interface vxlan add name=vxlan1 vxlan-id=42 mtu=1450 dst-port=4789 remote-address=192.168.10.2 local-address=192.168.10.1
- 在 B 路由器上:
/interface vxlan add name=vxlan1 vxlan-id=42 mtu=1450 dst-port=4789 remote-address=192.168.10.1 local-address=192.168.10.2
创建桥接网络
- 在 A 路由器上:
/interface bridge add name=bridge1 /interface bridge port add bridge=bridge1 interface=vxlan1
- 在 B 路由器上:
/interface bridge add name=bridge1 /interface bridge port add bridge=bridge1 interface=vxlan1
3. 配置三层网络路由
通过 VXLAN 将 B 路由器的所有流量路由到 A 路由器,并通过 A 路由器访问互联网。
设置默认路由
- 在 B 路由器上:
/ip route add dst-address=0.0.0.0/0 gateway=192.168.10.1
配置 A 路由器的 NAT
在 A 路由器上配置 NAT,以便通过 A 路由器访问互联网:
/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade
4. 优化跨国网络性能
a. MTU 调整
由于 VXLAN 和 WireGuard 都会增加封包头,确保调整 MTU 以避免分片问题:
- WireGuard 接口 MTU:
/interface wireguard set wg1 mtu=1400
- VXLAN 接口 MTU:
/interface vxlan set vxlan1 mtu=1350
b. QoS(流量优先级)
设置 QoS 规则,确保关键业务流量优先通过隧道:
/queue simple add name="priority" target=192.168.10.0/24 max-limit=100M/100M priority=1
c. TCP BBR
启用 TCP BBR 拥塞控制算法,在路由器出口优化 TCP 性能:
/ip firewall mangle add chain=forward action=set-priority new-priority=6
d. 加速加密性能
- 如果 Mikrotik 路由器支持硬件加密加速(如 CCR 系列),确保启用相关功能。
- 优化 WireGuard 的加密算法选择。
e. DNS 优化
配置公共 DNS(如 Google DNS、Cloudflare DNS)以减少跨国域名解析延迟:
/ip dns set servers=8.8.8.8,8.8.4.4
适合的应用场景
- 企业级跨国分支互联:确保子网之间的广播、ARP 等二层流量透明传输。
- 虚拟机或容器集群扩展:需要跨地域的二层连接来保证服务一致性。
- 集中出口管理:利用 A 路由器的强大出口能力和带宽集中管理跨国流量。
优化的注意事项
- 延迟与带宽折中:跨国链路不可避免地增加延迟,应根据业务场景优化路径选择。
- 隧道可靠性:考虑配置备用隧道(如 IPsec 或 GRE over WireGuard)以提供高可用性。
- 链路监控:启用工具(如 Netwatch)监控链路状态,及时响应连接中断。
- 成本考量:尽量选择稳定、低延迟的跨国线路(如专线或优化的云服务网络)。