I have attempted to anonymize the router configuration as much as possible and remove elements that are not useful:
BPI->
**System Information:**
root@bpi-r4:~# ubus call system board
{
"kernel": "6.12.66",
"hostname": "bpi-r4",
"system": "ARMv8 Processor rev 0",
"model": "Banana Pi BPI-R4 (2x SFP+)",
"board_name": "bananapi,bpi-r4",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "25.12.0-rc3",
"firmware_url": "https://downloads.openwrt.org/",
"revision": "r32486-30527a4c34",
"target": "mediatek/filogic",
"description": "OpenWrt 25.12.0-rc3 r32486-30527a4c34",
"builddate": "1768954854"
}
}
**1. /etc/config/network**
root@bpi-r4:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
list ipaddr '127.0.0.1/8'
config globals 'globals'
option ula_prefix 'fd60:...'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'sfp-lan' # Downlink to Flint 2
config interface 'lan'
option device 'br-lan'
option proto 'static'
list ipaddr '192.168.200.1/24'
option ip6assign '60'
config device
option name 'br-wan'
option type 'bridge'
list ports 'wan'
list ports 'sfp-wan'
config interface 'wan'
option device 'br-wan'
option proto 'static'
option ipaddr '192.168.1.3'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
config interface 'wan6'
option device 'br-wan'
option proto 'dhcpv6'
config device
option type 'bridge'
option name 'br-guest'
option ipv6 '0'
config interface 'guest'
option proto 'static'
option device 'br-guest'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
list dns '8.8.8.8'
list dns '8.8.4.4'
**2. /etc/config/wireless**
# Note: MACs and NASIDs are anonymized but strictly preserve the logic (NASID == MAC Hex).
# BPI-R4 (Self): 10:00:00:00:00:XX
# Flint 2 (Neighbor): 20:00:00:00:00:XX
# --- RADIO 0 (2.4GHz) ---
config wifi-device 'radio0'
option type 'mac80211'
option path 'soc/11300000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
option radio '0'
option band '2g'
option channel '1'
option htmode 'HT40'
option country 'ES'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'MySSID'
option encryption 'sae-mixed'
option key '[REDACTED]'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
# 802.11r Config
option ieee80211r '1'
option nasid '100000000001'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
# Neighbor List (Self + Flint 2 Radio 0)
list r0kh '10:00:00:00:00:01,100000000001,9e1234567890abcdef1234567890abcdef'
list r0kh '20:00:00:00:00:01,200000000001,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:01,10:00:00:00:00:01,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:01,20:00:00:00:00:01,9e1234567890abcdef1234567890abcdef'
# --- RADIO 1 (5GHz) ---
config wifi-device 'radio1'
option type 'mac80211'
option path 'soc/11300000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
option radio '1'
option band '5g'
option channel '36'
option htmode 'HE160'
option country 'ES'
option cell_density '0'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'MySSID_5G'
option encryption 'sae-mixed'
option key '[REDACTED]'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
# 802.11r Config
option ieee80211r '1'
option nasid '100000000002'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
# Neighbor List (Self + Flint 2 Radio 1)
list r0kh '10:00:00:00:00:02,100000000002,9e1234567890abcdef1234567890abcdef'
list r0kh '20:00:00:00:00:02,200000000002,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:02,10:00:00:00:00:02,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:02,20:00:00:00:00:02,9e1234567890abcdef1234567890abcdef'
# --- GUEST (On Radio 1) ---
config wifi-iface 'wifinet3'
option device 'radio1'
option mode 'ap'
option ssid 'MySSID_Guest'
option encryption 'sae-mixed'
option key '[REDACTED]'
option network 'guest'
option isolate '1'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
# 802.11r Config
option ieee80211r '1'
option nasid '100000000003'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
# Neighbor List (Self + Flint 2 Guest)
list r0kh '10:00:00:00:00:03,100000000003,9e1234567890abcdef1234567890abcdef'
list r0kh '20:00:00:00:00:03,200000000003,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:03,10:00:00:00:00:03,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:03,20:00:00:00:00:03,9e1234567890abcdef1234567890abcdef'
# --- RADIO 2 (6GHz - No Roaming configured yet) ---
config wifi-device 'radio2'
option type 'mac80211'
option radio '2'
option band '6g'
option channel '1'
option htmode 'EHT320'
option country 'ES'
config wifi-iface 'default_radio2'
option device 'radio2'
option network 'lan'
option mode 'ap'
option ssid 'MySSID_6G'
option encryption 'sae'
option key '[REDACTED]'
**3. /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 authoritative '1'
option readethers '1'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option ra 'server'
option ra_default '1'
option dhcpv6 'server'
list dhcp_option '6,192.168.200.1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config dhcp 'guest'
option interface 'guest'
option start '100'
option limit '150'
option leasetime '12h'
**4. /etc/config/firewall**
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'lan'
config zone
option name 'wan'
option input 'REJECT'
option output 'ACCEPT'
option forward 'DROP'
option masq '1'
option mtu_fix '1'
list network 'wan'
list network 'wan6'
config forwarding
option src 'lan'
option dest 'wan'
# Standard Rules
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'
# Guest Zone & Rules
config zone
option name 'guest_fw'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
list network 'guest'
config forwarding
option src 'guest_fw'
option dest 'wan'
config rule
option src 'guest_fw'
option name 'guest-rule'
option dest_port '67 68 53'
option target 'ACCEPT'
# Usteer & DAWN
config rule
option name 'Allow-DAWN'
option src 'lan'
option dest_port '1025 1026'
option proto 'udp tcp'
option target 'ACCEPT'
config rule
option name 'Allow-Usteer'
option src 'lan'
option proto 'udp'
option dest_port '6113'
option target 'ACCEPT'
type or paste code here
FLINT2->
### Node B: Flint 2 (Access Point / Mesh Node) Configuration
**System Information:**
root@Flint2:~# ubus call system board
{
"kernel": "6.12.66",
"hostname": "Flint2",
"system": "ARMv8 Processor rev 4",
"model": "GL.iNet GL-MT6000",
"board_name": "glinet,gl-mt6000",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "25.12.0-rc3",
"firmware_url": "https://downloads.openwrt.org/",
"revision": "r32486-30527a4c34",
"target": "mediatek/filogic",
"description": "OpenWrt 25.12.0-rc3 r32486-30527a4c34",
"builddate": "1768954854"
}
}
**1. /etc/config/network**
config interface 'loopback'
option device 'lo'
option proto 'static'
list ipaddr '127.0.0.1/8'
config globals 'globals'
option ula_prefix 'fdfa:...'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
config interface 'lan'
option device 'br-lan'
option proto 'static'
list ipaddr '192.168.200.2/24'
option ip6assign '60'
option gateway '192.168.200.1'
list dns '192.168.200.1'
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
config interface 'wan6'
option device 'eth1'
option proto 'dhcpv6'
config device
option type 'bridge'
option name 'br-guest'
option ipv6 '0'
config interface 'guest'
option proto 'static'
option device 'br-guest'
option ipaddr '192.168.2.2'
option netmask '255.255.255.0'
**2. /etc/config/wireless**
# Note: Flint 2 (Self): 20:00:00:00:00:XX | BPI-R4 (Neighbor): 10:00:00:00:00:XX
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/18000000.wifi'
option band '2g'
option channel '6'
option htmode 'HE40'
option country 'ES'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'MySSID'
option encryption 'sae-mixed'
option key '[REDACTED]'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
option ieee80211r '1'
option nasid '200000000001'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
list r0kh '20:00:00:00:00:01,200000000001,9e1234567890abcdef1234567890abcdef'
list r0kh '10:00:00:00:00:01,100000000001,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:01,20:00:00:00:00:01,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:01,10:00:00:00:00:01,9e1234567890abcdef1234567890abcdef'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/18000000.wifi+1'
option band '5g'
option channel '44'
option htmode 'HE160'
option country 'ES'
option cell_density '0'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'MySSID_5G'
option encryption 'sae-mixed'
option key '[REDACTED]'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
option ieee80211r '1'
option nasid '200000000002'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
list r0kh '20:00:00:00:00:02,200000000002,9e1234567890abcdef1234567890abcdef'
list r0kh '10:00:00:00:00:02,100000000002,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:02,20:00:00:00:00:02,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:02,10:00:00:00:00:02,9e1234567890abcdef1234567890abcdef'
config wifi-iface 'wifinet2'
option device 'radio1'
option mode 'ap'
option ssid 'MySSID_Guest'
option encryption 'sae-mixed'
option key '[REDACTED]'
option network 'lan'
option isolate '1'
option ieee80211k '1'
option wnm_sleep_mode '1'
option wnm_sleep_mode_no_keys '1'
option bss_transition '1'
option proxy_arp '1'
option ieee80211r '1'
option nasid '200000000003'
option mobility_domain '1234'
option pmk_r1_push '1'
option ft_over_ds '1'
list r0kh '20:00:00:00:00:03,200000000003,9e1234567890abcdef1234567890abcdef'
list r0kh '10:00:00:00:00:03,100000000003,9e1234567890abcdef1234567890abcdef'
list r1kh '20:00:00:00:00:03,20:00:00:00:00:03,9e1234567890abcdef1234567890abcdef'
list r1kh '10:00:00:00:00:03,10:00:00:00:00:03,9e1234567890abcdef1234567890abcdef'
**3. /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 authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
config dhcp 'lan'
option interface 'lan'
option ignore '1'
**4. /etc/config/firewall**
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'DROP'
option masq '1'
option mtu_fix '1'
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-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 zone
option name 'guest_fw'
list network 'guest'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
config forwarding
option src 'guest_fw'
option dest 'wan'
config rule
option name 'Allow-DAWN'
option src 'lan'
option dest_port '1025 1026'
option proto 'udp tcp'
option target 'ACCEPT'
config rule
option name 'Allow-Usteer'
option src 'lan'
option proto 'udp'
option dest_port '6113'
option target 'ACCEPT'