The Ubiquiti EdgeRouter X or ER-X is one of the most affordable routers/ firewalls available on the market. It is based on a MediaTek MT7621 SoC containing a 880 MHz MIPS 1004KEc dual-core CPU, an embedded 5-port Gigabit Ethernet switch, and a variety of connectivity options including RGMII, PCIe, USB, SD-XC (not all of these features are present on the ER-X.) This platform is popular on the wireless router market with offerings from most of the major players in the segment, like Netgear, ASUS, TP-Link, D-Link, Buffalo, etc.
In our new series on STH, we are going to start with some of the smaller router and firewalls then move up to higher-end devices. We are starting with this popular lower-cost option.
Ubiquiti EdgeRouter X Hardware Overview
The device measures 110 x 75 x 22 mm (4.33 x 2.95 x 0.87″), weighs 175 g (6.17 oz) and has a maximum power consumption of 5W. Power can be provided either by included DC power adapter (12VDC, 0.5A) or 24V Passive PoE. The MediaTek MT7621 SoC in this device is coupled with 256MB of DDR3 RAM and 256MB of NAND storage.
Unlike many players on the consumer market, Ubiquiti went with an all-metal, clean, minimalistic design. The front of the device has space for five (5) Gigabit Ethernet ports including one (1) PoE IN and one (1) PoE OUT.
Please note “Passive” PoE is not part of 802.3af or 802.3at standards. While ER-X will work with most of Ubiquiti PoE devices, we encourage users to read ER-X QSG to get a better idea of requirements and limitations with respect to voltage and available power budget.
At the top of the device, one can find status LEDs for power and Ethernet ports activity. These LEDs are not next to the ports themselves which makes them slightly harder to read, especially since they are at the other end of the chassis.
At the back, one can see a 12V DC Input, ground connector, and a reset button.
This is a relatively simple device so the hardware is simple accordingly. We do really like the ability to use 12V DC input or PoE In to power the device since that gives a lot of flexibility.
EdgeRouter X Management
EdgeOS is the default firmware for EdgeRouter X, which is a full-featured specialized Linux OS, with support for advanced routing protocols, as well as various services like DNS and DHCP server, Firewall, DPI, VPN and QoS. The underlining Linux distribution for EdgeOS is Debian, so users can customize EdgeOS by installing additional packages using Debian repositories. Ubiquiti provides a choice of 2 major versions:
- EdgeOS firmware release v2.x.x uses Debian 9 (Stretch)
- EdgeOS firmware release v1.x.x uses Debian 7 (Wheezy)
Note: Early releases of v2 firmware had a number of stability and performance issues. As of the date of this review according to release notes, v2 firmware still has performance degradation. According to release notes the latest v2 firmware has up to 10% lower throughput compared to v1. For that reason for this review, the EdgeRouter was updated to the latest v1 version of the firmware.
EdgeOS has a fast web-based interface offering easy access to most of the device functionality with just a few clicks of a mouse. The dashboard provides an overview of the health, system utilization, alerts, and quick access to interfaces and service configuration.
A lot of new users will appreciate a set of wizards available to assist with device and feature level configuration. By default, EdgeOS has several pre-installed wizards that will guide users through the first time setup for various common deployment scenarios. Additional wizards are available from the Ubiquiti community through a simple registration and sign up. Users can also create their own wizards to help automate common tasks.
Another option for EdgeOS configuration and management is CLI. The structure and hierarchy of configuration nodes may look familiar to many Cisco and Juniper users. The CLI interface can be accessed either through the web-based console of the web management interface, ssh (enabled by default), or telnet (disabled by default).
Finally, all configuration nodes available for CLI can also be accessed through the “Config tree” tab of the web interface, offering a somewhat hybrid approach by allowing users to browse through the entire configuration.
That is actually a really nice feature that many competitive products do not offer, especially in this price range.
EdgeRouter X Performance
The EdgeRouter X is based on the MediaTek MT7621 SoC which includes a VLAN aware five (5) port Gigabit Ethernet switch and hardware-based acceleration for some of the router features like NAT, Bridging, IPSec, GRE. So when it comes to routing performance, according to the manufacturer’s website, the EdgeRouter X is capable of delivering 1Gbps/80kpps for 1518 bytes packets and 957Mbps/1400kpps for 64 bytes packets.
These are great numbers, but it is worth mentioning that such performance can be reached only for a particular system configuration. For example Firewall, QoS, Netflow, DHCP snooping, and Interface bonding should be disabled in order to achieve such high numbers. In addition, there are certain limitations on a number of flows you can have.
Test Bench Setup
Our testing bench is based on a Cisco T-Rex project which in turn is based on the DPDK framework which we are going to cover in future articles and consists of:
|Host||Dell Precision 7920|
|CPU||(2) x Gold 6134 CPUs 16 cores/32 threads x 3.19 GHz|
|RAM||128GB: 8*16GB DDR4-2133P|
|Host OS||VMware ESXi 6.7U3|
|Guest||Debian 10. 4 vCPUs 32GB RAM|
|Network||Intel I350-AM4 in PCI Passthrough mode|
We will likely update this system as we get to higher-performing machines, but this is overkill for this class of device. This is a new system and a different configuration, but you can read our Dell Precision T7920 Dual Intel Xeon Workstation Review for more on the platform itself.
Non Drop Rate test (NDR)
NDR is a traditional benchmark used to find the maximum frame rate and throughput of a device under test (DUT) without packet loss exceeding a predefined threshold. For routers targeting the consumer market, we set a threshold to 1%. Results depend on DUT configuration and traffic profile. Below we are going to share a subset of results for 2 corner cases. We execute the first set of benchmarks using a simple profile with a single UDP flow either unidirectional (one port is sending traffic another is received) or bi-directional (both ports are sending and receiving traffic) cases. The size of the packets is set to either 64 or 1500 or IMIX (a mixture of packets 64, 590 and 1514 bytes packets.)
As one can see from our results above, for a simple use case results are aligned with the number provided by Ubiquiti. While we did not see it in publicly available documentation that we can refer to, based on materials from other device manufactures, it appears that the hardware switch has a 2k addresses built-in table shared for L2 MAC and L3 IP lookups. The nearly idle CPU load in our test is a good indication that CPU is not used for packet processing when we have only 1 flow. To see how far the numbers may change under more demanding load, we run an NDR 1% workload using 64 bytes packets with a new server/client pair generated for each packet. In this case, we can see that a workload is CPU bound and routing performance drops from 1420kpps to 58kpps
Use Case Driven Benchmarks
While synthetic benchmarks are good to give a high-level overview of device potential, it does not make it easier to evaluate the performance of the device for a particular use case or compare performance across devices due to different boundary conditions. As we demonstrated above such boundary conditions may result in more than an order of magnitude difference for final numbers.
T-Rex gives us the freedom to define any workflow we like, or even create one based on real traffic captured from a production system. In order to see how the ER-X will perform in a more realistic scenario, we will use the SFR profile. This profile includes a combination of traffic templates such are:
- http_get / http_post / https
- mail-related traffic flows
- and etc.
Below we can find a graphical representation of SFR profile:
The profile is normalized to 1GbE with a 10-millisecond delay between client and server. During test execution, a new client/server pair is generated for each flow. For a range of bandwidth, we capture different metrics, such as maximum, and average latency distribution, packet drop rate. Below you can find a snapshot of test results showing packet drop rate at a given throughput for the SFR profile.
For the SFR profile, ER-X reaches 100% of CPU utilization at ~470Mbps, pushing more traffic leads to higher packet drop rate.
Ubiquiti ER-X Power Consumption
We saw an average power consumption for the device is just under ~3w. During test execution, the average did not exceed the fluctuation we saw when the device was idle.
For $59, the Ubiquiti ER-X is an incredible device. It provides a lot of flexibility by allowing users to choose between smart L2 switch, bridge, router on a per-port basis, with reasonable performance for typical home or small office deployment. In addition, it offers a wide range of advanced features like QoS, DPI, VPN, Firewall, and support for advanced routing protocols. These features come at a cost of performance.
We think the ER-X could be a great device for home users looking to migrate from a basic/ flat network to a more complex segmented setup with WAN connection up to 300-400Mbps. It could also be great for a network enthusiast who is looking to get their hand on a more advanced network technology with the understanding that effective maximum WAN bandwidth may drop below 100Mbps, depending on the configuration. Again, in a $1000 100W device, this performance would be unacceptable, but for a $59 and 3W device, we think this is reasonable.