Hasura with internal adress not resolving, works through domain

Hey,
Trying to connect to our hasura from another machine does not work through http. Also can’t resolve via ping. ping6 works. Through the public domain, it works fine.

Terminal commands

bkniffler@x1mac ~ % ping6 finalytic-hasura.internal
PING6(56=40+8+8 bytes) fdaa:0:58b5:a7b:8dd7:0:a:2 --> fdaa:0:58b5:a7b:b9b7:a2c8:adbb:2
16 bytes from fdaa:0:58b5:a7b:b9b7:a2c8:adbb:2, icmp_seq=0 hlim=62 time=15.173 ms
16 bytes from fdaa:0:58b5:a7b:b9b7:a2c8:adbb:2, icmp_seq=1 hlim=62 time=25.819 ms
--- finalytic-hasura.internal ping6 statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 15.173/20.496/25.819/5.323 ms

bkniffler@x1mac ~ % ping finalytic-hasura.internal 
ping: cannot resolve finalytic-hasura.internal: Unknown host

Fly

app = "finalytic-hasura"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  image = "hasura/graphql-engine:v2.9.0"

[env]
  PORT = 8080

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 8080
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
  #[services.concurrency]
  #  hard_limit = 500
  #  soft_limit = 20
  #  type = "connections"

  [[services.ports]]
    # force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

Any ideas? Thanks :slight_smile:

so this is expected behavior-- .internal addresses don’t have A records. You can read more about this here:

Thanks! I’m not really sure I understand this correctly. My hasura instance can talk to my db through the .internal address. My MacBook can talk to a different http app via .internal address.

Is there any recommended way to solve this @eli ?

I solved this by using something similar to the redis example:

FROM hasura/graphql-engine:v2.10.1
COPY build/fly-serve.sh /fly-serve.sh
RUN chmod +x /fly-serve.sh
ENTRYPOINT ["/fly-serve.sh"]


// fly-serve.sh
#!/usr/bin/env sh
host="$(grep fly-local-6pn /etc/hosts | awk '{print $1}')"
echo "Using --server-host: $host"
${HGE_BINARY} serve --server-host "$host"