Consul bind/advertise on Fly (fly.io)

We are trying to run a Consul cluster on Fly (https://fly.io), but are having some issues with binding/advertising to their networking stack. I’ve posted what it looks like below, things like “bind_addr = [::]” or 0.0.0.0 don’t seem to work, so I’m wondering given what this interface looks like would be the correct way to bind/advertise for a server. Any tips/help is very much appreciated, thanks!

/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 9a:54:72:76:31:b4 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1420 qdisc pfifo_fast state UP qlen 1000
    link/ether de:ad:92:ff:f8:c4 brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.42/29 brd 172.19.0.47 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.19.0.43/29 brd 172.19.0.47 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fdaa:0:75a3:a7b:a15f:f41b:5c8e:2/112 scope global flags 02 
       valid_lft forever preferred_lft forever
    inet6 2604:1380:45e1:3004:0:f41b:5c8e:1/127 scope global flags 02 
       valid_lft forever preferred_lft forever
    inet6 fe80::dcad:92ff:feff:f8c4/64 scope link 
       valid_lft forever preferred_lft forever

I think this might not be possible with Consul, but just wanted to make sure I wasn’t missing anything. Don’t think Consul supports this kind of network stack at the moment.

Hi @neilmock

Welcome to the HashiCorp Forums.

Consul expects that it binds only to a single IP address by design. If you know which interface to bind to, you could try using the go-sockaddr templating to bind to a specific interface/IP. The official documentation shows an example of how to do the same (linked below).

If you are not running a multi-node setup (eg: dev mode), you could consider binding to the loopback (127.0.0.1).

ref: