Automatically discover the node's IP on the satellite side, since it's caching IPs anyway

Theoretically STORJ wouldn’t need DDNS anymore. The node connects to the satellite, which then knows the public IP of the node. It can just store it like a DNS-server in its cache. The uplinks get their IP-lists from the satellite since a few versions ago.
Therefore there would actually be no need for DDNS anymore, which would make setting up nodes a lot easier. Only correct port-forwarding on the storagenode would stil be a requirement…

3 Likes

That would be great. :upside_down_face:

it not work like this, node send ip only on start, so if it change, node not send thi change to sattelite, ddns send once, and it resolves befor send to uplink, that ip will be as fresh asposible.
So it not yet posible be without ddns.

See https://networkengineering.stackexchange.com/questions/12565/how-is-a-tcp-connection-maintained-over-a-changing-ip-address

If the ip changes, the sockets break. So the node creates a new connection and satellite knows the new ip

1 Like

there is no instant connection with sattelits, it send pings time to time, not keep online connection.
and not send ip all the time, but you are right it cold be work like that, but it not.
on other hand, it will be hard to use dual provider, as it all time start to change ip, not many routers can use dual WAN and more less users who can configure it, but today it use 1 connection that default, and second if first not respond.

It’s true, but DDNS can be used for storage node ISP failover.
Example: You are using DNS name on storage node config and tell this DNS name for the Satellite. This name is DDNS name and you can change it on the fly without storage node reconfiguration. If you are using IP address on storage node configuration, you can’t change it without storage node reconfiguration and restart.

In my scenario you wouldn’t need to put any DDNS or IP in your config because the satellite would always know your IP as soon as the node (re)connects. So it would automatically work with a failover ISP.

2 Likes

I see, yep, it will be really must have feature!

Thanks for splitting this into a new thread Alexey

If the node keeps an open TCP connection to the satellite or connects frequently enough then this would work.
If the node connects to the satellite, announces its presence and then disconnects with all future connections being initiated by the satellite, it will not work.

It wouldn’t be much differently than the current DDNS situation.
If your IP changes, the satellite will be unable to contact your node until your DUC updates the ip. Typcially this takes several minutes up to 30 Minutes, depending on how you configure your DUC.
So if instead the node checks in with the satellite every 5 minutes then this would work at least as good as the current DDNS situation.
Also an IP change typically doesn’t happen more than a few times a day.

I am currently not sure if the satellite and the node have an open connection at all times or if the satellite actually opens a new connection for each request.
But for keeping the network healthy and calculating node uptimes there is definitely a regular data exchange between the node and the satellite which should be enough to also use it for ip updates.
However, this “ping” connection would need to be initiated by the node, as the node would be unreachable after an ip change. I don’t know how this is currently handled.

The difference is that you don’t need to set up DDNS, the storagenode application would take care of it all

Vote for better ip updating here: https://ideas.storj.io/ideas/V3-I-128

1 Like