RADIUSdesk

logo

wan_network file

Background

  • When central management for the device is enabled, the device will try to reach the controller using various means.
  • OpenWrt uses config files located under the /etc/config directory to configure the device accordingly.
  • The network file is used to define the network configuration of the device.
  • Since we can include the MESHdesk package on basically any device that can run OpenWrt we need to adopt the means to reach the controller so it will work on the specific device.
  • Some devices for instance might only have one ethernet port.
  • Others might have more Ethernet ports where a certain amount is grouped together and used as the LAN side and typically a single one assigned to the WAN port.
  • For this we create the /etc/MESHdesk/configs/wan_network file.
  • This file needs to be unique to the specific device on which the MESHdesk package is included on.
  • This file will be used during startup to replace the /etc/config/network file in order to enable the device to reach the controller.
  • This config will also be changed after the device receives its final configuration from the controller (or fallback to last known good configuration if the controller can't be reached)
  • The unique part of the wan_network file involves the Ethernet port configuration. Devices can be grouped into three types.
    1. Devices with standard eth0 and/or eth1 ports. (This is typically Atheros based hardware)
    2. Devices with a single eth0 port combined with swconfig to create VLANs to split the physical ports on the device up. (This is typically older Mediatek based hardware)
    3. New DSA style config using names like wan, lan1, lan2 lan3 etc for the ports. (This is typically newer Mediatek devices)

Next we will unpack samples of each of these types.

  • When looking at these sample files keep in mind that our aim is to use the device section called br-lan as a bridge.
  • Traditionally the LAN ports will be part of it.
  • We however configure it now in such a way that the WAN port becomes part of it instead of the LAN ports.

Devices with standard eth0 and or eth1 ports

  • These include most Atheros as well as IPQ based devices.
  • Lets look at the GL iNet AR300M's wan_network file.
wan_network
config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
 
config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth1'
 
config interface 'lan'
    option device 'br-lan'
    option proto 'dhcp'
 
config interface 'client_0'
    option proto 'dhcp'
 
config interface 'client_1'
    option proto 'dhcp'
 
  • We swapped eth0 and eth1 as ports of br-lan. Plain and simple.
  • There is no wan interface defined.
  • Devices with a single port will not need any swapping since there are only one port available.
  • Here's a snippet from the original /etc/config/network file you can compare with.
network
....
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
 
config interface 'wan'
	option device 'eth1'
	option proto 'dhcp'
....

Devices which uses swconfig

  • This is typically older Mediatek based devices (MT7620 / 7628 etc)
  • Lets look and the files from a Xiaomi 4A 110M
  • Refer to the default /etc/config/network file.
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 'auto'
 
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
 
config device
	option name 'eth0.2'
	option macaddr '9c:9d:7e:f6:22:1c'
 
config interface 'wan'
	option device 'eth0.2'
	option proto 'dhcp'
 
config interface 'wan6'
	option device 'eth0.2'
	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 '4 2 6t'
 
config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0 6t'
  • Next look at the /etc/MESHdesk/configs/wan_network file that is derived from it.
wan_network
config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
 
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'dhcp'
 
config interface 'client_0'
    option proto 'dhcp'
 
config interface 'client_1'
    option proto 'dhcp'
 
config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'
 
config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '0 6t'
 
config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '4 2 6t'
  • We took the switch config sections from /etc/config/network and simply swapped vlan nr 1 and vlan nr 2 around.
  • This means that eth0.1 is now on the WAN port.
  • client_0 and client_1 interface sections can always be kept as is.
  • Device br-lan section is in actuality now the WAN port. (This is so that we can support hardware with a single Ethernet port and to do complex bridge configurations should we need to)

DSA enabled devices

  • These include newer Mediatek based devices like those using the MT7621 chipset.
  • This time the Xiaomi 4A Gigabit Edition. This board does not have any switch sections and is much simpler.
wan_network
config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
 
config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'wan'
 
config interface 'lan'
    option device 'br-lan'
    option proto 'dhcp'
 
config interface 'client_0'
    option proto 'dhcp'
 
config interface 'client_1'
    option proto 'dhcp'
 
  • Here you can see there is no switch sections and we added the wan port to br-lan (While removing the various lan ports). Plain and simple.
  • Here's a snippet from the original /etc/config/network file you can compare with.
network
....
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'
	list ports 'lan4'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'
 
config interface 'wan'
	option device 'wan'
	option proto 'dhcp'
....
  • This brings us to the end of the detailed discussion of the /etc/MESHdesk/configs/wan_network file.
  • Be sure that this file is tweaked so it will work on your hardware.

Some Hardware Info

Xiaomi 4C

  • wan_network
wan_network
config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'
 
config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth0.1'
 
config interface 'lan'
    option device 'br-lan'
    option proto 'dhcp'
 
config interface 'client_0'
    option proto 'dhcp'
 
config interface 'client_1'
    option proto 'dhcp'
 
config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'
 
config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '4 2 6t'
 
config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '1 6t'
  • hardware section
meshdesk
config hardware 'xiaomi_4c'
	option morse_led '/sys/class/leds/blue:power/brightness'
	option internet_led '/sys/class/leds/yellow:power/brightness'
	option wifi_led 'led0'

Xiaomi 4A 100M

  • wan_network
wan_network
config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
 
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'dhcp'
 
config interface 'client_0'
    option proto 'dhcp'
 
config interface 'client_1'
    option proto 'dhcp'
 
config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'
 
config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '0 6t'
 
config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '4 2 6t'
  • hardware section
meshdesk
config hardware 'xiaomi_4a_100'
	option morse_led '/sys/class/leds/blue:power/brightness'
	option internet_led '/sys/class/leds/yellow:power/brightness'
	option wifi_led 'led0'
  • wan_network
wan_network
config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
 
config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'wan'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'dhcp'
 
config interface 'client_0'
    	option proto 'dhcp'
 
config interface 'client_1'
    	option proto 'dhcp'
  • hardware section
meshdesk
config hardware 't_x5000r'
	option morse_led '/sys/class/leds/blue:sys/brightness'
	option internet_led '/dev/null'
	option wifi_led 'dev:null'