Turn TL-MR3420 into WiFi Repeater using OpenWRT
3 min read
I have been using my TL-MR3420 (Version 2.2) router as a repeater for a month. The access point in my house is an Apple Airport which delivers pretty good signal even when there exists several obstacles (walls, doors) between the Airport and my WLAN card. But I badly needed a repeater for syncing files from/to my wireless devices. So I turned my old router into a WiFi repeater.
First, let's disable the firewall and DNS masquerading because we will be using a Bridged Repeater which will act exactly like the Airport I have been using as access point. First, install
relayd which will get most of the job done for us.
/etc/init.d/firewall stop /etc/init.d/firewall disable /etc/init.d/dnsmasq stop /etc/init.d/dnsmasq disable opkg update # in case the feeds are outdated opkg install relayd
/etc/config/wireless as the following.
# nano /etc/config/wireless config wifi-device 'radio0' option type 'mac80211' option channel '11' # Same as source option hwmode '802.11n' # Use bgn if needed option path 'platform/ar934x_wmac' option htmode 'HT40-' # 300MB/s option txpower '30' option country 'BD' option noscan '1' config wifi-iface option device 'radio0' option network 'wwan' option encryption 'psk2' option key '12345678' option mode 'sta' option ssid 'source_ssid' config wifi-iface option device 'radio0' option network 'lan' option encryption 'psk2' option key '87654321' option mode 'ap' option ssid 'repeater_ssid'
Now let's change
/etc/config/network also. You have to be very careful in this step. Otherwise the repeater may not work, or even if it works, you may not get internet connectivity through it.
# nano /etc/config/network config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'lan' option ifname 'eth0' option force_link '1' option type 'bridge' option proto 'static' option ip6assign '60' option ipaddr '192.168.10.1' # for relayd option gateway '10.0.1.1' # gateway of source option netmask '255.255.255.0' option dns '10.0.1.1' # dns of source config interface 'wwan' option proto 'static' option ipaddr '10.0.1.254' # any ip from source option netmask '255.255.255.0' option gateway '10.0.1.1' config interface 'stabridge' option proto 'relay' option network 'lan wwan' option ipaddr '10.0.1.254' config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0 1 2 3 4'
Note that I have used
10.0.1.254 which will be the repeater's IP address. This is very important to set this IP correctly. Do not set IP address like
10.0.1.1 which is the gateway of the access point (!) or any other IP which is already reserved in the Airport (or any source WiFi access point). You can later
telnet using the IP address of the
/etc/config/dhcp according to the following.
# nano /etc/config/dhcp config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option ignore '1' config dhcp 'wan' option interface 'wan' option ignore '1'
Now we are almost done. Now just enable
relayd and reboot the router.
/etc/init.d/relayd enable reboot
After 15-30s of boot, you can see the new repeater SSID in the WiFi menu of your phone/computer. Connect to it and check if the internet works.
If you fail, review the config files and keep trying. I suggest you to closely observe the config file because if you miss one single character, the WiFi may not start, or the internet connectivity might fall.