So here's some more evidence of the aggressive traffic shaping by my ISP.
I setup an L2TP tunnel between my router and my virtual machine. L2TP has the feature that the encapsulation type can be selected to be either UDP or IP protocol 115. Which makes for a nice test to examine possible shaping behaviour on the different protocols.
Here is an iperf3 test over an l2tp tunnel using UDP as the encapsulation method
root@ubuntu:/etc# iperf3 -R -O 3 -c 10.50.0.1
Connecting to host 10.50.0.1, port 5201
Reverse mode, remote host 10.50.0.1 is sending
[ 5] local 192.168.0.2 port 41048 connected to 10.50.0.1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 20.7 MBytes 174 Mbits/sec (omitted)
[ 5] 1.00-2.00 sec 47.1 MBytes 395 Mbits/sec (omitted)
[ 5] 2.00-3.00 sec 42.6 MBytes 357 Mbits/sec (omitted)
[ 5] 0.00-1.00 sec 47.1 MBytes 395 Mbits/sec
[ 5] 1.00-2.00 sec 48.8 MBytes 410 Mbits/sec
[ 5] 2.00-3.00 sec 48.6 MBytes 408 Mbits/sec
[ 5] 3.00-4.00 sec 51.8 MBytes 435 Mbits/sec
[ 5] 4.00-5.00 sec 51.6 MBytes 433 Mbits/sec
[ 5] 5.00-6.00 sec 48.3 MBytes 405 Mbits/sec
[ 5] 6.00-7.00 sec 47.0 MBytes 394 Mbits/sec
[ 5] 7.00-8.00 sec 48.3 MBytes 405 Mbits/sec
[ 5] 8.00-9.00 sec 49.6 MBytes 416 Mbits/sec
[ 5] 9.00-10.00 sec 48.4 MBytes 406 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.02 sec 491 MBytes 411 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 490 MBytes 411 Mbits/sec receiver
Then, I simply changed encapsulation type from UDP to IP.
Here is an iperf3 test over the same l2tp tunnel using IP protocol 115 as the encapsulation method instead of UDP.
Fully ten times less bandwidth. I repeated this test multiple times.
root@ubuntu:/etc# iperf3 -R -O 3 -c 10.50.0.1
Connecting to host 10.50.0.1, port 5201
Reverse mode, remote host 10.50.0.1 is sending
[ 5] local 192.168.0.2 port 41058 connected to 10.50.0.1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 4.63 MBytes 38.8 Mbits/sec (omitted)
[ 5] 1.00-2.00 sec 6.48 MBytes 54.4 Mbits/sec (omitted)
[ 5] 1.00-1.00 sec 6.39 MBytes 26.8 Mbits/sec
[ 5] 1.00-2.00 sec 7.90 MBytes 66.2 Mbits/sec
[ 5] 2.00-3.00 sec 6.30 MBytes 52.9 Mbits/sec
[ 5] 3.00-4.00 sec 7.80 MBytes 65.4 Mbits/sec
[ 5] 4.00-5.00 sec 6.55 MBytes 54.9 Mbits/sec
[ 5] 5.00-6.00 sec 8.12 MBytes 68.1 Mbits/sec
[ 5] 6.00-7.00 sec 6.86 MBytes 57.5 Mbits/sec
[ 5] 7.00-8.00 sec 7.49 MBytes 62.8 Mbits/sec
[ 5] 8.00-9.00 sec 6.55 MBytes 55.0 Mbits/sec
[ 5] 9.00-10.00 sec 7.89 MBytes 66.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.03 sec 72.0 MBytes 60.3 Mbits/sec 4 sender
[ 5] 0.00-10.00 sec 71.8 MBytes 60.3 Mbits/sec receiver
And even UDP encapsulation appears to be shaped, although much less aggressively.
Here is the iperf3 test to the public IP of the same virtual machine for comparison.
root@ubuntu:/etc# iperf3 -R -O 3 -c <public ipv4 of virtual machine>
Connecting to host <public ipv4 of virtual machine>, port 5201
Reverse mode, remote host <public ipv4 of virtual machine> is sending
[ 5] local 192.168.0.2 port 49852 connected to <public ipv4 of virtual machine> port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 76.9 MBytes 645 Mbits/sec (omitted)
[ 5] 1.00-2.00 sec 99.3 MBytes 833 Mbits/sec (omitted)
[ 5] 2.00-3.00 sec 100 MBytes 843 Mbits/sec (omitted)
[ 5] 0.00-1.00 sec 101 MBytes 846 Mbits/sec
[ 5] 1.00-2.00 sec 101 MBytes 847 Mbits/sec
[ 5] 2.00-3.00 sec 102 MBytes 856 Mbits/sec
[ 5] 3.00-4.00 sec 98.4 MBytes 826 Mbits/sec
[ 5] 4.00-5.00 sec 98.6 MBytes 827 Mbits/sec
[ 5] 5.00-6.00 sec 98.9 MBytes 830 Mbits/sec
[ 5] 6.00-7.00 sec 98.1 MBytes 823 Mbits/sec
[ 5] 7.00-8.00 sec 99.5 MBytes 835 Mbits/sec
[ 5] 8.00-9.00 sec 99.4 MBytes 834 Mbits/sec
[ 5] 9.00-10.00 sec 101 MBytes 851 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.02 sec 999 MBytes 836 Mbits/sec 3 sender
[ 5] 0.00-10.00 sec 998 MBytes 837 Mbits/sec receiver
iperf Done.
I get similar results over a Wireguard tunnel, that is to say, 50% bandwidth reduction.
Any other IP protocol type gets much more aggressively shaped, up to 90%.
There is categorically not that amount of overhead in the encapsulation that could cause this type of bandwidth reduction, yet my ISP insists publicly that they don't do any form of shaping.
Well, methinks this test thoroughly debunks that claim