找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 93092|回复: 290

Openwrt 作为旁路网关(不是旁路由!!)正确配置方法,性能测试 —— 破解迷思

 火... [复制链接]
发表于 2021-8-29 09:09 | 显示全部楼层 |阅读模式
本帖最后由 riverscn 于 2021-9-14 14:31 编辑

以x86、斐讯N1、树莓派为例。旁路网关的性能到底重不重要?

按照我的方法,旁路网关(不是旁路由!!),本贴就是为了纠正网上的许多错误做法的!
不影响局域网性能,不影响Internet下行带宽,不影响端口映射,不是两次NAT!!
如果你有疑问,请看了帖,真正实践了,再来讨论,谢谢!
原文发布在我的博客上,排版正常,粘贴过来不正常。


离子光刀说:


发现有相互争论加不加
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
的问题。

你们双方都没错,只是你们的主路由器不一样而已。
不加防火墙规则不能上网的,一般是华为、小米、360等主路由器,原因是,这些路由器会校验数据包的ip和mac地址的对应关系。国内包的上行经过旁路由转发给主路由时,主路由发现旁路由发过来的数据包ip不是它自己的,校验失败,所以网络不通了。
然后加了防火墙规则,上边那条规则的意思是执行SNAT功能,就是把数据包的源ip改成当前机器的,也就是旁路由的ip。这样ip和mac地址对应,网络通了。

所以个人总结,先不加规则,如果网络能通,恭喜你,最佳性能。如果必须加规则网络才能通,那么勉强用着吧,所有流量都要经过旁路由,非最佳。
个人网上看到的一些情况,本人也是一知半解,说错也不复杂,不要喷我。


本贴是删节版(删除了刷固件部分)

先说结论:


1. 局域网互访,不经过网关
2. 广域网下行,不经过旁路网关
3. 广域网上行,经过旁路网关再经过上级网关
4. 代理无论上行下行都经过旁路网关


旁路网关不会影响局域网性能,也不会影响广域网下行性能。因此,使用旁路网关的主要目的如果只是用来转发代理上网的流量,旁路网关的性能并不重要。测试可见文末。

破解迷思:

  • 旁路网关不需要取消br-lan,不需要复用eth0添加wan口!
  • 旁路网关不需要打开防火墙的lan->wan IP动态伪装(不需要 iptables -t nat -I POSTROUTING -o xxx -j MASQUERADE)!

这两种做法都是网上常见错误设置方法,不是标准的“旁路网关”拓扑(那样做实际上是“单臂路由”),不能发挥局域网的最佳性能。具体设置方法可见文末。

获取、编译 Openwrt 固件

不要觉得困难,因为我已经帮你编译好了。

相比于官方镜像,我这个固件主要是定制和集成了一些内核模块、应用软件,更好兼容本文推荐的路由设备,更符合国内使用场景的需求。与其它一些第三方固件相比,最大的特点是:简洁。它只是为了做路由、网关而定制的固件,没有其它乱七八糟的非必须功能。

当然,如果你想加入其它软件,并且编译自己的版本,也是非常简单的。

利用 Github Actions 提供的免费集成功能,每周五会自动生成最新固件,提供下载和升级方法。

可以去我的软件仓库了解并获取固件

Build Openwrt Firmware


Bootstrap 主题

Argon 主题


主路由 vs 旁路网关

要实现最佳体验,需要注意根据以下情况进行选择:

条件主路由模式旁路网关模式
需要替换现有的主路由
需要
不需要
运行 Openwrt 的设备具有较高性能
需要
不需要
运行 Openwrt 的设备具备多个物理网络接口,且带宽足够
需要
不需要

如果不能满足任意其一,建议选择旁路网关模式。

不过世上哪有那么好的事,旁路网关虽然需要满足的条件较少,但也有其劣势,可参考文末的测试。

把 Openwrt 作为主路由

这是常用模式,该模式下,所有设备的网关指向主路由IP,并且主路由作为DHCP服务器、DNS服务器。

主路由模式

如果运行 Openwrt 的设备有2个及以上的物理网络接口,推荐该模式。这是标准的局域网拓扑结构,所有的设备都能获得全双工的传输速率,所有流量都不会“走弯路”。

安装方式也很简单,用 Openwrt 路由器作为主路由就行了。

把 Openwrt 作为旁路网关

但有时候,Openwrt 设备可能只有1个物理网络接口,但又想利用 Openwrt 扩展现有网络的功能,就可以用“旁路网关”的方式实现。

旁路网关的好处是不需要修改现有网络基础设施,只需要在标准的局域网拓扑结构中,增加一个网关设备就行了。网关设备和一个普通的局域网设备在结构上是同等地位。所以也适用于不太好替换现有主路由的情况。

旁路网关模式

旁路官关有两种利用方式:

  • 按需手动设置,只让指定的设备通过旁路网关访问Internet。
  • 接管局域网的所有上网流量。

方式1不需要修改主路由配置,但需要修改客户端设备的网络设置。

方式2需要修改主路由配置,不需要修改客户端设备的网络设置。

两种方式均不影响局域网内的流量路径,局域网设备互访都是直通的(不会经过路由器或网关)。


基本设置

作为主路由的设置方法

作为主路由是 Openwrt 的默认设置,这里不必多讲。

Openwrt 可以实现诸多高级特性,诸如多WAN、IPTV融合等。这些都是做旁路网关时无法实现的功能。


作为旁路网关的设置方法

旁路网关自身的基础设置

刷好固件的新 Openwrt 网关,一般默认的IP地址是192.169.1.1。你可以通过WiFi或网线,确保电脑只连接了它,就可以访问该管理地址了。

  • 在“网络”-“接口”的“常规设置”中给 Openwrt 的 LAN 网络接口设置一个和现有局域网同网段的静态 IP 地址,注意不要和现有设备的 IP 地址冲突。然后应用设置。
  • 将 LAN 网络接口的“默认网关”设为主路由的 IP 地址。
  • 在“高级设置”中找到“使用自定义的 DNS 服务器”设为主路由的 IP 地址。
  • 在“DHCP 服务器”中勾选“忽略此接口”。
  • 在“DHCP 服务器”-“IPv6 设置”中禁用所有IPv6服务。
  • 点击“保存”以及“保存并应用”。
  • 在“网络”-“防火墙”中,关闭“SYN-flood 防御”,点击“保存并应用”。
  • 建议重启一次。

屏幕截图 2021-08-31 002943.jpg

如果你是通过WiFi接入点访问的,现在可以插上网线,通过有线局域网来访问它了。记得删除WiFi接入点以降低路由器的温度。

至此,它已经是一个合格的旁路网关了。

接下来有两种使用方式,根据偏好选择。

方式一:指定的设备才使用旁路网关

在指定的设备上,手动设置IP地址,将其“网关”和“首选 DNS”改为旁路网关的IP地址。

方式二:所有设备都使用旁路网关

重要的事说三遍:在主路由上设置,在主路由上设置,在主路由上设置

如果主路由是 Openwrt 固件,找到 br-lan 网络接口,在“DHCP 服务器”的“高级设置”中添加两个选项:

  • 3,你的网关IP
  • 6,你的网关IP

注意,这是主路由的设置,不是旁路网关!

如果是其它固件的主路由,或者成品路由器,找到类似“DHCP 服务器”的设置,在其中指定默认网关和默认DNS服务器是你的网关IP就行。

性能测试,旁路网关的性能到底重不重要?

测试局域网传输性能

通过ssh命令 ssh root@你的路由器ip 进入到路由器的命令行界面。

opkg update && opkg install iperf3 安装 iperf3 测试软件。

iperf3 -s 运行测试。

在局域网的另一台机器上,同样安装 iperf3 软件。

iperf3 -c 你的路由器ipiperf3 -c 你的路由器ip -R

运行测试。先是测试的路由器从测试机下载数据的性能,再测试的是反过来的性能。

这是我测试的自己的树莓派4B的性能:

$ iperf3 -c 192.168.1.3[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  1.10 GBytes   949 Mbits/sec                  sender
[  4]   0.00-10.00  sec  1.10 GBytes   949 Mbits/sec                  receiver

$ iperf3 -c 192.168.1.3 -R
Reverse mode, remote host 192.168.1.3 is sending
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   944 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   944 Mbits/sec                  receiver
通过 netdata 软件监控性能状况

在路由器中运行 opkg update && opkg install netdata 安装 netdata 监控软件。或者在“系统/软件包”菜单中安装。

然后在浏览器上访问 http://路由器ip:19999 就可以了

测试广域网转发性能、代理转发性能

在 netdata 中点击右上角 Settings, 关闭 On Focus。

同时启动一个测速软件,例如 Speedtest.net,跑一跑,看看性能如何?

我们来验证一下,上文所说的,各种流量情况下,主路由和旁路网关的负载情况?

(我家的宽带标称500M,上行标称100M)

1. 广域网下行流量

主路由负责转发流量,旁路网关围观。

测试设备:树莓派4B(下面的仪表盘)

旁路网关真的在围观吗?我拿出了斐讯N1,它有一个USB2.0接口,接上网卡,对网速进行物理封印!便于观察网关是否真的不影响下行流量。

斐讯N1+USB2.0网卡,物理封印网速

我在另一台电脑上不停地iperf3占满N1的网络带宽,同时在旁路网关的客户端电脑上测速。

测试设备:斐讯N1+USB2.0网卡

神奇的事情发生了!网关并没有完全在围观,它的iperf3传输速度显然受到了影响(N1不支持流控,flippy有提到)。但客户端并没有受到影响,测速显然已经突破USB2.0的速率限制了。

结论:旁路网关的带宽不会限制客户机的广域网下行流量速率。

2. 广域网上行流量

主路由和旁路网关同时在转发流量。

测试设备:树莓派4B(下面的仪表盘)

3. 代理转发流量

我使用的是 Xray VLESS XTLS

只测试下行就好,上行肯定会经过旁路网关的。

测试设备:树莓派4B(下面的仪表盘)

看这个测试结果,难道说,代理转发的下行流量并不需要经过旁路网关的转发吗?想想并不可能啊。

换fast.com再试试……可以发现,代理转发流量经过了N1。

测试设备:N1

所以破案了!原来speedtest.net不知为何并没有经过代理,不要相信它!所以不要用它做代理速度测试了,可能是不准的。

至此,通过实践证实了以下结论:

优劣对比主路由模式旁路网关模式
局域网流量
不影响性能
不影响性能
广域网下行流量
受限于主路由NAT转发性能
受限于主路由NAT转发性能
广域网上行流量
受限于主路由NAT转发性能
同时受限于主路由和旁路网关NAT转发性能
代理上网转发流量
外加受限于主路由CPU性能
同时受限于主路由和旁路网关NAT转发性能,外加旁路网关CPU性能

最后,可以有理有据地得出如何选择旁路网关的结论:

  • 旁路网关的网卡带宽只要不低于你的上传带宽,就不会对普通流量造成瓶颈。考虑到国内的上行带宽通常非常小,所以基本不会造成影响
  • 旁路网关作为代理上网的转发网关,性能下限是由其CPU性能和网卡带宽中最低的部分决定的

所以旁路网关的性能,并不那么重要。忽悠你买高性能旁路网关的,肯定是奸商。

但旁路网关无法负责NAT部分的功能,如果你需要多WAN、IPTV等功能,还是需要一个功能灵活的主路由。但如果你仅仅只是为了转发代理上网流量,实现透明代理,那么旁路网关是个非常经济、简单的选择。

好了,以上就是我这些年来玩 Openwrt 作为家庭网络的路由系统的终极经验了。

工作桌面纪念照:











评分

参与人数 12恩山币 +13 收起 理由
ankee -1 确认是这样,我的按这个设置很OK,linksys.
yan5661233 + 1 牛逼
yangchex + 1 强大的恩山!(以下重复1万次)
kenjey01 + 1 强大的恩山!(以下重复1万次)
天天顺心 + 2 风清云淡、飘逸悠然……极爽!
废柴工程师 + 2 强大的恩山!(以下重复1万次)
jones.w + 1 感谢你的分享,无论怎样,你都是最无私的人.
ltbjwz + 1 强大的恩山!(以下重复1万次)
papagogo + 2 强大的恩山!(以下重复1万次)
hadis99 + 1 强大的恩山!(以下重复1万次)
1079 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
梦游Beef + 1 你这里的旁路由就是单臂路由的意思

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2021-8-29 09:31 | 显示全部楼层
技术贴,感谢分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 11:04 | 显示全部楼层
妈呀,
这排版,这断句,,,
看着太痛苦了…

点评

粘贴过来的,到我博客上看,排版很正常  详情 回复 发表于 2021-8-29 14:27
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 11:13 | 显示全部楼层
同网段2个网关,2次nat。

点评

仔细看贴,并没有nat  详情 回复 发表于 2021-8-29 11:18
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 11:18 | 显示全部楼层
99010 发表于 2021-8-29 11:13
同网段2个网关,2次nat。

仔细看贴,并没有nat

点评

旁路由,本身就是2个网关2次nat  详情 回复 发表于 2021-8-29 11:52
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 11:52 | 显示全部楼层
riverscn 发表于 2021-8-29 11:18
仔细看贴,并没有nat

旁路由,本身就是2个网关2次nat

点评

没有NAT,是因为软路由的接口是LAN,固定的IP方式接入到主路由的LAN口。软路由的默认网关指定的是主路由的网关。这样就没有了NAT。应该是这样的  详情 回复 发表于 2023-11-15 19:19
你就是不看帖,我开头就说了,2次nat是因为错误的配置。 我的标题写的是“旁路网关”,不是“旁路由”,路由和网关不是同一个东西。 网关不负责NAT。  详情 回复 发表于 2021-8-29 12:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 12:04 | 显示全部楼层
99010 发表于 2021-8-29 11:52
旁路由,本身就是2个网关2次nat

你就是不看帖,我开头就说了,2次nat是因为错误的配置。

我的标题写的是“旁路网关”,不是“旁路由”,路由和网关不是同一个东西。

网关不负责NAT。

点评

最简单的测试方式:在拨号路由器上映射端口给客户机(客户机填旁路由网关),能在外网直接访问才是1次nat  详情 回复 发表于 2021-8-29 12:17
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 12:17 | 显示全部楼层
riverscn 发表于 2021-8-29 12:04
你就是不看帖,我开头就说了,2次nat是因为错误的配置。

我的标题写的是“旁路网关”,不是“旁路由” ...

最简单的测试方式:在拨号路由器上映射端口给客户机(客户机填旁路由网关),能在外网直接访问才是1次nat

点评

我也遇到了这个问题,解决了,问题的根源在于。。。通信规则,加一条通信规则即可 任何 通信 来自 所有主机 位于 lan 源于 端口 1-65535 到 所有主机, 端口 1-65535 位于 lan 接受转发 这样……就可以  详情 回复 发表于 2022-12-6 12:18
来,我测试给你看。 我都说了,网上流传的方法很多是错误的,跟我的不一样。你就是不看帖,就来评论。 [attachimg]491586[/attachimg] [attachimg]491587[/attachimg] [attachimg]491588[/attachimg] [attach  详情 回复 发表于 2021-8-29 14:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 13:42 | 显示全部楼层
老哥 你忘了提一句设置防火墙规则的事
刷了你的固件
完全按照你的教程设置好了结果走代理的能上 不走代理的网站上不去网
加了这个规则才行
iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE

点评

我的R5S也是不加这条规则虽然能上网,但是吧比如打开抖音啥会一直转圈 很久才刷出东西 ,打开网页加载不了图片,测速也不能用,加了啥都好了  详情 回复 发表于 2023-12-27 22:22
把OP的DNS设置成公用的或者运营商的就可以了,你这样主路由的DNS走旁路有,旁路由的DNS又走主路由,这怎么走法啊?除非你的主路由器用了DNS代理,要不然你的网络肯定有问题 这样设置不需要那个规则的  详情 回复 发表于 2021-8-31 11:32
不会啊,我没有加这条规则,没问题啊。 你肯定没有完全按照我的方法设置,再检查一下。 加了这条规则会导致所有下行流量也要走一遍旁路了,影响性能。  详情 回复 发表于 2021-8-29 14:00
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 14:00 | 显示全部楼层
walsh 发表于 2021-8-29 13:42
老哥 你忘了提一句设置防火墙规则的事
刷了你的固件
完全按照你的教程设置好了结果走代理的能上 不走代 ...

不会啊,我没有加这条规则,没问题啊。

你肯定没有完全按照我的方法设置,再检查一下。

加了这条规则会导致所有下行流量也要走一遍旁路了,影响性能。

点评

你这截图都上传了 我比着你的图设置的 出错的可能性不大 我是在主路由DHCP设置里把网关和dns设置成n1盒子这种方式上网 我用了好多固件 都要加要加 iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE  详情 回复 发表于 2021-8-29 14:35
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 14:04 | 显示全部楼层
99010 发表于 2021-8-29 12:17
最简单的测试方式:在拨号路由器上映射端口给客户机(客户机填旁路由网关),能在外网直接访问才是1次nat

来,我测试给你看。
我都说了,网上流传的方法很多是错误的,跟我的不一样。你就是不看帖,就来评论。

微信图片_20210829140109.png
微信图片_20210829140112.png
微信图片_20210829140101.jpg
微信图片_20210829140107.jpg

点评

在你的windows客户机上输入命令,截图  详情 回复 发表于 2021-8-29 15:09
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 14:09 来自手机 | 显示全部楼层
我就会vlan一种,其它不碰也不感兴趣

点评

vlan这种也一样影响性能,实际性能相当于半双工  详情 回复 发表于 2021-8-29 14:11
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 14:11 | 显示全部楼层
hcyme 发表于 2021-8-29 14:09
我就会vlan一种,其它不碰也不感兴趣

vlan这种也一样影响性能,实际性能相当于半双工
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-8-29 14:27 | 显示全部楼层
gaze 发表于 2021-8-29 11:04
妈呀,
这排版,这断句,,,
看着太痛苦了…

粘贴过来的,到我博客上看,排版很正常
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-8-29 14:35 | 显示全部楼层
riverscn 发表于 2021-8-29 14:00
不会啊,我没有加这条规则,没问题啊。

你肯定没有完全按照我的方法设置,再检查一下。

你这截图都上传了 我比着你的图设置的 出错的可能性不大

我是在主路由DHCP设置里把网关和dns设置成n1盒子这种方式上网

我用了好多固件
都要加要加
iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
不然压根没法正常使用

我看你没提加防火墙的事我以为你的固件不用加 结果设置下来还是上不了网

加了
iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE
就一切正常了

技术细节我不懂 实际情况是不加上不了网 加了也没看出什么性能问题

这个防火墙规则是干啥的 我也不知道 反正能用就行了




点评

怎么加iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE????怎么加这个代码  详情 回复 发表于 2022-11-21 19:40
感谢,受教了!!  发表于 2022-6-7 21:07
我也碰到了 不加不行  详情 回复 发表于 2021-12-14 22:00
我大概解释了一下 masquerade 的规则的问题, 请兄弟移步这里看一下: https://www.right.com.cn/forum/thread-5517006-1-1.html  详情 回复 发表于 2021-8-29 21:56
你不要保留任何设置,从全新的固件开始呢? 另外,主路由的设置,除了DHCP都不要动。 加了这条防火墙指令后,我实测,广域网下行流量也会经过网关,影响性能。你可以用我的方法测测就知道了。  详情 回复 发表于 2021-8-29 14:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-2-24 20:33

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表