IPv6 and gemini

Hi all,

I've been having intermittent connection issues with some of the gemini
servers.  While this is of course to be expected at this point, it
seemed odd that, for instance, gemini://zaibatsu.circumlunar.space
seemed to be offline more often than not.  I finally got around to
looking at this more carefully, and noticed that using gnutls-cli to
open a connection to the IPv4 address always succeeds, whereas
connections to the IPv6 address that the resolver returns do not.
Since the network that I'm using supports IPv6 and falls back to IPv4
when necessary, this was causing a problem.

Furthermore, because of the requirement that clients transmit the full
URL to the server, it's not trivial to get around this by just directing
the client to the IPv4 address: the server probably won't recognise the
URL and will respond with an error code.

There seem to be four options:

1. Have clients only look at IPv4 addresses (i.e. ignore AAAA DNS
records).
 - Pro: would immediately solve the problem in this case.
 - Con: gemini gets stuck in the past.

2. Have clients do a reverse-DNS lookup when the gemini URL contains
an IP and use this to construct a URL to supply to the gemini server.
 - Pro: would allow clients to connect using URLs with literal IP
   addresses in them.
 - Cons:
    a) connecting via the hostname still wouldn't work.
    b) if a single server is hosting several gemini sites the result
       of the connection would be non-deterministic.
    
3. Have servers recognise IP URLs.
 - Pros and cons same as for 2.

4. Have servers ensure that if they have an AAAA record they also listen
for IPv6 gemini connections.
  - Pros: future-proof, no client-side changes necessary.
  - Con: some additional work necessary on the server side.

Obviously 4 is my favourite because it's less (no) work for me. :)

plugd

---

Next in thread (2 of 8): 🗣️ Sean Conner (sean (a) conman.org)

View entire thread.