通知 欢迎关注我的店铺天天软件圆

QWRT iStoreOS 等闭源固件遇到的OpenVPN跨节点互访问题

2025-04-18
0评论
/
阅读
爱搜啊

OpenVPN跨节点互访异常问题排查手记

一、问题现象描述

在搭建包含三个节点的VPN网络时,发现以下异常现象:

  • 节点A(OpenWRT路由器)可以访问B、C节点及其下属网络

  • 节点B(Ubuntu 20.04)和C(Ubuntu 22.04)可以互相访问对方网络

  • B、C节点无法访问A节点的内网192.168.13.0/24,包括网关自身地址192.168.13.1

  • 抓包显示ICMP请求未到达目标网络

遇到的OpenVPN跨节点互访问题

二、关键配置分析

1. 节点A路由特征

192.168.13.0   *        255.255.255.0  U   0   0    0 br-lan
POSTROUTING规则:
-A POSTROUTING -s 192.168.13.0/24 -o eth3 -j MASQUERADE
-A POSTROUTING -s 192.168.13.0/24 -o tun0 -j MASQUERADE

2. 异常流量路径

  1. 当B节点访问192.168.13.1时:

    • 流量通过tun0到达A节点

    • A节点需要将流量转发到br-lan接口

    • 响应流量需要正确返回

三、可能原因排查

1. 防火墙区域配置(关键嫌疑)

OpenWRT的默认防火墙配置可能存在问题:

  • 检查/etc/config/firewall配置文件

  • 确认br-lan接口是否被分配到LAN区域

  • 验证VPN流量是否被正确放行:

# 查看区域配置
uci show firewall.@zone[0]
uci show firewall.@zone[1]

2. 反向路径验证(rp_filter)

# 检查内核参数
sysctl -a | grep .rp_filter
# 临时关闭验证
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.tun0.rp_filter=0

3. NAT规则覆盖性

现有MASQUERADE规则仅处理出站流量:

建议补充规则:
-A POSTROUTING -o br-lan -j MASQUERADE

4. 隐藏的流量拦截

  • 检查ebtables规则

  • 验证桥接过滤配置

  • 测试禁用防火墙服务:/etc/init.d/firewall stop

四、验证方案

  1. 在A节点执行全流量抓包:

    tcpdump -i br-lan host 192.168.13.1
  2. 检查连接跟踪状态:

    conntrack -L -d 192.168.13.1
  3. 强制指定源接口测试:

    ping -I tun0 192.168.13.1

五、经验总结

通过本次排查,我们需要注意:

  • OpenWRT的防火墙区域配置具有"白名单"特性

  • 桥接网络与路由策略的交互可能产生意外行为

  • 自定义固件可能修改默认的iptables规则链顺序

  • 内核版本差异对VPN实现的影响(尤其4.x与5.x内核)

临时解决方案建议:
在确认安全的前提下,可尝试添加显式放行规则:
iptables -I FORWARD -i tun0 -o br-lan -j ACCEPT


点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)

饿了么红包
饿了么红包


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件

于2025-04-18发布