Clients under dumb wireless AP not getting IP addresses from upstream DHCP server

hello, i have followed this wiki guide on making a bridged WAP, with the only modification being my LAN interface (i named it wlan) as a DHCP client as i've already set a static IP from my main router (huawei EG8145V5). i have ignore interface checked for DHCP settings, even disabled all 3 ipv6 functions in there and my wireless AP is bridged with my lan interface.
openWRT is running fine and has an internet connection, i can even see it's name and MAC along with it's static IP from my main router.
but every device i connect to openWRT isn't getting an IP address at all, but i know they're connected from the wireless dashboard. they're only showing up with ipv6 addresses and no ipv4. how come DHCP isn't getting through?
i've also tried setting a static IP from the client devices and while openWRT can occasionally see said IP address, they still don't have an internet connection and can only communicate with openWRT and nothing else.
what else can i do here?
p.s. don't worry about the MAC addresses, they're all private/spoofed/custom


thanks in advance.

Does your wifi ap config contain wlan bridge as network?
Pleas post outputs of folowing (sanitising public ips, passwords, other secrets replacing them with ABC

ubus call system board
cat /etc/config/wireless
cat /etc/config/network
cat /etc/config/dhcp
cat /etc/config/firewall
opkg list-installed bridger
opkg list-installed relayd
1 Like

Last time I tried using tplink dumb AP, I ended up settling on stock firmware rather custom one bcz the stock firmware was honestly well optimized. With openwrt I had performance & packet loss issues. Plus, with stock firmware you just connect & forget, meanwhile on openwrt you'll have to execute commands to make it to work as dumb AP. Still no biggie.

That being said, make sure the cable on dumb AP is connected to LAN rather WAN port. Verify bridge that wireless interface is correctly added to the LAN bridge. DHCP should be disabled on dumb AP. Without config output these are all just valid assumptions.

i did purposefully not disclose in the first place that i was running openWRT with hyper-v, since everything was mostly working and me thinking it's an openWRT issue, not really a platform issue. main router was seeing openWRT and it's mac address perfectly fine. took these outputs with SSH from my host PC too.
i'll take this opportunity to say that openWRT is only connected by an external switch that shares my ethernet port with openWRT and the host PC. i don't see it as a problem since again, main router is seeing openWRT with it's dedicated MAC address (15:00:00:00:01) that i set to be as far as possible from host PC's MAC address.

root@OpenWrt:~# ubus call system board
{
        "kernel": "6.6.73",
        "hostname": "OpenWrt",
        "system": "AMD Ryzen 5 3600 6-Core Processor",
        "model": "Microsoft Corporation Virtual Machine",
        "board_name": "microsoft-corporation-virtual-machine",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0",
                "revision": "r28427-6df0e3d02a",
                "target": "x86/64",
                "description": "OpenWrt 24.10.0 r28427-6df0e3d02a",
                "builddate": "1738624177"
        }
}

config files coming up next, i have touched these settings minimally. openWRT was a clean install set up through LUCI with me deleting and remaking the LAN interface with DHCP client protocol and renaming it to "wlan" in the process.

firewall was set to lan (the green one) and i set up a DHCP server only to check ignore interface.


i have also installed the following packages to get the WAP running; mediatek-mt7925-firmware and hostapd-openssl, opkg handled all dependencies. i have done no system upgrades.

wireless config

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

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:00/296cefdc-8b2e-474f-8159-884291c3c7e5/pci8b2e:00/8b2e:00:00.0'
        option band '5g'
        option channel 'auto'
        option htmode 'EHT80'
        option txpower '20'
        option country 'PH'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan wlan'
        option mode 'ap'
        option ssid 'HUAWEI_P52Z'
        option encryption 'sae'
        option key 'ABC'
        option ocv '0'

interface config

root@OpenWrt:~# 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 'fdb9:33f1:f6c8::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

config interface 'wlan'
        option proto 'dhcp'
        option device 'br-lan'

dhcp config

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

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

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'

config dhcp 'wlan'
        option interface 'wlan'
        option ignore '1'

firewall config

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

config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

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

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

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

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'

the two packages here were not installed, it was not mentioned in the wiki guide that i should have installed these packages. i will have it installed if it's required.

root@OpenWrt:~# opkg list-installed bridger
root@OpenWrt:~# opkg list-installed relayd
root@OpenWrt:~#

Just one network, 2 dont work for sure. Luci is misleading.

i'm not really using dedicated AP hardware, just uploaded my setup with my reply to brada4. i think being on x86-64 i shouldn't really run to resource limits that'll cause me to drop packets and such. still then my only goal is to get my PC's wifi pcie card to act as a wireless access point in my room with full access to my local network for file sharing and media streaming.

my interface setup only involves a LAN interface. openWRT only has one ethernet port and it's sharing it with the host PC. i don't think this setup is causing any troubles as the main router is seeing openWRT and it's discrete mac address just fine. wireless AP along with eth0 is showing up in my lan interface which is using br-lan. ignore interface is enabled in DHCP server settings. a lot of these is already on my reply to brada4 but i'm willing to repeat myself as long as i can get help to get this thing running :]

isn't "lan" in "lan wlan" the type of interface it is? regardless, i have edited it using uci set wireless.default_radio0.network='wlan', saved using uci commit wireless and rebooted openWRT, still nothing. still not getting ipv4 address on my phone.
by the way, HUAWEI_P52Z is not the same SSID as my other routers. they are broadcasting as HUAWEI-P52Z, dash vs underscore. just making sure it's clear.

Running an ap via a vm is usually difficult to achieve and relatively poor performing as a result of the wifi system being suboptimal for numerous reasons.

Is there a reason you are using a vm and not bare metal? And is the a reason you’re using a x86 box instead of a proper AP?

You also have to dhcp ignore interface wlan, otherwise it competes with main AP's dhcp server.

i'm using a VM since i want to be able to use my host PC simultaneously with openWRT running. right now the issue is the upstream DHCP not working for client devices, i haven't had hardware related issues yet. i have my pcie wifi card (TP-Link TBE400E) passthrough'd with DDA, only the wifi function as the bluetooth is separate and it's not giving any issues. in terms of bare metal it should be pretty close. i've went this solution since 1. my PC gets bluetooth from the adapter 2. wifi 7 routers are expensive.
again, i don't care about performance, i just want this to work for now.

it is checked. from LUCI interface (refer to screenshots) and /etc/config/dhcp

config dhcp 'wlan'
        option interface 'wlan'
        option ignore '1'

unless you want me to add option ignore '1' to

config interface 'wlan'
        option proto 'dhcp'
        option device 'br-lan'

whyd you use multicast address as local?

It is so much "creativity" id suggest resetting and following the guide anew.

Does openwrt have an address on the network?

ifstatus wlan | grep address

my mistake, it was supposed to be 00:15:00:00:00:01. it is in the screenshots i posted. it shouldn't be any special MAC address, if anything, it came from a guide i followed when i installed openWRT for the first time. now, i use my own setup with only one external virtual adapter.
should i change the mac address to a random generated one?

yes i do! served directly from a static IP set on the router since the interface is in DHCP client mode.

openWRT from main router's dashboard

root@OpenWrt:~# ifstatus wlan | grep address
        "ipv4-address": [
                        "address": "192.168.18.100",
        "ipv6-address": [
                "ipv4-address": [
                "ipv6-address": [

Since openwrt has an address and there should be no issue with the openwrt config itself (assuming you fixed the network association with the ssid and the MAC address), it likely indicates a non-openwrt issue. Typically, the issue is the host os and vm environment configuration with respect to how the wifi card is handled.

network association with the ssid and mac address?? of whose? are you talking about openWRT's AP BSSID MAC addr???? or the MAC address i have set for openWRT? i didn't quite catch this one

but okay, since i haven't given it a shot i'll try running it in bare metal to confirm it is a platform issue. i'll flash my current install into a usb and booting on it. will update asap.

Don’t forget to install the relevant driver packages for your Ethernet and WiFi cards.

i have run a fresh install of openWRT natively from a USB and it just worked right away. with minimal setup of setting protocol to DHCP client and checking ignore interface (disabling DHCP) on the interface and setting up the WAP, no drama. i even replicated what i did on my VM and it just doesn't work under that environment. in the end, it actually was a platform issue, though i don't get why.
i might try to show openWRT my whole ethernet port with the same method (DDA) i used for the wifi card and see what i can do from there.
the whole thing has just become so bizzare to me when it worked when ran natively but not in a VM configured to be as close to native as possible.

update: i tried what i said in my previous post which is DDA’ing (hardware passthru) my ethernet port and it worked! apparently this entire time it was the hyper-v network adapter causing issues.
now with this method my pc does not have internet for now until i get another ethernet port for my PC, easily solved with a USB ethernet adapter.
i have attempted to get my pc internet by giving it a internal virtual switch in hyper-V. while openWRT sees it, it does not reach my DHCP server like before, so i guess hyper-v adapters don’t handle forwarding very well.
big thanks to everyone that replied, i finally got this setup working now. while getting hyper-v adapters to work would have been nice for a simpler setup (if anyone knows reach out to me!), i don’t mind having a more sophisticated one to get things working properly.