Relayd messes up routing

Here are my simple setup:

Main Router ⇄ Access Point ⇄ Neighbor Access Point

My Access Point is configured as a wireless station on Neighbor Access Point. The purpose is to relay that network back to the Main Router, so I can have a backup Internet connection directly attached to it. I do not want my Access Point to be a router because it is weak. Here are its configurations:


config interface 'lan'
	option ifname 'eth0.2649' # the Main Router has access to this VLAN to be present on Neighbor network
	option proto 'static'
	option ipaddr ''
	option netmask ''
	option ip6assign '60'

config interface 'wl0_sta'
	option proto 'static'
	option ipaddr ''
	option netmask ''
	option gateway ''
	list dns ''
	list dns ''
	option ip6assign '60'
	option metric '200'

config interface 'wl0_relay'
	option proto 'relay'
	list network 'wl0_sta'
	list network 'lan'
	option ipaddr ''

config interface 'management'
	option ifname 'eth0.2651'
	option proto 'static'
	option ipaddr ''
	option netmask ''
	option gateway ''
	list dns ''
	list dns ''
	list dns ''
	option metric '100'


config wifi-iface 'radio0_sta'
	option ifname 'wl0-sta'
	option device 'radio0'
	option network 'wl0_sta'
	option mode 'sta'
	option wds '0'
	option ssid '<neighbor_ssid>
	option encryption 'psk2'
	option key '<neighbor_key>'
	option ieee80211k '1'
	option ieee80211r '1'
	option ieee80211w '1'
	option disabled '0'

The issue I have is weird: once the sta interface connects to Neighbor Access Point successfully, I am not able to access it via management interface anymore. Then I had no choice but to access it via After ssh into it, its routing table looked normal:

root@accesspoint:~# ip route show
default via dev eth0.2651 proto static metric 100
default via dev wl0-sta proto static metric 200 dev eth0.2651 proto static scope link metric 100 dev wl0-sta proto static scope link metric 200 dev eth0.2649 proto kernel scope link src

But when I tried to traceroute back to my Main Router, it was strange:

root@accesspoint:~# traceroute
traceroute to (, 30 hops max, 38 byte packets
 1 (  6.497 ms  2.067 ms  2.064 ms
 2 (  9.737 ms  6.618 ms  8.697 ms
 3 (  9.452 ms (  6.505 ms (  6.605 ms
 4  localhost (  8.362 ms  localhost (  9.336 ms  8.422 ms
 5 (  6.534 ms  6.910 ms  9.157 ms
 6 (  7.597 ms  6.963 ms  7.013 ms
 7  *  *  *
 8  localhost (  36.628 ms  localhost (  25.635 ms  localhost (  27.523 ms
 9  localhost (  57.733 ms  49.733 ms  60.083 ms
10  localhost (  53.181 ms  45.433 ms  56.583 ms

It ignored the network being directly attached. It also ignored the default route via my Main Router with lower metric. It just sent everything via the Neighbor Access Point at Then a lot of strange routing hops came out of nowhere. Can someone explain what is going on? And how can I access my Access Point internally on my network instead of via my neighbor network?

In my relay setup - the relay network is separate/different from LAN - it also has no IP. Hope this helps.

config interface 'sample_lan'
        option proto 'none'
        option device 'eth0.3'