OPNsense Forum

International Forums => German - Deutsch => Topic started by: ar on February 24, 2022, 08:03:24 PM

Title: IPv4/IPv6-Shaping
Post by: ar on February 24, 2022, 08:03:24 PM
Hallo, gerade etwas am Verzweifeln.

Hat jemand ein funktionierendes Beispiel mit einem wechselnden IPv6-Prefix der Telekom als WAN? Hatte gerade einen Download über Steam über IPv6 der die gesamte Bandbreite gefressen hatte und kein Ansatz konnte das unterbinden. Ich hatte es ursprünglich nach dem offiziellen Wiki (https://docs.opnsense.org/manual/how-tos/shaper_share_evenly.html) probiert und nun noch ein weiteres Tutorial (https://maltechx.de/2021/03/opnsense-setup-traffic-shaping-and-reduce-bufferbloat/) probiert, doch die App frisst weiterhin 99% der PipeDown. Über IPv4 lief es nach dem Wiki einwandfrei.

Seltsam ist auch das im Shaper-Status mit "Show active flows" jeglicher IPv6-Traffic als Source ::/0 und Destination ::/0 auflistet, während bei IPv4 die entsprechende Quelle/Ziel korrekt mit der genauen IP aufgelistet wird.

Hat jemand ein ähnliches Setup bei dem es funktioniert, was mache ich falsch?
Title: Re: IPv4/IPv6-Shaping
Post by: ar on February 25, 2022, 11:02:20 AM
Nun nochmal vereinfacht mit iperf3 getestet von zwei Clients über das gleiche LAN 192.168.22.0/24 und entsprechenden IPv6s aus dem Telekom-Prefix-Bereich 2003::/19. Die Regeln sind dabei:

Pipes:
PipeDown, 10 Mbit/s, Weighted Fair Queueing
PipeUp, 10 Mbit/s, Weighted Fair Queueing

Queues:
QueueDown auf PipeDown, 100 Weight, destination
QueueUp auf PipeUp, 100 Weight, source

Rules:
Seq 11, WAN, ip, any auf allem, Direction in, Target QueueDown
Seq 21, WAN, ip, any auf allem, Direction out, Target QueueUp

Setup der Interfaces ist simpel:

LAN IPv4 Static, IPv6 Track Interface, Tracking WAN
LAN meldet 192.168.22.1 / 2003:cc:XXX:73c9

WAN IPv4 PPPoE, IPv6 DHCPv6, PD Size 56, Use IPv4 connectivity
WAN meldet 80.128.XXX.XXX / 2003:cc:XXX:73c9

Router ist ein DEC-750
Beide Testclients Ubuntu Linux über LAN verbunden.

Testläufe über einen Client zeigen das zumindest die Pipe korrekt funktioniert und auf 10 Mbit/s limitiert, sowohl über IPv4 als auch IPv6.

Das tatsächliche Verhalten bei zwei gleichzeitigen Clients im Mischbetrieb ist doch recht unerwartet, mit einigen Sekunden versetzt gestartet:


iperf3 -c SERVER -p 55020 -t 20 -R -4
Connecting to host SERVER, port 55020
Reverse mode, remote host SERVER is sending
[  5] local 192.168.22.162 port 38928 connected to 116.203.XXX.XXX port 55020
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   589 KBytes  4.83 Mbits/sec                 
[  5]   1.00-2.00   sec   588 KBytes  4.82 Mbits/sec                 
[  5]   2.00-3.00   sec   591 KBytes  4.84 Mbits/sec                 
[  5]   3.00-4.00   sec   588 KBytes  4.81 Mbits/sec                 
[  5]   4.00-5.00   sec   571 KBytes  4.68 Mbits/sec                 
[  5]   5.00-6.00   sec   589 KBytes  4.83 Mbits/sec                 
[  5]   6.00-7.00   sec   588 KBytes  4.82 Mbits/sec                 
[  5]   7.00-8.00   sec   589 KBytes  4.83 Mbits/sec                 
[  5]   8.00-9.00   sec   589 KBytes  4.83 Mbits/sec                 
[  5]   9.00-10.00  sec   588 KBytes  4.82 Mbits/sec                 
[  5]  10.00-11.00  sec   589 KBytes  4.83 Mbits/sec                 
[  5]  11.00-12.00  sec   537 KBytes  4.40 Mbits/sec                 
[  5]  12.00-13.00  sec   636 KBytes  5.21 Mbits/sec                 
[  5]  13.00-14.00  sec   589 KBytes  4.83 Mbits/sec                 
[  5]  14.00-15.00  sec   588 KBytes  4.82 Mbits/sec                 
[  5]  15.00-16.00  sec   589 KBytes  4.83 Mbits/sec                 
[  5]  16.00-17.00  sec   589 KBytes  4.83 Mbits/sec                 
[  5]  17.00-18.00  sec   589 KBytes  4.83 Mbits/sec                 
[  5]  18.00-19.00  sec   588 KBytes  4.82 Mbits/sec                 
[  5]  19.00-20.00  sec   589 KBytes  4.83 Mbits/sec                 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-20.01  sec  11.8 MBytes  4.95 Mbits/sec   12             sender
[  5]   0.00-20.00  sec  11.5 MBytes  4.81 Mbits/sec                  receiver


Der IPv4-Client schaut also OK aus. Er bekommt 50%.

Der IPv6-Client dagegen hat ein sehr seltsames Verhalten:


iperf3 -c SERVER -p 55021 -t 120 -R -6
Connecting to host SERVER, port 55021
Reverse mode, remote host SERVER is sending
[  5] local 2003:cc:XXX:7099 port 60670 connected to 2a01:XXX::1 port 55021
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   409 KBytes  3.35 Mbits/sec                 
[  5]   1.00-2.00   sec   458 KBytes  3.75 Mbits/sec                 
[  5]   2.00-3.00   sec   448 KBytes  3.67 Mbits/sec                 
[  5]   3.00-4.00   sec   478 KBytes  3.92 Mbits/sec                 
[  5]   4.00-5.00   sec   494 KBytes  4.04 Mbits/sec                 
[  5]   5.00-6.00   sec   463 KBytes  3.79 Mbits/sec                 
[  5]   6.00-7.00   sec   448 KBytes  3.67 Mbits/sec                 
[  5]   7.00-8.00   sec   404 KBytes  3.31 Mbits/sec                 
[  5]   8.00-9.00   sec   355 KBytes  2.91 Mbits/sec                 
[  5]   9.00-10.00  sec   306 KBytes  2.51 Mbits/sec                 
[  5]  10.00-11.00  sec   283 KBytes  2.32 Mbits/sec                 
[  5]  11.00-12.00  sec   211 KBytes  1.73 Mbits/sec                 
[  5]  12.00-13.00  sec   169 KBytes  1.39 Mbits/sec                 
[  5]  13.00-14.00  sec   111 KBytes   909 Kbits/sec                 
[  5]  14.00-15.00  sec  86.0 KBytes   704 Kbits/sec                 
[  5]  15.00-16.00  sec  70.7 KBytes   579 Kbits/sec                 
[  5]  16.00-17.00  sec   201 KBytes  1.65 Mbits/sec                 
[  5]  17.00-18.00  sec   587 KBytes  4.81 Mbits/sec                 
[  5]  18.00-19.00  sec   865 KBytes  7.09 Mbits/sec                 
[  5]  19.00-20.00  sec   989 KBytes  8.10 Mbits/sec                 
[  5]  20.00-21.00  sec  1.01 MBytes  8.45 Mbits/sec                 
^C[  5]  21.00-21.46  sec   473 KBytes  8.37 Mbits/sec                 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-21.46  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-21.46  sec  9.12 MBytes  3.56 Mbits/sec                  receiver


Er wird immer weiter runterdrosselt, bis zu Sekunde 16, wo der IPv4-Client fertig ist.

Ebenfalls geprüft habe ich ob es mit Hardware CRC/TSO/LRO zusammen hängen könnte und die Einstellungen für die Tests an- und abgestellt, ohne einen Effekt. Den Router selbst auch einmal durchgestartet.

Das Problem mit der Totdrosselung von IPv6-Traffic passiert ungefähr jeden zweiten bis dritten Test.

Es deckt sich nicht einmal mit dem Verhalten was ich gestern hatte mit Steam, wo IPv6 die absolute Priorität bekam, allerdings weiss ich auch nicht auf welche Art Steam die Dateien übertragt.

Hat jemand eine Idee wo der Fehler sein könnte oder ein funktionierendes Setup?