我已经设置了带有赛扬 j1900 处理器的 Linux 路由器,安装了 Arch Linux 和防火墙。通过 PPPoE 连接到 ISP。
防火墙正在降低最大下载速度,上传看起来不错:
当我通过 systemctl 停止防火墙并再次进行测试时,一切看起来都很好。
即使出于测试目的,我也没有设置任何区域和策略,因此防火墙配置很简单。
/etc/firewalld/firewalld.conf
DefaultZone=drop
CleanupOnExit=yes
CleanupModulesOnExit=no
IPv6_rpfilter=strict
IndividualCalls=no
LogDenied=all
FirewallBackend=nftables
FlushAllOnReload=yes
ReloadPolicy=INPUT:DROP,FORWARD:DROP,OUTPUT:DROP
RFC3964_IPv4=yes
NftablesFlowtable=enp4s0 enp5s0 enp6s0
NftablesCounters=no
NftablesTableOwner=yes
/etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
<passthrough ipv="ipv4">-t mangle -I FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu</passthrough>
<passthrough ipv="ipv6">-t mangle -I FORWARD -p tcp --syn -j TCPMSS --clamp-mss-to-pmtu</passthrough>
</direct>
EDIT: I have managed it without MSS Clamping.
I changed MTU for enp6s0 to 1512, pppoe-vlan to 1508 and for ppp0 to 1500.
Unfortunately this does not help with max download speed.
网络配置由 systemd 完成,也非常简单:
/etc/systemd/network/enp4s0.network (LAN)
[Match]
Name=enp4s0
[Network]
Address=192.168.1.1/28
Address=192.168.2.1/28
LinkLocalAddressing=ipv6
IPv6LinkLocalAddressGenerationMode=stable-privacy
/etc/systemd/network/enp6s0 (WAN)
[Match]
Name=enp6s0
[Network]
ConfigureWithoutCarrier=yes
VLAN=pppoe-vlan
/etc/systemd/network/pppoe-vlan.netdev
[NetDev]
Name=pppoe-vlan
Kind=vlan
[VLAN]
Id=6
以及 ppp 配置:
/etc/ppp/peers/kpn
linkname "pppoe"
updetach
plugin pppoe.so
nic-pppoe-vlan
noauth
defaultroute
defaultroute6
maxfail "5"
#usepeerdns
"persist"
+ipv6
user "*"
password "*"
这是非常简单的设置,所以我不知道为什么防火墙会导致这个问题。
任何建议都会很有帮助。
问候。
14
最佳答案
1
我已经设置了带有赛扬 j1900 处理器的 Linux 路由器
我主要怀疑 Celeron J1900 的速度不够快,无法通过 PPPoE 处理 1 Gbps 的速度,而且还要检查每个数据包的大量防火墙规则。它似乎是一款基于 Atom 的 CPU,即使在当时也属于低端产品;更何况,您在评论中说,即使没有防火墙,速度测试也会消耗 100% 的一个核心。
(firewalld 网站声称 NftablesFlowtable 应该比传统的 Linux conntrack 流跟踪具有更高的性能……但这仍可能被 firewalld 的基本规则集所做的所有其他事情所抵消。)
虽然目前还不清楚有多少 CPU 占用是由于数据包转发,又有多少是由于 Speedtest 应用程序本身。可能是因为赛扬在没有其他负载时能够路由 1Gbps ,但当你在其上运行其他软件时就会不堪重负。
您使用的“Ookla 测速”应用似乎与我在 Debian 上找到的应用不同;后者占用大量 CPU,但我不知道您的版本是否也存在这种情况。不过,无论哪种情况,除了升级 CPU 之外,我建议尝试不同的“测速”工具 – 不仅用于测试互联网连接,还用于检查它是否也能在本地处理 1Gbps 。
(为了进行比较,我在 2007 年的 Xeon 系统上运行了一些测试,Debianspeedtest-cli
应用程序在某些时候达到了 CPU 的约 450%,而iperf3 -P4
两个本地系统之间只需要一个核心的约 7%。)
3
-
有多个速度测试应用程序,官方应用程序是我所知道的最新应用程序。speedtest.net 是我运行的,看起来与 OP 运行的相同。根据我的经验,它往往能提供“最佳”基准,效率略高,并且在我作为浏览器运行的第 4 代酷睿 i3 ULT 上提供接近线速的速度/
–
♦ -
在同样的 2007 Xeon 上进行下载测试时,该程序的 CPU 占用率似乎约为 13%(结果约为 910 Mbps)。对于 Atom CPU 来说,除了 IP 路由和 nftables 之外,它可能仍然是一个相当大的额外负载。
– -
我同意你的回答。我在这台机器上安装了 OpenWRT,速度测试得到 ~810 Mbps,但 LuCI 无法访问。速度测试完成后单击即可获得结果。谢谢你的回答。
–
|
–
–
–
–
–
|