WDS doesn't work between stock DIR-825ACG1 (AP) and OpenWrt TL-WR841ND (v8) (client)

I was able to set up WDS with stock ROM on both of them but wanted to switch to OpenWrt with the help of this tutorial: https://openwrt.org/docs/guide-user/network/wifi/wifiextenders/wds by configuring everything in webconsole. On OpenWrt however my setup no longer works. After seemingly doing everything correct, successfully connecting to AP as Client (WDS) doesn't actually give ability to even ping it from client itself. I suspect the issue might be that for OpenWrt client to work I need OpenWrt on AP as well as recommended by wiki but the fact that stock ROM did work doesn't let me sleep. Here's my configs:

root@OpenWrt:~# 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 authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'

config dhcp 'lan'
        option interface 'lan'
        option ignore '1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

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

root@OpenWrt:~# cat /etc/config/network

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

config globals 'globals'
        option ula_prefix 'fd75:3c7d:4eca::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.0.2'
        option gateway '192.168.0.1'
        option stp '1'
        option broadcast '192.168.0.255'
        option dns '192.168.0.1'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 0t'

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path 'platform/ar934x_wmac'
        option country 'UA'
        option htmode 'HT40'
        option channel '13'
        option legacy_rates '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

config wifi-iface
        option ssid 'DIR-825-3CC0'
        option encryption 'psk2'
        option device 'radio0'
        option mode 'sta'
        option bssid '58:D5:6E:C9:3C:C3'
        option key 'KEY'
        option network 'lan'
        option wds '1'

I also did relayd setups with old 17.x.x LEDE and custom 19.x.x but 19 was laggy and I don't really wanna go back to 17. Relayd on (official) 18 is not an option since no space to even fetch repositories.

Yes, I have control over AP but no, I cannot flash OpenWrt on it too. Any clues would be appreciated.

It's not a recommendation, but a hard requirement. WDS is not a standardized feature, every vendor implements its own -incompatible- flavour, OpenWrt relies on the mainline kernel's 4addr approach provided by nl80211, which is not available to proprietary wireless drivers (such as those used in OEM firmwares).

That aside, only use OpenWrt on hardware that can run the most recent -security supported- version (24.10.x at this time).

2 Likes

Ok, thanks, I'd suggest changing the wiki page then.

That doesn't bother me at all since that thing won't ever be exposed to the Internet and I consider my local network secure. And stock ROM for that device is even more outdated.

That rises another question: is relayd better than normal AP+STA mode in terms of performance?

Because now that WDP is off from the table, mesh is not supported by AP, I basically have the choice between using LEDE 17 with relayd and OpenWrt 18 with AP+STA. I can also try to build 18 with relayd but don't have that much free time to dig into it so probably not now.

I would have just gone with AP+STA approach but I like the idea of having only one subnet.

There are a handful of wireless-side vulnerabilities as well, really, there is no way around a current version of OpenWrt.

No, relayd is slower and has known problems/ bugs (IPv6 in particular), while WDS/ 4addr really is transparent.

1 Like

Will write more about wr841nd v8 because i had one in hand (and several older models).

Except the security issues already mentioned, you will have storage issues with the 841 v8.
You will probably need a custom image (remove pppoe for sure and others). Compiling it yourself will probably not be that easy, i remember i needed an older distro when i last compiled an old openwrt version more than 2 years ago (relative didn't wanted to spend money, didn't cared about security).
You will also hit ram usage issues. If i remember right 841 v8 is 4/32 device.

If both router have same openwrt version WDS should work. Stock firmware and openwrt is luck, we can't really help here due to lack of access to stock firmware.

I would use Relayd when only the client is on openwrt, and there is nothing that can be done about the ap (ap is isp device, ap is device not supported by openwrt). I would put some check conectivity and reboot if no conectivity for xy seconds when using relayd and old openwrt versions (i was forced to do this to keep the connection up as much as possible when using relayd, wifi down up wasn't enough and i didn't really wanted to spend much time to find what trully needs to be restarted).

You might have to use the old openwrt wiki for settings if you decide to use ancient openwrt versions. Also with ancient openwrt version you will kinda have to figure it out by yourself, you will get some theoretical help, but most users are on newer versions and a lot of things changed.

If you can not flash openwrt on AP then relayd is your only option if you insist to use the 841. From my experience with old 841 devices openwrt 19 (even stripped down) is a bit too much for them. And don't expect high speed with relayd.

Sorry for the not so much helpful post but i'm at work (obviously i'm bored) and well the info are from memory.

Thx for your insight. Well, my reason to use it is a bit weird.

I have laptop with RTL8211CE that absolutely loves dropping WiFi (sometimes it's a little freeze, noticeable in real-time streams like games or Google Meet, sometimes under load it just stops "seeing" Internet while still connected).

Since that is a WiFi+BT adapter and I don't have free M.2 slots in laptop, replacing it with other adapter (most people switch to Intel it seems) would cost me money and Bluetooth support.

The I remembered that I had that old router in the closet and decided that to fix WiFi on laptop I should just stop using it. That router is my adapter now.

Since requirements are basically stable connection and ability to have WiFi uplink I don't really care about freshness/security. I don't even mind having own subnet (although connecting to AP subnet is still better).

Have been running official OpenWrt in AP+STA mode for almost a day now, everything seems fine. Loading it up by downloading something causes 0% idle in top but no speed slowing down noticed.

And today I discovered that DD-WRT still make updates for it. Latest one is 31.03.2025 which is hilarious! Definitely trying after getting some sleep. I already tried DD-WRT but they have this weird situation where downloading from Router Database is bad and that's what I did back in the days and bricked router with that old ROM. I'll see what performance I'll get in comparison in AP+STA mode, maybe will roll the dice with WDS there. Also there seems to be relayd available as well that's not named relayd (or maybe not relayd at all but some other implementation).

If you have IPv6 then AP+STA might need some settings changed, depending on the setup, to get it working to the clients behind the STA.

You mean if I have IPv6 on AP and want STA to work with AP's DHCPv6 or having IPv6 from ISP?