{"id":1088,"date":"2026-07-17T11:07:04","date_gmt":"2026-07-17T11:07:04","guid":{"rendered":"https:\/\/james-batchelor.com\/?p=1088"},"modified":"2026-07-17T11:07:04","modified_gmt":"2026-07-17T11:07:04","slug":"unifi-ugc-ultra-migration","status":"publish","type":"post","link":"https:\/\/james-batchelor.com\/index.php\/2026\/07\/17\/unifi-ugc-ultra-migration\/","title":{"rendered":"Unifi UGC Ultra Migration"},"content":{"rendered":"\n<p>I\u2019ve been using Draytek at home for routing for the past 10 years or so, with the latest being the 2927 in use for the last few years. With the release of the newer 2928 model this year, it&#8217;s inevitable that my router will be going end-of-life pretty soon.<\/p>\n\n\n\n<p>Instead of following on to its natural successor, is there anything else out there that can handle a moderate network setup?<\/p>\n\n\n\n<p>I stumbled upon a Unifi UCG Pro, and at \u00a3104 it\u2019s at a price point that&#8217;s almost justifiable to get just to see what it can do. After checking some core features I need for my network would be achievable, I ended up getting one.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"399\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-1024x399.jpg\" alt=\"\" class=\"wp-image-1089\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-1024x399.jpg 1024w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-300x117.jpg 300w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-768x300.jpg 768w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-1536x599.jpg 1536w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01-1200x468.jpg 1200w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/usg_01.jpg 1746w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/figure>\n\n\n\n<p>The UCG Pro claims 1 Gbps IPS throughput, which fits my 900Mbps\/105Mbps connection. Let\u2019s see if it becomes a suitable replacement\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Why Switch Now?<\/h2>\n\n\n\n<p>Going down the Draytek route initially was due to a &#8220;eat your own dog food&#8221; scenario, where my previous employer deployed these in mass, so it was handy to have a router I was familiar with and a point of local reference for any capabilities or troubleshooting.<\/p>\n\n\n\n<p>At the time (circa 2018), the feature set that a Draytek offered for the price point seemed superior to the Unifi offering, which at the time, personally seemed a bit of a style of substance.<\/p>\n\n\n\n<p>Fast forward to today, and the realisation that I no longer need to touch a Draytek again, a few \u201cfeatures\u201d of DrayOS are really starting to grate on me:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IPv6 compatibility: It ignores my delegated \/48 prefix assigned by my ISP (Zen), instead configuring a single \/128 address. I can set this up manually per machine, but its seemingly impossible to assign a \/64 per VLAN and configure it with SLAAC or DHCPv6.<\/li>\n\n\n\n<li>Change something = reboot: Almost every change on the web GUI results in a reboot prompt. I\u2019ve been advised on a \u201cDCNA\u201d course that these can be clicked away from, but the ambiguity of what changes stick after a power loss is a guessing game. Couple of examples; changing authorised SNMP IP\u2019s work instantly, but if powers lost before a commanded reboot, it returns to the previous values. Also, IPv6 WAN setup will appear changed in the GUI, but will not actually take effect until reboot.<\/li>\n\n\n\n<li>Hardware acceleration: The 2927 was advertised as offering 950Mbps WAN throughput, but only if hardware acceleration is enabled. Without, the max I get is around 550Mbps. What the route decides to pass onto HW processing is very hit and miss, consecutive speed tests can return 950Mbps or 550Mbps seemingly at random.<\/li>\n\n\n\n<li>Route policy: The routing \/ load balancing options are great. However, every change regardless of its priority results in the router slamming closed every open NAT session. Extremely annoying when streaming anything with a large buffer (such as radio on a smart speaker stopping 10 seconds after making a change).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Why Unifi?<\/h2>\n\n\n\n<p>Apart from recent recommendations, I already use their access points for WiFi coverage, as they are far superior to any Draytek WiFi implementation, these AP\u2019s are managed via a cloud controller running on a local Debian VM.<\/p>\n\n\n\n<p>The GUI, despite being limited to AP\u2019s only, seems information rich and doesn&#8217;t seem to require that much upskilling to translate network setup from a Draytek to Unifi point of view.<\/p>\n\n\n\n<p>As mentioned, 10 years ago I heard (second hand) that the entry level routers seemed lacking in certain features, such as VPN options and the ability to load balance over multiple WANs. But a bit of research seemed to suggest that entry level Unifi\u2019s have now caught up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Impressions on the Unifi UGC Ultra<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Setup<\/h3>\n\n\n\n<p>On first hands on, I\u2019d like that you can access the router GUI with a local username and password, no Unifi account required. This alleviates any concerns that issues with Unifi (outage or moving to paid subscription model) will not lock you out of your own device\u2026 for now. It does nudge you heavily to adding an account (akin to old Windows 10 installations), but the GUI is reachable without. The only caveat of local only access is that remote access to the GUI is not available unless an account is added, but once an account is added, local access is still available.<\/p>\n\n\n\n<p>Once in the GUI, there is a little hand-holding wizard in getting the WAN connection up, and assumes a DHCP connection. However, PPPoE is clearly available and easy to get you up and running (without a reboot, looking at you Draytek).&nbsp;<\/p>\n\n\n\n<p>With WAN connected, it performs a speed test with the results used to set the anticipated speeds (presumably for QoS), then hopes of surviving a reboot are quashed by a substantial update and restart. Reboot times are approx. 2-3 minutes, so will be noticeable to the casual browsing session.<\/p>\n\n\n\n<p>From there, the hand-holding stops and you\u2019re left at the main GUI. Configuring a network setup is pretty intuitive, but I get the feeling that a few of the settings are in awkward places in the aim to preserve a tight menu structure. It&#8217;s been a few days since adding an SNMP community string, and I\u2019ve lost where it is already.<\/p>\n\n\n\n<p>L2 VLAN setup and configuration of the different networks is straightforward and a quick task to replicate for another router (all without rebooting), Although use of the \u201cauto\u201d options is disabled to replicate another network one to one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Throughput<\/h3>\n\n\n\n<p>As advertised, speeds are able to reliably achieve advertised speeds, within the confines of my 900Mbps\/105Mbps connection (Openreach profile speed is 1Gbps\/115Mbps).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"400\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/19439067347.png\" alt=\"\" class=\"wp-image-1090\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/19439067347.png 750w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/19439067347-300x160.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">IPv6<\/h3>\n\n\n\n<p>The pressing reason for getting this unit was to get a working IPv6 setup. Luckily, this has been achieved.&nbsp;<\/p>\n\n\n\n<p>Zen\u2019s IPv6 was discovered by the router by setting the WAN configuration to SLAAC connection and specifying the prefix delegation option, giving use of the \/48 range.<\/p>\n\n\n\n<p><a href=\"https:\/\/youtu.be\/EYYdQB0mkEU?si=hlZk5-j6l-WN8zCM&amp;t=104\" target=\"_blank\" rel=\"noreferrer noopener\">Subdivisions <\/a>and allocation of the range on the LAN side was not as customisable as I\u2019d hope, however. When enabled on a VLAN, a \/64 range is allocated and the subnet address cannot be customised, the first range configured gets ::1\/64, the second 1::1\/64 and so on. Since my VLAN IDs take a non sequential arrangement, I\u2019d prefer a more customisable setup to match my VLAN IDs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">VPN<\/h3>\n\n\n\n<p>Possibly the weakest feature of the USG discovered so far, whereas a Draytek offers all options for dial-in or LAN to LAN (inc. dial-out), the Unifi offers a lesser selection:&nbsp;<\/p>\n\n\n\n<p>&#8211; Dial-in: Wireguard, OpenVPN, L2TP<br>&#8211; Dial-out: Wireguard, OpenVPN<br>&#8211; LAN to LAN: OpenVPN, IPsec<\/p>\n\n\n\n<p>The goal for my setup was to re-establish an IPsec VPN with a remote site running a Draytek 2763, however this highlighted a compatibility issue that I may go into with a future post.<\/p>\n\n\n\n<p>As a compromise, a Wireguard session was established, with Unifi as the server, Draytek as the dial-out client. This works and is stable, but not without a performance hit, seeing throughput drop from 115Mbps over IPsec (limited by the FTTP upload profile) to around 60Mbps which is not the best outcome.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"313\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-17-115815.png\" alt=\"\" class=\"wp-image-1091\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-17-115815.png 667w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-17-115815-300x141.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Logging<\/h3>\n\n\n\n<p>The Unifi GUI is truly superior in finding out what your clients are doing, but not comprehensive.&nbsp;<\/p>\n\n\n\n<p>Traffic logging by each network device is available for easy viewing, along with application insights to help surmise where the traffic is going (albeit based on Unifi\u2019s interpretation of the destination by IP).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"352\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-1024x352.png\" alt=\"\" class=\"wp-image-1092\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-1024x352.png 1024w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-300x103.png 300w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-768x264.png 768w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-1536x527.png 1536w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555-1200x412.png 1200w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-145555.png 1567w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">FireTV doing FireTV things<\/figcaption><\/figure><\/div>\n\n\n<p>This is something you could only dream of while using a Draytek, but as mentioned, not perfect.&nbsp;<\/p>\n\n\n\n<p>I always get suspicious when my Grafana dashboards plot a spike a spike in WAN traffic that I was not expecting, and while I can see the spike in the Unifi dashboard, drilling down to the specific device is not as easy, and you\u2019ll easily resort to checking every device to see the culprit.<\/p>\n\n\n\n<p>Firewall logging on the other hand is as verbose as possible, showing each time my commercial cameras attempt to call home.<\/p>\n\n\n\n<p>A little detail, but a possible concern. The WAN connections show a little icon of the ISP\u2019s logo. Sure it&#8217;s a little touch to the UI, and the source code links to the ASN of the ISP, but it&#8217;s hard to dismiss if other metrics are being collected on your usage of the product.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Under the hood<\/h3>\n\n\n\n<p>One of the most surprising discoveries is this unit is just a Linux box, running Debian 11 on ARM:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"851\" height=\"591\" src=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-143819.png\" alt=\"\" class=\"wp-image-1093\" srcset=\"https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-143819.png 851w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-143819-300x208.png 300w, https:\/\/james-batchelor.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-16-143819-768x533.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure><\/div>\n\n\n<p>Enabling SSH on the controller gives you root access to the OS, where you discover that it&#8217;s running familiar open source applications. This gives great troubleshooting options (as found with the aforementioned VPN issue) as resources are available from both the Unifi and wider Linux community. Changes to configuration files may be more tricky, as the GUI autogenerates the files upon each save, but certainly better for beginners than trying to navigate a closed source CLI..<\/p>\n\n\n\n<p>This also helps for SNMP collection, as the generic Linux device template in Zabbix suffices.<\/p>\n\n\n\n<p>The only reservation is that it is running Debian 11, which enters end of life on 31st August 2026. Hopefully these units will undergo a next version upgrade, or that Unifi will maintain the kernel past public withdrawal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Simply put, for the price point, it makes for a great upgrade for any ISP supplied router, or as a quick replacement for any business class router running a 1Gbps service, assuming WiFi is handled elsewhere.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been using Draytek at home for routing for the past 10 years or so, with the latest being the 2927 in use for the last few years. With the release of the newer 2928 model this year, it&#8217;s inevitable that my router will be going end-of-life pretty soon. Instead of following on to its &hellip; <a href=\"https:\/\/james-batchelor.com\/index.php\/2026\/07\/17\/unifi-ugc-ultra-migration\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Unifi UGC Ultra Migration&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,212],"tags":[293,424,339,423],"class_list":["post-1088","post","type-post","status-publish","format-standard","hentry","category-blog","category-network","tag-draytek","tag-router","tag-unifi","tag-unifi-ucg"],"_links":{"self":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/comments?post=1088"}],"version-history":[{"count":1,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1088\/revisions"}],"predecessor-version":[{"id":1094,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/posts\/1088\/revisions\/1094"}],"wp:attachment":[{"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/media?parent=1088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/categories?post=1088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/james-batchelor.com\/index.php\/wp-json\/wp\/v2\/tags?post=1088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}