Asuswrt-Merlin Firmware
Introduction
Out of the box, modern routers feature great user interfaces and many of the advanced tools and configurations available from open source alternatives, such as OpenWrt or Tomato. ASUS routers in particular offer a great management interface in the stock firmware. The modified Merlin firmware is based off of the stock ASUS firmware but adds a few key components geared towards power users.
Installation
Installation is straight forward depending on the firmware that is already installed on the supported device. Since the project is a modification of the stock firmware, it allows easy switching between stock and Merlin firmware with no settings changes needed. Simply upload the compiled firmware image through the Administration page in the Firmware Upgrade tab. After a few minutes, the router will restart and will be running the new software. Be sure to check out the installation page before flashing a router. One caveat is that making large version changes can cause issues in which resetting the router settings through the web interface after installation is necessary.
See the official downloads page for pre-compiled firmware images.
Features
Once Merlin is installed, there are several different pages available through the familiar web interface. Be sure to check out the Administration page and System tab to enable SSH access to the router.
IP-Based Traffic Monitoring
The stock ASUS firmware comes with simple traffic tools which gives access to global data transmission aggregates up to the last month. The Merlin firmware takes it a step further allowing the router to track bandwidth usage for individual IP addresses. For this functionality, it is recommended that a USB drive be connected to the router to store the database files.
The USB drive can be formatted and configured by connecting to the router through SSH. Unmount the drive, partition and format the drive, and make sure the label each partition with the following commands:
$ fdisk -l # Find the USB device.
$ mount # Find where the partitions are mounted to.
$ unmount /tmp/mnt/sda1 # USB drives are automatically mounted to /tmp/mnt/
$ fdisk /dev/sda # Partition the USB drive if necessary.
$ mkfs.ext3 /dev/sda1 # Format the partition(s) using ext3.
$ tune2fs -L data /dev/sda1 # Label the partitions using the -L command. The partition will now be automatically mounted to /tmp/mnt/data/.
See this blog post for more information around partitioning a USB device.
SNMP
The Simple Network Management Protocol (SNMP) is a standardized protocol for capturing statistics about a networked system. SNMP can be enabled by navigating to the Administration page and the SNMP tab. After enabling the protocol, the router can be queried to retrieve information about the routers current state.
$ snmpwalk -Os -c public -v2c 192.168.1.1 | less
$ snmpwalk -Os -c public -v2c 192.168.1.1 sysDescr.0
More Information
http://www.snbforums.com/threads/user-nvram-save-restore-utility-r24.19521/
https://github.com/RMerl/asuswrt-merlin/wiki/Sending-Email
https://github.com/RMerl/asuswrt-merlin/wiki/Custom-domains-with-dnsmasq
https://github.com/RMerl/asuswrt-merlin/wiki/Secure-DNS-queries-using-DNSCrypt
https://github.com/RMerl/asuswrt-merlin/wiki/Configuring-OpenVPN