I have a Ubuntu 7.10 server with 2 NICs acting as the router/firewall for a small LAN connected to a Billion 5200 ADSL2+ DSL "modem". The connection is advertized as 24/3Mbit, the actual negotiated connection speed at the moment is 19187/2235kbit. The router/firewall software in use is Shorewall 3.4.4. I'm using traffic shaping for upstream, prioritizing interactive traffic (ssh/rdp/etc), pings, tcp acks etc, obviously no shaping for downstream traffic.
The connection "seems" to otherwise work normally, upstream speeds are what I expect them to be, but downstream it seems like getting around 200kb/s over a single connection is the maximum, that is, around 10% of what it should be. If I have several simultaneous connections open, the speed goes up to around 700-800kb/s max, which is still just a bit over 1/3rd of what it should be. In Ubuntu 7.04 (and other distros before that) the speeds were what they were supposed to, around 1600-2000kb/s. All the hardware is still identical, including cables and such. The external connection (eth0) is autonegotiated to 100/FD, which is what the DSL box supports.
Any ideas what could be causing this and where should I start troubleshooting?