====== Implementing a high speed mesh using TP-Link N600 TL-WRD3500 dual radio nodes ====== * This Wiki page will take a hands on approach showing the steps I've taken to get to a high speed mesh using standard off the shelve hardware. * We assume the following: * The latest SVN of RADIUSdesk and MESHdesk running on a server somewhere in the cloud. * A Windows machine running the latest version of the **MESHdesk node config utility**. * Internet connectivity through a DSL modem. * 5x TP-Link N600 TL-WRD3500 dual radio nodes. * The latest MESHdesk firmware image for the TP-Link N600 TL-WRD3500. ----------------------- ====== Overview of the steps involved ====== * Define a new mesh network on the VPS running MESHdesk. * Flash the MESHdesk firmware onto the TP-Link N600 TL-WRD3500 nodes. * Use the **MESHdesk node config utility** to point the nodes to the VPS server running MESHdesk and also add the nodes to the mesh defined in MESHdesk. * Turn all the nodes on and confirm all the nodes are up. * Do some speed testing through the mesh. ------- ====== Define a new mesh network in MESHdesk ====== ===== Entry Points ===== * For this mesh network we'll turn the clock back more than 20 years (my age are showing m( ) and use the movie **Reservoir Dogs** as a 'theme'. * We crate a mesh with the name **Reservoir Dogs**. * Then we create the following entry points (SSIDs): * Mr Blonde * Mr Blue * Mr Brown * Mr Orange * Mr Pink * Mr White * With our experiment we will keep them open. It is always interesting to see how many leaches one can attract. * One important point to keep in mind is that the entry points is **NOT** applied to all nodes. * The reason for this is that we want to selectively attach an entry point to a mesh node. This will help to connect to a specific node during our speed testing. {{ :user_guide:md:res_dog_entry.png |}} ===== Mesh settings ===== * You can leave all the defaults here and just also select **Bridge Loop Avoidance** to be on the safe side. {{ :user_guide:md:res_dog_mesh.png |}} ===== Exit points ===== * Create an Ethernet bridge and connect all the Entry points to it. {{ :user_guide:md:res_dog_exit.png |}} ===== Node settings ===== * We use all the defaults. * We do however also specify that the Ethernet ports on the Non-gateway nodes be bridged to the LAN. {{ :user_guide:md:res_dog_node_set.png |}} ===== Nodes ===== * Here we will add the nodes as we discover their MAC Addresses through the **MESHdesk nod config utility**. (This is covered later in the docuent) * Take note that we attach one of the entry points to each node. {{ :user_guide:md:res_dog_node1_common.png |}} * Also note how we configure each of the radios respectively on each node. * When we deselect the **Mesh** option we also have a choice to specify which channel the entry point should run on. * This will give us opportunity to select non overlapping channels (1,6,11). {{ :user_guide:md:res_dog_node1_radio1.png |}} {{ :user_guide:md:res_dog_node1_radio2.png |}} Next we will flash the MESHdesk firmware on the TP-Link N600 TL-WRD3500 nodes. ------- ====== Flash the MESHdesk firmware onto the TP-Link N600 TL-WRD3500 nodes ====== * Before you can flash the MESHdesk firmware image onto the nodes you have to get the MESHdesk firmware image LOL. * You can download the latest openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin from this URL: http://sourceforge.net/p/radiusdesk/code/HEAD/tree/trunk/meshdesk/firmware/ **factory or sysupgrade?** * Use *-factory* when you install OpenWrt for the first time on the nodes while it is still running the default firmware it came with. * Use *-sysupgrade* after you already installed OpenWrt on the node. You will then use the **sysupgrade** utility program which is included with OpenWrt running on the node to do the upgrade. **Download or SVN Checkout** * Be warned that the download function of SourceForge code does not always work well. * The checksum of this current version is **32048fbca9f1916fa91653e0bab4258f** and size **8126464**. * My first download was not complete and it can wreak havoc. * A better alternative will be using SVN command or a SVN client to check out the code. * Connect a LAN cable between your computer and one of the four **Ethernet** ports on the TL-WRD3500. * Ensure that your computer has an IP Address that can talk on the 192.168.0.x subnet (e.g. 192.168.0.200) * The TL-WRD3500 listens on 192.168.0.1. * Open a browser and go to http://192.168.0.1. * The default username / password is **admin** / **admin**. * Go to **System Tools** -> **Firmware Upgrade**. The following screen will be displayed: {{ :user_guide:md:tplink_fw_upgrade.png |}} * Select the **openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin** file which you downloaded and click the **Upgrade** button. * Confirm your action and wait for the flash process to complete. (**This means to wait out the next two screens**) {{ :user_guide:md:tplink_fw_1.png |}} {{ :user_guide:md:tplink_fw_2.png |}} * Once it is completed it will redirect to a blank page. This is because the TL-WDR3500 now runs OpenWrt and is not listening on IP 192.168.0.1 any more. * Unplug the power and LAN cable from the node and repeat this action for all the nodes. * Once you are finished with all this, it is time to point the nodes to your VPS server with the help of the **MESHdesk node config utility** (along with adding them as nodes to the **Resevoir Dogs** mesh). ----------------- ====== Use the MESHdesk node config utility to pre-configure the nodes ====== * We use the **MESHdesk node config utility** to point the mesh nodes to the VPS running the MESHdesk service. * Download and unzip the **MESHdesk_node_config_utility_[version]/zip** file on a Windows computer. * Ensure the Firewall is disabled for this session. * Configure the Ethernet port of the computer to have IP Address **192.168.255.20**. * Double click the MESHdesk_node_config_utility.exe file located under the extracted **MESHdesk_node_config_utility** folder. * Be sure to supply your VPS server's IP Address and well as selecting the correct hardware type. (Our's is 69.30.244.107) * Connect the computer to one of the four **Ethernet** ports of the TL-WRD3500. * The next step is VERY VERY important. * Make sure the **Wireless On/Off** switch is turned **OFF**. We have to actually turn the WiFi **off** to make it work! :-| * Fire up the TL-WRD3500 while watching the **MESHdesk node config utility**. * Shortly after start-up (before 2 minutes)it should have made contact with the **MESHdesk node config utility**. {{ :user_guide:md:tp_link_node_config.png |}} * After that you can turn off the power on the TL-WRD3500. * Take the MAC Address that was recorded and add it to the **Resevoir Dogs** mesh. * Once you have completed it for all the available nodes, we can start by connecting our gateway node to the LAN. * After that node is up and running we can fire up the others. * The non-gateway nodes will take some time before they get their settings. * The node first try to get its settings through: * The LAN * Radio0 (2.4G) * Radio1 (5G) * Since we run the mesh over 5G it will be the last in the row. ----- ====== Is everything up and running? ====== * See for yourself 8-) * Note that we use blue lines to indicate a mesh running to the 5G band and green lines for a mesh running on the 2.4G band. {{ :user_guide:md:res_dog_spider_web.png |}} ------ ====== How fast can it go? ====== * Time for some throughput tests. * We will connect one computer to a certain Mr and another computer to another Mr and do some iperf testing. * We have a laptop connecting to Mr Pink and another one connecting to the available nodes ^ Iperf server ^ Iperf client ^ Speed ^ | Mr Blonde | Mr Blonde | 15.6Mbits/s | | Mr Blonde | Mr Pink | 21.8Mbits/s | | Mr Blonde | Mr Orange | 18.5Mbits/s | | Mr Blonde | Mr Brown | 29.3Mbits/s | | Mr Blonde | Mr Blue | 11.7Mbits/s |