ditatompel / xmr-remote-nodes

Source code of https://xmr.ditatompel.com, a website that helps you monitor your favourite Monero remote nodes.
https://xmr.ditatompel.com
Other
9 stars 4 forks source link

IPv6 Nodes #84

Open juliaszone opened 1 month ago

juliaszone commented 1 month ago

Hi, I run 2 IPv6 enabled nodes and I saw that only IPv4 is supported by the website. Are there any plans for IPv6 support?

juliaszone commented 1 month ago

My idea for showing IP addresses in the list would then be to show the IPv6, then IPv4 ontop of each other, instead of only IPv4. Or even better, just remove it. For nodes submitted using IP addresses, it shows up twice. Clients usually try IPv6, then fall back to IPv4 when connecting to a domain. If people only use IPv4 addresses instead of domain names, this cannot happen. NAT64 clients also have it easier, because it works better on those networks thanks to DNS64. The application would need to be aware of NAT64 networks by querying for ipv4only.arpa IN AAAA, which I believe not many do. I guess they can still show up in the node info tab, with all IPv6 and then all IPv4 addresses listed.

juliaszone commented 1 month ago

If IPv6 support is added, I believe it would also be nice to be able to filter for IPv6/IPv4/Dualstack nodes...

ditatompel commented 1 month ago

Thank you for the advice. I will try to implement that.

However, it doesn't look like it will happen anytime soon because most of the "probers" I have don't have (or explicitly disable) IPv6.

My estimate is that it will take around 1 to 2 months before we can implement and carry out testing.

ditatompel commented 1 week ago

Hi @juliaszone , I've change the code to accept IPv6 node and enabling IPv6 on one of the probers (linode). Can you please try add your nodes to see how it goes?

juliaszone commented 6 days ago

Hi @juliaszone , I've change the code to accept IPv6 node and enabling IPv6 on one of the probers (linode). Can you please try add your nodes to see how it goes?

I tried to add it by domain, but it says it already exists. Those still show up as an IPv4 despite being dual stack.

I would show IPv6 then IPv4 address in the list like so (edited in browser devtools): image And now if a node has no IPv4: image same for if a node has no IPv6: image I would also apply it exactly like that to the "Public IP" field in the "Probe Logs". The code could be reused easily. For nodes that have been added using an IP address, I'd propose a removal of the "Public IP" fields in the list and on the logs. image image

I have tried adding IPv6 addresses, and it worked. They can be removed now. https://xmr.ditatompel.com/remote-nodes/logs/?node_id=272 https://xmr.ditatompel.com/remote-nodes/logs/?node_id=273 A problem: IPv6 addresses when in URL/Port notation are to be put in square brackets: image So, correct it would be [2a02:810d:b5bf:ece0::1:180]:18089. It happens on the list and in the logs.

A nice feature for dualstack nodes would be to crawl it on IPv4 and IPv6. If either is broken, then display it like this: image

juliaszone commented 6 days ago

After some downtime of my nodes, they showed up as IPv6. Then now, it changed back to IPv4 for one node. image

ditatompel commented 5 days ago

they showed up as IPv6. Then now, it changed back to IPv4 for one node.

If you have more than one A and/or AAAA DNS record, the current cycle and the next cycle may display different IP address. It depends on the first IP address obtained from the hostname lookup.

Therefore, I removed the IP address information from the table (but still exists from API call result) and replaced it with information about whether the host only supports IPv6 or not (61cc98e). So, if the submitted node is IPv6 address (or domain name that doesn't have IPv4) it will show IPV6 only info.

Speaking of IP addresses, maybe I could add an "IP lookup" button or something like that so that visitors can get that information only when needed. But I can't promise that it will be available anytime soon.

A nice feature for dualstack nodes would be to crawl it on IPv4 and IPv6.

I wouldn't implement something like that. Performing RPC calls for every A/AAAA record for each node would take many times more resources than it needs to.

I have tried adding IPv6 addresses, and it worked. They can be removed now. https://xmr.ditatompel.com/remote-nodes/logs/?node_id=272 https://xmr.ditatompel.com/remote-nodes/logs/?node_id=273

Sure, will do. Thanks for your help!

ditatompel commented 3 days ago

I think you're right Julia. For some reason, I need to shows IP addresses of each nodes. ( issue #105 )