====== 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. - Devices with standard eth0 and/or eth1 ports. //(This is typically Atheros based hardware)// - 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)// - 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. 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. .... 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. 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. 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. 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. .... 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 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 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 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 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' ===== Totolink X500R (WiFi6) ===== * 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 config hardware 't_x5000r' option morse_led '/sys/class/leds/blue:sys/brightness' option internet_led '/dev/null' option wifi_led 'dev:null'