Create a platform design proposal for internal ip address
as configuration.
#16149
Labels
Platform
Tickets pertaining to the platform
From a discussion between @nathanklick, @rbair23, @jasperpotts, @anthony-swirldslabs, and @edward-swirldslabs, we need to create a way for nodes to specify the following through node-specific configuration:
(1) is needed when a device may have multiple network interfaces but a running node should bind to a specific interface to receive incoming traffic.
(2) is needed to provide alternate network endpoints for nodes that may be in the same private or local network and the network routers are not setup to hairpin network traffic from an external ip address to a local ip address.
The above came out of a discussion about our shift away from the
config.txt
format on disk for platform address books and to our use of the Roster format.Config.txt
has fields for 1internal
and 1external
ip address and port. The Roster format supports a list (upto 10) of ServiceEndpoints with no distinction between internal and external. From our discussion, the external ip addresses should be tried round robin, in order, until a successful connection is established. There may be multiple external ip addresses for different types of network endpoints, IPv4, IPv6, DNS, etc.Currently our code is storing the internal and external ip address from config.txt in the list of service endpoints in the roster entry for the node. We are connecting to only the external endpoint.
Part of changing this behavior will require a HIP to change the comments on the protobuf of the roster fields and introduce the node configuration for modifying and overriding the network settings and address book.
The text was updated successfully, but these errors were encountered: