Bug: Repeater mode enables ap_isolate, blocking WiFi client-to-client communication — GL-MT1300 firmware 4.3.25


#Bug: Repeater mode enables ap_isolate, blocking WiFi client-to-client
communication — GL-MT1300 firmware 4.3.25

##Problem

When using the Beryl MT1300 in repeater mode, devices connected to the
router's WiFi cannot communicate with each other. They can reach the router
itself (192.168.8.1) but cannot connect to services running on other devices
on the same network. Disabling repeater mode restores client-to-client
connectivity.

The root cause is that GL-iNet's oui-httpd binary forces ap_isolate=1 in the
hostapd configuration (/tmp/run/hostapd-phy0.conf and
/tmp/run/hostapd-phy1.conf) whenever repeater mode is active. This overrides
the UCI wireless setting (isolate='0'), which is correctly set to 0. The LuCI
"Client Isolation" checkbox appears off, giving no indication that isolation
is actually active.

This affects any use case where devices on the travel router need to talk to
each other — local servers, IoT devices, peer-to-peer services etc.


##Workaround

Two scripts are needed: one to fix the issue at boot, and one to fix it
whenever the repeater connection is toggled.

Create /etc/init.d/fix-ap-isolate (fixes on boot):

#!/bin/sh /etc/rc.common
START=100

start() {
sed -i 's/ap_isolate=1/ap_isolate=0/g' 
/tmp/run/hostapd-phy0.conf 
/tmp/run/hostapd-phy1.conf 2>/dev/null
ubus call hostapd.wlan0 reload
ubus call hostapd.wlan1 reload
}

Then enable it:

chmod +x /etc/init.d/fix-ap-isolate
/etc/init.d/fix-ap-isolate enable

Create /etc/hotplug.d/iface/99-zzz-fix-ap-isolate (fixes on repeater
toggle):

#!/bin/sh
[ "$ACTION" = "ifup" ] || exit 0
[ "$INTERFACE" = "wwan" ] || exit 0

sleep 3
sed -i 's/ap_isolate=1/ap_isolate=0/g' 
/tmp/run/hostapd-phy0.conf 
/tmp/run/hostapd-phy1.conf 2>/dev/null
ubus call hostapd.wlan0 reload
ubus call hostapd.wlan1 reload

Then make it executable:

chmod +x /etc/hotplug.d/iface/99-zzz-fix-ap-isolate

The hotplug script triggers when the upstream repeater connection (wwan
interface) comes up, waits 3 seconds for oui-httpd to finish applying its
configuration, then patches the conf files and reloads hostapd via ubus. Note
there will be a short delay after cold boot before client-to-client
connectivity is available, as the fix only runs once the repeater has
connected to the upstream network.

Note: wifi reload cannot be used as the reload mechanism as it triggers
oui-httpd to re-apply ap_isolate=1. The correct mechanism is ubus call
hostapd.wlan0 reload / ubus call hostapd.wlan1 reload.

This should be fixed in firmware so that oui-httpd does not override the UCI
isolate setting in repeater mode.

Hi

We tested locally using MT1300 v4.3.25, but we were unable to reproduce the issue.

Although ap_isolate=1 appears in the hostapd configuration file, the actual isolation behavior still follows the settings defined in UCI.

Main Wi-Fi:

Guest Wi-Fi: