PC Engines APU2C4 + OpnSense 18.1 routing+NAT 1Gbit hogyan?

 ( ricsip | 2018. június 29., péntek - 13:57 )

Helló mindenki!

Előzmények:
https://hup.hu/node/152567
https://hup.hu/cikkek/20170327/opnsense_teszt
https://hup.hu/cikkek/20170322/lk_pfsense_ala_hw
https://www.pcengines.ch/apu2c4.htm
https://pcengines.github.io/ --> coreboot BIOS for apu2 (current vonal: 4.8.akármi, legacy vonal: 4.0.akármi)
http://www.pcengines.info/forums/?page=post&id=69F984B9-1542-4103-8808-11574792ECFE&fid=6D8DBBA4-9D40-4C87-B471-80CB5D9BD945 --> coreboot 4.0.x vs 4.6.x
https://openwrt.org/toh/pcengines/apu2

apu2c0 (2 GB DRAM, 2 i211AT NICs)
apu2c2 (2 GB DRAM, 3 i211AT NICs)
apu2c4 = 3x i210AT LAN / AMD GX-412TC 1 Ghz Quad-core CPU / 4 GB DRAM

"The i210 implements 4 receive queues and 4 transmit queues"
"The i211 implements 2 receive queues and 2 transmit queues" --> ez az i21x sorozat gyengébbik tagja

Out of the box OpnSense 18.1.6-al teszteltem, ergo kb. 0 extra szabály van a tűzfalban, nem VPN tunnel-e keresztül mértem stb.
coreboot 20170218
seabios 1.10.0.1

Kiindulási konfig:
hw.igb.enable_msix: 1
hw.igb.txd: 1024
net.link.ifqmaxlen: 50
kern.random.harvest.mask: 2047
hw.igb.rx_process_limit: 100
Disabled HW TSO, LSO, CRC

A gond:
1 Gbit-es internetet nem bír kihajtani PC1 --> LAN -> NAT -> WAN --> PC2 láb irányban iperf szerint stabilan 650 Mbit környékén megáll. Ekkor 1 core 100% system, 1 core 75% interrupt, a másik 2 kb. 98% idle.
Ha ellenkező irány: PC1 <-- LAN <- NAT <- WAN <-- PC2 , még gyengébb: max. kb. 450 Mbit. Ilyenkor szintén 1 core 100% system, egy másik core meg 10% interrupt.

Nyomozás után kiderült h. pppoe (Digi = pppoe) esetén még tovább romlik a helyzet, mert FreeBSD alatt a pppoe interfész "igb" Intel NIC esetén csak 1 RX queue-t tud kezelni a 4-ből (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203856)

Aktív VPN tunnel-en (+aktív crypto beállítással) meg még ennél is rosszabb lenne a helyzet.

Viszont biztosan nem endpoint issue, mert:
PC1 <--> PC2 direktben, v. egy L2 gbit-es switchen keresztül stabilan 950 Mbit-et hoz iperf.

Van erre bármilyen 1 parancsos varázs-megoldás, v. ez tényleg csak ennyit tud?

Ötlet híjján itt indulnék el:
https://teklager.se/en/knowledge-base/apu2c0-ipfire-throughput-test-much-faster-pfsense/
https://bsdrp.net/documentation/technical_docs/performance
https://github.com/ocochard/netbenches/blob/master/README.md
https://calomel.org/freebsd_network_tuning.html
https://wiki.freebsd.org/10gFreeBSD/Router

de ezzel ahogy látom a routing performance tuningolás feneketlen bugyraiba jutok el

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Első körben:

hw.igb.num_queues=4

Mintha ha lett volna már ez a téma de lehet pfsense-nél

illetve a

kern.ipc.nmbclusters

növelése ahogy az igb man page javasolja.

Igen, én kérdeztem.
Nekem nem sikerült "megjavítani".

Az elmúlt 1 évben sem? Vagy csak nem foglalkoztál vele azóta?

Csak mert láttam h. a hivatkozott 2 sysctl change és iperf -P3 már jó eredményt adott neked. Tehát csak az 1 szálú forgalom maradt nálad gyenge továbbra is.
--

Nekem jó így, nem foglalkoztam vele tovább.

Azért furcsállom, mert írják a fenti URL-eken h. ne 1 szálon futtasd az iperf-et mikor a router teljesítményét méred (mint ahogy te is -P3 használtál). Na de ha 1 szálon akarok/tudok forgalmazni Gbit-et wirespeed-en egy konkrét esetben, akkor hajamra kenhetem ezeket a jótanácsokat :S
--

Kb. igen.
Ugyanakkor ha az otthoni interneted megosztásához kell a doboz, akkor nem valószínű, hogy fogsz találni olyan partnert, akivel tudnál gyorsabban forgalmazni, mint amit egy szálon tud. Ha meg egyszerre több kapcsolaton töltesz le, vagy többen akarjátok használni, akkor már elég, ha több szálon tudja a Gbit sebességet.

Gyenge a CPU. Ennyi.

Nézem TOP-ban, 1 core-t kihajt 99% system, másik 3 core meg 98% idle. Szóval nem a cpu gyenge, hanem rossz a NIC queue --> cpu core szétosztás.

Ami rosszabb hír, h. pppoe (DIGI = pppoe) BSD alatt úgy tűnik single thread-ed, és az a mostani max. 650 mbitet tovább fogja csökkenteni.
--

Tehát gyenge a CPU.
Lehet ezt csavargatni ide-oda, de egyszerűbb egy erősebb vasat alátenni, ha full GbE az igényed.

Illetve - elnézést a szentségtörésért - gyenge a FreeBSD :) Én annak idején kipróbáltam OpenWrt-vel is, ott ment egy szálon is a 900+ Mbit/s.

Még az is lehet. Ki kéne próbálni az 5-ös mpd-t (net/mpd5).

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Lehet én vagyok gyenge BSD/Linux-ból, de opnsense-ben out of the box nem "mpd5" van?

https://opnsense.c0urier.net/FreeBSD%3A11%3Aamd64/18.1/latest/All/mpd5-5.8_3.txz

--

"gyenge a FreeBSD"

Hajlok rá ez a nagy büdös helyzet :S

Update: igen, úgy tűnik Freebsd Hardenedbsd-vel van a gond.

Próbaképp felraktam egy ipfire nevezetű linux firewall disztrib-et, simán kihajtja 1 szálon is ilyen 850-900Mbit-en, jóval alcsonyabb load mellett.
--

Nagyon nem ugyanazt méred ám, a NAT-olásnak és a pppoe-nek együtt simán van ekkora overheadje.

Tisztán routing-ot NAT nélkül valóban nem mértem, mert annak semmi létjogosultsága manapság, mindenki NAT mögül van, nem szimpla routing. Pppoe még csak ezután jött volna, ha a NAT már ment volna közel wire speed.
--

kern.random.harvest.mask: 2047 --> 600 Mbit (PC1->LAN->NAT->WAN->PC2)
kern.random.harvest.mask: 351 --> 625 Mbit (PC1->LAN->NAT->WAN->PC2), PC2-->WAN-->LAN-->PC1 irányon nem segít kb. semennyit
--

+Subscribe - kíváncsi leszek mi lesz az eredmény.

Én megnézném PfSense-el is, bár úgy olvasgatom a fórumokon mostanában, hogy az opensense talán jobb (de ki tudja 1 Gbit-tel is jobb-e...)

Másfelől ahogy fent is írják lehet, hogy BSD háza táján van a probléma. Mi van ha felhúzol egy Debian-t teszt céllal és mérsz egyet az iperf-fel?
Előtte persze csinálsz a diskről egy image-et és ha nem válik be a debian akkor visszaállítod az opensense-t.

https://hup.hu/node/159928#comment-2245404

Update: igen, úgy tűnik Freebsd/Hardenedbsd-vel van a gond.

Próbaképp felraktam egy ipfire nevezetű linux firewall disztrib-et, simán kihajtja 1 szálon is ilyen 850-900Mbit-en, jóval alcsonyabb load mellett.
--

remek téma, pont gondolkozom ilyesmi vételén.
jó volna már találni itthonra vmi értelmes *bsd usecase-t, de akkor ezen is linux lesz (ipfire).

Nekem mar a pf azza teszi (akar a sima, mezitlabas pf). Abszolut lehet elni nelkule, csak megszerettem. :)

Honnan vettétek a board-ot?
A gyártó EU-ba nem szállít csak viszonteladóknak.

eBay-ről.

http://wireless-bolt.hu/25606-alix-alaplapok

Rendelés után másnap itt volt az asztalomon.
--