Need help tweaking port speed on 7362SL

I installed OpenWRT 23.05.2 r23630-842932a63d on my old Fritz!Box 7362SL (aka 1&1 Homeserver 50.000) successfully.

I want to use this rather old device as kind of a smart switch or some kind of secondary DHCP that only provides IPv4 to one single device. Long story short: My Playstation 5 bugs out on IPv6, although all the other devices on the network work with IPv6 flawlessly. This is a well documented problem, i.e. on reddit here, here and here. As I do not want to cut IPv6 completely, I want to separate the PS5 in a subnet that does not have IPv6 with the OpenWRT Fritz!Box 7362SL.

After installation of OpenWRT, I was able to set up the desired subnet. My main router provides DHCP @192.168.178.x, a pihole provides (recursive) DNS. The 7362SL connects with interface br-lan set to DHCP client and gets an IP from the .178.x range. The Playstation 5 is connected to br-ipv4 which is set to static address and has DHCP server on @192.168.100.x and receives a .100.x IP as desired.

So far, so good. The PS5 connects to the internet, gets no IPv6 just like I need it and works without hiccups in the store and with the social features.

But...

LAN port performance is not good. Both ports are 1Gb, and link info shows 1Gb as well. I have a fibre connection, 500down/100up, and always got around 490/80 with the PS5s internal network speed test. Now, at first, I only got around 50/2. After enabling "packet steering" (Network > Interfaces > Global options) and Software/Hardware Flow Offloading (Network > Firewall > Routing/NAT Offloading) I get 250down /12up. For sanity check reasons I disabled the secondary DHCP and threw all ports in one bridge-device on the 7362SL and instantly got my 490/80 back - along with all the IPv6 problems, though.

What can I do to improve network speeds? My guess is that running two bridge-devices (one as dhcp client, one as static address with dhcp server) severely impacts performance and load on the cpu to a point that even hardware flow offloading won't help anymore. But when I join all ports in one bridge, the PS5 gets IPv6 again.

I see two possible solutions:

  1. Is there a magic switch to improve port/bridge-performance that I am missing, maybe somewhere in the firewall?
  2. Can I have all my LAN ports in one bridge-device and still get the desired outcome, i.e. the PS5 in another DHCP-range without IPv6?

Help is much appreciated, best regards!

It sounds like you're using your device as a router in this case, and it's clearly not capable of routing at the speeds of your internet service (not even close).

Let's review your config to make sure there's nothing unusual going on.

But, the other question is this: what is the upstream device -- does it run OpenWrt?

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

Hmmm... that contradicts the device info page which says that the device only has 100M ports.

I will gather the device info via SSH in a few minutes. The 7362SL is rather strange as it has two Gigabit and two 100MBit ethernet ports besides the DSL port.

a vectoring capable DSL router with two Gigabit and two Fast Ethernet ports

But in the hardware highlights table, it shows 2x 100M (and no 1G). Possibly just an issue with the table rendering if that's the case.

It is clear that you're not going to get full line speed out of that device because it has just a single core 500MHz processor, but we'll see if there is anything with the config that can be adjusted.

Meanwhile -- what's upstream of this device?

Ah, indeed the table is wrong. The 7362SL has four LAN ports, two 1GBit, two 100MBit. On the PS5 I was able to get very close to the full 500MBit (about 60 Megabyte per second) with FritzOS, but had no opprtunity to cut IPv6...

Upstream is a Fritz!Box 7590, connected with 1GBit, on a 500MBit/100MBit Telekom fibre connection. The 7362SL is connected directly to the router.

What is the lan subnet for the 7590 (just for info as I review the config of the other device)? IIRC, 192.168.178.0/24 is the default Fritz lan subnet -- is that right and is that what you are using?

That's correct and that is what I am using.

### ubus call system board
{
        "kernel": "5.15.137",
        "hostname": "****",
        "system": "xRX200 rev 1.2",
        "model": "AVM FRITZ!Box 7362 SL",
        "board_name": "avm,fritz7362sl",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.2",
                "revision": "r23630-842932a63d",
                "target": "lantiq/xrx200",
                "description": "OpenWrt 23.05.2 r23630-842932a63d"
        }
}


### cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix '******'
        option packet_steering '1'

config atm-bridge 'atm'
        option vpi '1'
        option vci '32'
        option encaps 'llc'
        option payload 'bridged'
        option nameprefix 'dsl'

config dsl 'dsl'
        option annex 'b'
        option tone 'av'
        option ds_snr_offset '0'

config device
        option name 'br-lan'
        option type 'bridge'
        option ipv6 '0'
        list ports 'lan1'
        list ports 'lan3'

config device
        option name 'lan1'
        option macaddr '*********'

config device
        option name 'lan2'
        option macaddr '*********'
        option drop_v6_unicast_in_l2_multicast '1'

config device
        option name 'lan3'
        option macaddr '*********'

config device
        option name 'lan4'
        option macaddr '*********'

config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'
        option delegate '0'

config device
        option type 'bridge'
        option name 'br-ipv4'
        option bridge_empty '1'
        option ipv6 '0'
        list ports 'lan2'
        list ports 'lan4'

config interface 'ipv4'
        option proto 'static'
        option device 'br-ipv4'
        option ipaddr '192.168.100.1'
        option netmask '255.255.255.0'
        list dns '192.168.178.dns'
        option delegate '0'
        option force_link '0'
             
        
### cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'


### cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option cachesize '1000'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '1'
        list server '/pihole.**********/192.168.178.dns'
        option quietdhcp '1'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'ipv4'
        option interface 'ipv4'
        option start '11'
        option limit '199'
        option leasetime '18h'

config host
        option name 'Playstation5'
        option mac '***********'
        option ip '192.168.100.142'
        option leasetime 'infinite'


### cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option flow_offloading '1'
        option flow_offloading_hw '1'
        option drop_invalid '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'ipv4_dhcp'
        option family 'ipv4'
        list proto 'udp'
        option src 'ipv4'
        option dest_port '67-68'
        option target 'ACCEPT'

config rule
        option name 'ipv4_dns'
        option family 'ipv4'
        option src 'ipv4'
        option dest_port '53'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'ipv4'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'ipv4'

config forwarding
        option src 'ipv4'
        option dest 'lan'

Try removing this:

Then put lan2 and lan4 back in br-lan like this:

config device
        option name 'br-lan'
        option type 'bridge'
        option ipv6 '0'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

now define bridge-vlans for the lan and ipv4 networks:

config bridge-vlan
        option device 'br-lan'
        option vlan '1'
        option ipv6 '0'
        list ports 'lan1:u*'
        list ports 'lan3:u*'

config bridge-vlan
        option device 'br-lan'
        option vlan '2'
        option ipv6 '0'
        list ports 'lan2:u*'
        list ports 'lan4:u*'

finally, edit the network interfaces to use the new bridge-vlans br-lan.1 and br-lan.2. Also, remove the dns and force_link lines from the ipv4 interface.

config interface 'lan'
        option device 'br-lan.1'
        option proto 'dhcp'
        option delegate '0'

config interface 'ipv4'
        option proto 'static'
        option device 'br-lan.2'
        option ipaddr '192.168.100.1'
        option netmask '255.255.255.0'
        option delegate '0'

Restart your device and see if that helps.

Awesome that you are able to just reply at this level... I am impressed. Had to get into vi shortcuts again, but the 7362SL is rebooting right now. Fingers crossed!

This setup is working (no IPv6, .100.x IP for the PS5), but it is slightly slower than before. Instead of 250/12 I now get 180/8.

hmmm... I don't know why it is slower now.

I wonder if you don't use bridges if it would improve the speed (on some systems, the bridge can slow things down.

Do you know which ports are 100M vs 1G?

Yes. 1 and 2 are Gigabit, 3 and 4 are 100 MBit. When speed-testing on the PS5, I see that the realtime graphs on the 7362SL are well red but at about 0.38 peak.

Ok... try this:

delete br-lan entirely.

and also delete the bridge VLAN statements

now edit lan to use device lan1 and ipv4 to use lan2:

config interface 'lan'
        option device 'lan1'
        option proto 'dhcp'
        option delegate '0'

config interface 'ipv4'
        option proto 'static'
        option device 'lan2'
        option ipaddr '192.168.100.1'
        option netmask '255.255.255.0'
        option delegate '0'

Then reboot and try again.

P.S. I just lost electricity due to the big storm rolling through California, so my online time is limited -- cell coverage is terrible in my house and my network can only stay live for a little while on a UPS).

Okay, I will try your suggestions and come back to you later as it is night-time in Germany anyways. Take care with that weather situation!

Good day to you, I hope the storm has passed without creating any more problems for you!

This new idea is definitely faster. I get around 280/15 in this setup, with peaks at 400+ MBit. Sadly, these peaks immediately drop down, so I guess I am really facing a performance bottleneck at this point.


I'd put it this way, simplified to the max: As soon as the dhcp client port has received data, the data has to be "translated" into the dhcp server ip range and then the dhcp server port pushes the data out again. Double the work when compared to a simple switch that just pushes data through without any "translation".

What are my choices now?

  • Is there another way to reduce "translation" load?
  • Can I remove unnecessary services, i.e. the firewall, to free up some resources?
  • Can I wget a 100mb file (not more space on the 7362SL) directly via SSH to test the speed without "translating" into the dhcp server port?
  • Can I change the cpu/scaling governor to "performance"? Is there a current LuCI extension for this or do I rely on SSH'ing into the device and echo'ing into the scaling_governor file?
  • I am planning to buy 2.5GB Switches anyways, so is there a good choice of products that are known to be fast enough for this specific problem?

It's funny that I am just trying to solve some shortcomings of Sony (PS5 has IPv6 issues), AVM (Fritz!Box can't cut IPv6 for single devices) and Deutsche Telekom (IPv6 is not 100% standard as it fails on special devices like the PS5) and I started build a second infrastructure :joy:

Why do you think the DTAG IPv6 is not 100% standard?
Just because the PS5 has got problems with it?

1 Like

No. Because issues have been reported, i.e. variable prefixes forced on non business contracts, some early dual stack "experiments", quirks regarding compatibility with Speedport devices. I don't see how this helps solving the problem, though...

I chose the easy route now. A friend had a Zyxel NBG7510 router lying around unused that I could borrow for testing. It has a 900MHz dual-core CPU which is a loooooot faster than the 500MHz 10 year old xRX200 package on the 7362SL. The Zyxel is advertised as being capable of up to 1GBit WAN connections, so in theory, the device should be fast enough to connect to my LAN and the 500MBit fibre connection and serve it's own DHCP range. And yes, indeed it is. I now get about the same speeds as before, around 490down/85 up. Close enough.

It's a bit sad that the 7362SL is just a bit too slow as I really like OpenWRT. I will keep it as a spare, though. Since the Zyxel is dirt cheap at roundabout 24 Euros, I ordered a new one up for my friend and just removed the four (!) WiFi antennaes on "my" device. Maybe at some point in the future we might see a OpenWRT target for the Zyxel as well, who knows.

Thanks for all your help, @psherman!