user1913: Do you require 3 static IPs to run a stake pool?

1 for each relay (x2)
1 for a block producing node

Or, can I do 1 static IP, and have all these hostnames point to it:

relay1.domain.com
relay2.domain.com
bpn.domain.com


I've read that it is not recommended to use a Dynamic DNS provider service as there is some downtime between when your IP address changes and when it is updated by the DDNS provider.
I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*

I am debating running this on hardware at home vs GCP, so any advice will be greatly appreciated. TIA

user161: You do not need a static public IP address for each node. You can easily run multiple relays on a single public IP address using different ports (eg. behind NAT/port forwarding).
Eg.
1.2.3.4 port 3001 -> relay 1
1.2.3.4 port 3002 -> relay 2

You could then point all of the hostnames to that IP but you must use the port numbers when connecting/listing them on-chain. Unlike with HTTP where multiple hostnames can run on a single IP/port (using the HOST header), that's not the case here.
Of course to do this, you'd need to be able to forward the ports from the device with that IP so this may depend on your exact setup (but a home router likely can do this with its port forwarding - I did exactly this with my first testnet pool, having two relays running at home).
Your relays/producer will still need some static internal IP address/hostname that they can connect to each other on (since they will need to be listed in each others topology files).

user28: You need to ensure that if your pool creates a block, that this is properly propagated to the rest of the network. So, your pool needs to be connected to the Cardano network at this specific time.
When your IP changes and the DDNS updates this record, it take take up to 5 minutes or more to propagate this DNS change to the rest of the internet. Your peers will probably detect that your IP is down and will try to reconnect.
So, to answer your question: it depends. Can you ensure the change of IP is made in a way that does not break your connection to the network or that it does so not when your block creation is scheduled?
I would say, it is possible, but not sure if it is worth to put in the effort. Can you buy a static IP from your ISP?

user1781: 
Do you require 3 static IPs to run a stake pool?

It depends. All your nodes needs a static addresses to talk to each other; this can be IP or dns. If going the IP route, it is best that the block producer IP is local and not public. The relay nodes will need to have public IP addresses.

1 public for each relay (2 public static IPs all together)
for a block producing node (one private static IP)

Now if reserving static IP is tricky, then you can also get away with just domain name resolutions if you use a dns service that propagates ip changes quickly. What you don't want is for your nodes to be cut out from the network while is creating a block.

I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*

DDNS can work but isn't recommended since those service are often very slow or buggy when it comes to updating dns records. Also, I think DDNS will be more problematic if the upcoming P2P and gossip protocols has any kind of caching layer.

1913: <p>Do you require 3 static IPs to run a stake pool?</p>
<ul>
<li>1 for each relay (x2)</li>
<li>1 for a block producing node</li>
</ul>
<p>Or, can I do 1 static IP, and have all these hostnames point to it:</p>
<ul>
<li>relay1.domain.com</li>
<li>relay2.domain.com</li>
<li>bpn.domain.com</li>
</ul>
<blockquote>
<p>I've read that it is not recommended to use a Dynamic DNS provider service as there is some downtime between when your IP address changes and when it is updated by the DDNS provider.</p>
<p>I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*</p>
</blockquote>
<p>I am debating running this on hardware at home vs GCP, so any advice will be greatly appreciated. TIA</p>
 161: <p>You do not need a static <em>public</em> IP address for each node. You can easily run multiple relays on a single public IP address using different ports (eg. behind NAT/port forwarding).</p>
<p>Eg.</p>
<pre><code>1.2.3.4 port 3001 -&gt; relay 1
1.2.3.4 port 3002 -&gt; relay 2
</code></pre>
<p>You could then point all of the hostnames to that IP but <em>you must</em> use the port numbers when connecting/listing them on-chain. Unlike with HTTP where multiple hostnames can run on a single IP/port (using the HOST header), that's not the case here.</p>
<p>Of course to do this, you'd need to be able to forward the ports from the device with that IP so this may depend on your exact setup (but a home router likely can do this with its port forwarding - I did exactly this with my first testnet pool, having two relays running at home).</p>
<p>Your relays/producer will still need some static <em>internal</em> IP address/hostname that they can connect to each other on (since they will need to be listed in each others topology files).</p>
 28: <p>You need to ensure that if your pool creates a block, that this is properly propagated to the rest of the network. So, your pool needs to be connected to the Cardano network at this specific time.</p>
<p>When your IP changes and the DDNS updates this record, it take take up to 5 minutes or more to propagate this DNS change to the rest of the internet. Your peers will probably detect that your IP is down and will try to reconnect.</p>
<p>So, to answer your question: it depends. Can you ensure the change of IP is made in a way that does not break your connection to the network <strong>or</strong> that it does so not when your block creation is scheduled?</p>
<p>I would say, it is possible, but not sure if it is worth to put in the effort. Can you buy a static IP from your ISP?</p>
 1781: <blockquote>
<p>Do you require 3 static IPs to run a stake pool?</p>
</blockquote>
<p>It depends. All your nodes needs a static addresses to talk to each other; this can be IP or dns. If going the IP route, it is best that the block producer IP is local and not public. The relay nodes will need to have public IP addresses.</p>
<ul>
<li>1 public for each relay (2 public static IPs all together)</li>
<li>for a block producing node (one private static IP)</li>
</ul>
<p>Now if reserving static IP is tricky, then you can also get away with just domain name resolutions if you use a dns service that propagates ip changes quickly. What you don't want is for your nodes to be cut out from the network while is creating a block.</p>
<blockquote>
<p>I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*</p>
</blockquote>
<p>DDNS can work but isn't recommended since those service are often very slow or buggy when it comes to updating dns records. Also, I think DDNS will be more problematic if the upcoming P2P and gossip protocols has any kind of caching layer.</p>
