-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IPv6 + IPv4 switch to see if both are healty #1242
Comments
Seems to be a duplicate of #1025 |
The problem for OP and me is that we cannot check that IPv4 and IPv6 works. |
Same issue with me. On a location a NAS is only on IPv6. Uptime kuma sees this server as down while it is up and running with a valid DNS and FQDN. |
see how https://updown.io/ handle ipv4 + ipv6, not even need to switch, it would be a really nice feature. |
Am interested into implementing this as I am running into a lot of false positives due to IPv4/IPv6 thing. |
Even a tick box for ipv4 or ipv6 only and then easy enough to create two monitors if needs be - probably easier. |
Im hoping for this |
Generally speaking, a single URL with hostname can resolve to both IPv4 and IPv6 address(es), but also MULTIPLE addresses. An uptime monitor should really be checking all resolutions of the domain name, not just the default or first one it happens to get. |
not sure if there is any monitoring solution which checks both A/AAAA and possibly even multiple records of them. seems out of scope for uptime kuma since you could simply add more checks for everything you need (v4 and v6). if you have multiple A/AAAA-Records for http you normally would check on IP and use specific hostname to get correct site, this could be done via
most basic is the feature to choose address family for all protocols when using DNS. |
Please not this likely bug in ipv6 handling of axios: #3564 |
You could. I still think the current model can be dangerous for the naive user. You get a green label, even if your connectivity is partially broken. I'm not complaining here, just suggesting that an implicit check of all domain name resolutions would what the user really needs, and often didn't realise that they wanted.
You would also need to be able to specify SNI for this work. |
I've been working on a PR to resolve this. It would add an option to specify IPv4 or IPv6. If you leave it on "auto detect" (the default) it will use the current logic. It works with the following monitors so far: Ping, TCP, DNS. I'm working on the HTTP monitor then I'll submit it. |
Thank you! I’m not sure if "IP Family" is the correct term here, as to my knowledge, it refers to a broader set of IP protocols as TCP, DNS, SMTP etc. – all being part of the IP family. Thus I would suggest going with "IP version". |
I'm not particularly set on the name. It's called IP Address Family in normally, e.g. in the nodejs doco it calls it address family: https://nodejs.org/api/net.html#socketaddressfamily |
IP address family should be fine to use, as per IANA the family version 4 and 6 have assigned number 1 and 2. That being said, I appreciate the work to be able to determine the ip protocol being used for a monitor. |
Thank you for your work on this! It would be great if there was a fourth option to check both IPv4 and IPv6, avoiding the need to create 2 ping jobs. Not sure if that's possible in the current uptime-kuma framework. |
I don't see how you would implement a dual check. If IPv4 was down, but IPv6 was up - how would the logic of the monitor be set - should it show as down or up. How would it display which IP version wasn't working? I think it best that this is set up as two monitors for clarity. |
Two would make the most sense to me, that way the ping graphs would represent an accurate ping time for each (unless one went down the road to have two ping graphs.... but that seems like a lot of extra development effort). If one wanted they could make a group I suppose to contain the two variants (host - host v4, host v6) |
If a service is supposed to be dual-stacked, but suddenly becomes single-stacked (regardless of it's IPv4-only or IPv6-only), the service is for all intents and purposes "down" the way I see it. If Kuma monitors both IPv4 and IPv6 simultaneously, it's no problem to alert/identify what address-family that becomes unresponsive (and alert accordingly, like "IPv4 down for service XYZ" or similar). If the "down" vs. "partially-down" is a controversal topic, it could probably be made as an option (i.e. if it should just alert, but keep the service status "up", or actually mark the whole service as down). Or, maybe even better, introduce "Degraded" status (in addition to "Up" and "Down"). The latter could probably also be tied in with other feature requests (like #2313) to facilitate a way to show bad performance or other kinds of service degradations. |
@joachimtingvold you cant assume clients are dual-stacked and perform some kind downgrade to v4. |
That's essentially what I said; personally I consider a dual-stacked service to be down if it for some reason becomes single-stacked (regardless if IPv4 or IPv6 is broken). However, I merely suggested that it could be a configuration choice, as I can see people look at this differently. There are scenarios where "Degraded" makes sense, and others where "Down" makes sense. As an example, I assume some use Kuma for internal services, and if you have control of the environment (where you can say 100% of the service consumers are dual-stacked), there might be scenarios where you would like to consider the scenario of "dual-stacked service that becomes single-stacked" to be "Degraded", rather than "Down" (as it in many cases would work, just that it needs time to fall back to the working address family -- like Happy Eyeballs and similar mechanics). |
if the service is not reachable its down, if the host (or the route) is broken its a false alarm in regard to this alarm. |
I still think it would be beneficial to have options, and let users decice how they want to monitor things. As I mentioned, I see usecases for both variants in controlled environments. If this is implemented as a IPv4/IPv6-dualstacked-specific feature, or combined with the "service grouping"-feature that has been implemented (or at least partially, see #2487 + #2474 + #2693 + #1236, and probably others), I have no strong opinion on. There are many similar problems that dual-stacked monitoring and service grouping have in common. Some of the top of my head;
|
most tools i know have explicit -4 or -6 switches, or (by default) do downgrades (for which you might want to set the order if v6 > v4 is not desired). not a fan of introducing another status (aside up or down) which would need extra settings in notifications. |
Not even |
This comment was marked as duplicate.
This comment was marked as duplicate.
It's not just "to save time" (by not having to create duplicate rules). 99% of the services I'd like to monitor is using FQDNs with A+AAAA records. I don't want to create A- and AAAA-only FQDNs for the same service (ipv4.service.foobar.com + ipv6.service.foobar.com, etc), just for the sake of being able to monitor the IP-stacks individually. I'm not interested in using their IP addresses either, and sometimes you are not even able to (i.e. for services that are using dynamic DNS entries or similar). To facilitate this, as a minimum you'd need some kind of "address family" option for the alert (where you can choose between IPv4 or IPv6). As a "phase 2" of the address family option, you could implement full dual-stack alerting/monitoring for a rule, and uptime-kuma can figure out this by itself (by looking at the DNS response), and monitor one or both of the address families for a given FQDN. |
🏷️ Feature Request Type
API, New Monitor, UI Feature
🔖 Feature description
✔️ Solution
a little button "resolve ipv6+ipv6" or "dual-stack-check" and the respecting part in the monitoring stack
❓ Alternatives
No response
📝 Additional Context
No response
The text was updated successfully, but these errors were encountered: