**Setting up a Synology router and wifi mesh – was it a mistake?**
TL;DR
- The initial problem was that ISP’s modem/router froze every day.
- Synology is a good router with a responsive support. But –
- The problem with Synology was responsivness of my selfhosted webpages via browser/domain name.
- The solution was an obscure setting that ‘improves compatibility of roaming of wifi clients’
- I lost 1 week of time to deal with it.
- Nevertheless, it pays off to have own router. Innobox was s**t.
The problem:
My ISP’s (Telekom SI) modem/router (#Innobox G92) was having serious problems and ISP didn’t (want/know) how to fix it. It froze at least one time every day. It showed internet is connected, but it refused to transfer the data. Of course they (ISP) didn’t admit there is anything wrong with it. But I had logs in my HomeAssistant that showed exactly when the data transfer stopped.
They even replaced it and the new one started to behave exactly like the old one after only a week of use. They also blamed me – they said I should hire a ‘computer specialist’ to check my network.
I have only about 30 network devices.
So I decided (too late) that I want a router that I can control.
The next issue was some of my wifi gadgets didn’t have good wifi connection (e. g. in the basement). I used an old Linksys WRT54G as a separate access point, but I wanted a central management of all my gadgets.
Synology – the solution to ISP’s modem/router connectivity, which itself became a problem
I researched a bit and asked around, which routers are good nowadays. I heard about Ubiquity (and almost decided for it), Asus, TP-Link, OpenWRT (compatible) and Mikrotik. And Synology.
Finally I decided for a Synology. I have their NAS for 13 years, it has a nice UI, hasn’t failed yet and that was a deciding factor.
I went with their top offer: Synology RT6600ax router + WRX560 access point.
Installation of the router was dead easy. I just turned it on, connected to its wifi, created a user, connected WAN port to modem’s LAN port, called Telekom to put the modem in the bridge mode, entered PPPoE user/pass and voila, it worked.
SRM (the management UI) is really nice. I can see traffic by clients/protocols/apps/…
Wifi mesh access points and traffic:
Issues with internal web pages load times … was it DNS?
I tested the network a bit, added WRX560 as a mesh access point. And then the issues started.
Internal web pages accessed via browser / domain names were slow or there was a timeout when loading.
It looks like the network doesn’t handle http/s request to internal web pages well AFTER adding wrx560 and creating a mesh.
Before adding WRX, the access to internal web pages was quick. Even before, when I was using only my ISP modem/router, everything was quick.
Firmware: SRM 1.3.1-9346 Update 12
Symptoms:
When I tried to load a webpage that is on my webserver in my LAN via my domain (e. g. this page, https://blog.rozman.info and some others), it took 1-30 seconds for a page to load (or there was a timeout). Especially if I reloaded the page in a sequence or clicked links on the same page in short time.
Setup:
GPON –> Modem (bridge mode) –> rt6600ax (router) –> wrx560 (ap)
I have static IPv4 (and IPv6). My web domain points to the router static ip –> port forwarding –> reverse proxy (in my LAN) –> web server (in my LAN).
If I connected wirelessly or wired directly to rt6600ax, there was no timeout or delay. If I accessed it from external network (e. g. via mobile data), no timeout or delay.
If I connected wirelessly or wired to the access point WRX, there WAS a delay or timeout. Even if I put wrx on the last place in lan (after a dumb switch) and connected to the same switch, there was a delay. It got worse if I clicked refresh on a web page quickly several times in a row.
I ran countless tests without success.
Everything else worked fast and ok. Speedtest showed 300/100 Mbs, ping was 2-5ms, traceroute was 3ms to my modem, dig was fine, nslookup was fine).
Response of the webpages via IP – also no problem – loaded quickly, under 100ms.
But when I accessed it via domain name, it stuttered. Browser / Developer mode / Network / Timings showed:
If the page loads quickly via IP and stutters via domain name … it must be DNS, right?
Then I wrote a little curl script that measures the response time to exclude browser issues:
curl -w "\nDNS Lookup: %{time_namelookup}s\nConnect: %{time_connect}s\nStart Transfer: %{time_starttransfer}s\nTotal: %{time_total}s\n" -o /dev/null -s
https://blog.rozman.info
that returns (when it’s ok):
DNS Lookup: 0.005905s
Connect: 0.007009s
Start Transfer: 0.838036s
Total: 0.838527s
when it choked, it returned:
DNS Lookup: 0.008007s
Connect: 1.009419s //or 2, 3, 10 seconds
Start Transfer: 1.952299s //or 2, 3, 10 seconds
Total: 1.952632s
when there wasa timeout, it returned:
DNS Lookup: 0.006191s
Connect: 0.000000s //timeout
Start Transfer: 0.000000s //timeout
Total: 21.034533s
DNS lookup looks quick, but after that (waiting and connecting) it chokes.
It felt like that wrx560 (or mesh setup) added some kind of recursive loop to the (DNS?) request. NAT Loopback? I don’t know, I’m not a networking professional.
Failed attempts
I was desperate and tried many things without success:
- updated both devices
- disconnected AP, reset, played with its settings, but when I added it back to the mesh, it reset to its factory state and AP mode anyways. After adding it to the mesh, it worked ok for a few minutes, then the issues returned. Repeated several times.
- Tried to access AP, no success. I couldn’t figure it out how to access it. It’s not in the client list. I even connected it to the router via LAN instead of WAN port. I could see it (MAC address, no IP), but still couldn’t connect to it.
- Checked my reverse proxy (nginx), optimized some buffering and caching
- Enabled caching mods (mod_expire) on my webservers (apache)
- turned off and on almost all settings I could find it in the router software.
- Cleared the DNS cache countless times (ipconfig /flushdns in cmd and about:networking#dns –> clear DNS cache in Firefox)
- I even asked Mastodon community for help
- In parallel, I contacted Synology’s support. They were helpful and response times were quick (24hrs).
- Firstly, they sent me some patches and I installed it on the router. No success.
- Then they ‘adjusted something’ remotely. No success.
- More remote ‘adjustments’.
- Lastly, they ‘asked someone’ and gave me the final solution. But in the meantime, I found the workaround solution:
Temporary workaround solution – split DNS
I temporary solved slow response/load times by adding my web site domain names to my local DNS records on my Pihole (‘split DNS’). I wasn’t very happy, because this is no real solution, only a bad workaround. But it worked.
I waited some more for the support to fix it.
At this moment I was sure I didn’t fuck it up. There must be something in the mesh setup that disturbes connection response.
And finally:
After a week of a chat with the support, they suggested to check out some obscure setting hidden deep in the menus and turn it off:
Control panel / System / SRM settings / Enhance the roaming compatibility of clients between Wi-Fi systems (turn it off).
AND IT WORKED!
Immediately after unchecking this setting, the my web pages became responsive. Whoah.
At the end, all good.
But then I started to play with IPv6…
till the next time!
Disclaimer
The links to the products (or mentioning them) are not affiliate links and I don’t receive any compensation for linking.
Hashtags: #synology #srm #homelab #mesh #selfhosting #dns #network
https://blog.rozman.info/setting-up-a-synology-router-and-wifi-mesh-was-it-a-mistake/