New on LowEndTalk? Please Register and read our Community Rules.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
"Reduce initial server response time" issue with IPv6
I have using the "GCV 9999 MO EPYC" machine to host a website. Sever is really super fast. I am using Apache+Nginx (reverse proxy)+MariaDB+PHP7.4 on Debian11.5.
I found a weird issue. Whenever I enable IPv6 on Nginx, I get "Reduce initial server response time" on the Google pagespeed test (~2.5s). If I disable IPv6, I do not get any error.
BunnyDNS is my DNS hosting provider.
Any idea what could be the problem?
Comments
Probably just different routing over v6. Not much you can do about it. I mean if it only adds a little latency when using v6 I can't think of a config adjustment you're going to make to reduce it.
I notice something else which may be connected to your issue or may not.
Sometimes when I run "curl ipv6.google.com" with GCV (on a several locations) on the first attempt it does not work, but then, afterwards it does. Just tryed - example:
So IPv6 work but it seems like it needs to be "woken up" or something. I don't know what cause this or how to explain it. I use Debian 11 if this helps.
If this happens using their default debian 11 image, then it's the host's problem. If you installed your own os then it might be your problem.
Their. In some cases new install require also:
nano /etc/sysctl.conf
sysctl -p
nano /etc/sysctl.conf
sysctl -p
(but that's not issue of course, I just share it in case someone is trying to figure out why IPv6 with Debian 11 doesn't work out of the box)
Greencloud always had fucked up IPV6 configuration on their network.
I would like to sing peans of Hosthatch’s IPv6, though they don’t get much love from around these parts.
Changing DNS from BunnyDNS to HE.net and using your solution have fixed the issue for now. So, it seems that the issue may be with BunnyDNS.
I've witnessed problems with Neighbor Solicitation of the router address from my host not responded quickly.
The workaround is adding a static NDP entry with
ip neigh add
command that "permanently" binds the router's IP address with its MAC address.2.5 seconds. Not worth your time. Your time is worth much much much much more. Forget the page speeds, don't get obsessed. In the end user speed will vary a lot, as long as it is reasonable I wouldn't deal with that.
That's an easy 8 hours lost in the loop trying to solve 2 seconds.
Hard to say without more details, but this sounds like the sort of problem one runs into when either IPv6 transport isn't available and/or AAAA RRs are unavailable/unreachable. Without knowing more, this sort of problem can be investigated by examining your local resolver config (e.g., probably what is in /etc/resolv.conf file), verifying you have a working v6 path between the the front end and reverse proxy, that there isn't a problem with a lame delegation, etc.
It is 2 seconds multiplied by every page load and multiplied by every visitor. With a site popular enough, over time that would actually accumulate to something comparable to a human lifetime, and then keep counting further. Would you not spend 8 hours to save a life?
Secondly, I doubt if a website with 2.5s+ page loads would ever get that popular to begin with. Can you imagine if there was an almost 3-second pause after every click even here on LET? That would quickly get annoying for everyone and reduce the site attractiveness a lot.
It is unlikely the DNS, unless your site does DNS queries while serving pages, which would be very weird. More like some kind of broken IPv6 setup, for which the suggested settings may seem to provide a workaround.
@rm_ is 3 seconds you will not notice. It happens all the time or do you count seconds every time you click?
Enable preload in your browser, problem solved.
https://www.hobo-web.co.uk/your-website-design-should-load-in-4-seconds/
https://www.marketingdive.com/news/google-53-of-mobile-users-abandon-sites-that-take-over-3-seconds-to-load/426070/
@rm_ Don't try that hard Sir. I work in that market, seen that everyday. Don't believe the hype. Nowadays the only way to get a site to load under 1 second it to just have plain text on it.
Also you can have like the best optimized A+ rated website and if the user has a shitty internet with latency and packet drop it will still take 1 or two seconds to load, probably more. User will blame the website regardless.
Plus IPv6, disable it if is an issue. Put CF on top, boom call it a day, go to sleep or have a good time with your life partner.
Unless this is a production site, where a few sec load will cause you lose money, then ignore. Imagine trying to fix an IPV6 issue for a personal blog while paying 2 dollars a month on a shitty VPS. nanana life is too short.
I agree with you. I am not going to waste too much time. Just disable IPv6 and focus on other things. I am not an IPv6 comrade.
Disabling IPv6 is a war crime comrade.
Yea, however I see the issue only in the Netherlands for me at least.
IPv6 died entirely here, premium experimental stuff.
Lets see how long it will be stable this time.
Well, the 2ish seconds you mention it takes, looks like lost packages to me.
At least what my smokeping tells me, so TCP is doing its job.
By default, the IPv6 setup is fucked.
After applying the fixes, it returns to normal.
What fixes did you apply?
@yoursunny suggested setting the neigh entry static/permanent.
ip -6 neigh replace <ipv6> lladdr <mac> dev eth0 nud permanent
However this alone, didn't fix issues, it did caused more, which is wired.
IPv6 outbound died after applying the fix, server was still pingable via IPv6 but I could not ping outbound.
Applying the additional fixes suggested by @Mumbly then it worked fine.
I have
accept-ra: false
andlink-local: []
in my Netplan YAML, as part of my standard config in non-residential network.Thus, I don't think to mention it.
If accepting Router Advertisement is causing issues, it implies these packets contain incorrect router information.
A drawback of
ip neigh add
is that, if the router is replaced and has a different MAC address, the static binding would cause an outage.The better solution is writing a program to periodically query for router's MAC address via NDP, and inserting as (semi-)permanent entry upon each successful query.
Would be my guess, something is sending around fucked packages.
Time to tcpdump.
How do you config IPv6 on GCV? I can not use IPv6 on my vps, it shows error when i ping outside "Destination unreachable: Address unreachable"
We don't know what you did so far. Is your IPv6 added to the interface?
I don't do anything after install Ubuntu. At first, I thought my vps not support IPv6. But when I saw this topic, it made me wonder why IPv6 not work. Because I have same vps as thread owner.
I was able to ping6 my website. Now I have disabled IPv6. It's too time-consuming to learn and set up everything when the problem may be at the root node. I also do not expect GCV will fix it soon.
The fixes work fine, just apply them.
The described fixes only work on their NL boxes, not on MO, where the OP has a VPS (and I can confirm as I've tried disabling RAs on their MO network).
I haven't gotten IPv6 by default on every location and I needed to request it via support ticket. And then of course set it up manually and via control panel.
I don't use Ubuntu, but I can share my Debian setup.
I installed Debian 11 from the Image, clicked "Reconfigure Networking" (it's easier than type everything) in SolusVM and then changed interface from eth0 to ens3 via VNC console.
It looks something like:
nano /etc/network/interfaces
And then, to keep IPv6 alive, I needed to do also:
nano /etc/sysctl.conf
sysctl -p
(ens3 can be replaced with eth0 or whatever interface you use)
It worked also on my Florida and UK VPSes.
edit.
I checked again, it didn't require this setup on my UK vps, just NL and Florida for IPv6 to work.
@stevewatson301 do you use template or Image installation? I can't say for sure but I have somewhere in my memory that those fixes were required at least with Image installations in my case. (I may be wrong tho)
My IPv6 worked, thanks for your comment . I edited the file
/etc/sysctl.conf
and then click "Reconfigure Networking" in SolusVM.