The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html

Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.

Issue: Reverse ipv6 lookups fail.

Check all our dns servers to make sure they work. If they do, then contact hurricane electric using the info in Network. Here is what a working ipv6 reverse dns lookup looks like:

$ command dig +trace -x 2001:470:142:5::116

; <<>> DiG 9.11.5-P4-5.1+deb10u6-Debian <<>> +trace -x 2001:470:142:5::116
;; global options: +cmd
.                       477190  IN      NS      m.root-servers.net.
.                       477190  IN      NS      b.root-servers.net.
.                       477190  IN      NS      c.root-servers.net.
.                       477190  IN      NS      d.root-servers.net.
.                       477190  IN      NS      e.root-servers.net.
.                       477190  IN      NS      f.root-servers.net.
.                       477190  IN      NS      g.root-servers.net.
.                       477190  IN      NS      h.root-servers.net.
.                       477190  IN      NS      a.root-servers.net.
.                       477190  IN      NS      i.root-servers.net.
.                       477190  IN      NS      j.root-servers.net.
.                       477190  IN      NS      k.root-servers.net.
.                       477190  IN      NS      l.root-servers.net.
.                       477190  IN      RRSIG   NS 8 0 518400 20211120050000 20211107040000 14lX eEHS/VRPQra65v3yjIwI6134O/wbCgOtuT48H+GeTXfWyoIo+9FdyCLL ii2/Dw==
;; Received 525 bytes from 23.239.24.5#53(23.239.24.5) in 0 ms

ip6.arpa.               172800  IN      NS      a.ip6-servers.arpa.
ip6.arpa.               172800  IN      NS      b.ip6-servers.arpa.
ip6.arpa.               172800  IN      NS      c.ip6-servers.arpa.
ip6.arpa.               172800  IN      NS      d.ip6-servers.arpa.
ip6.arpa.               172800  IN      NS      e.ip6-servers.arpa.
ip6.arpa.               172800  IN      NS      f.ip6-servers.arpa.
ip6.arpa.               86400   IN      DS      13880 8 2 068554EFCB5861F42AF93EF8E79C442A86C1
ip6.arpa.               86400   IN      DS      45094 8 2 E6B54E0A20CE1EDBFCB6879C02F5782059CE
ip6.arpa.               86400   IN      DS      64060 8 2 8A11501086330132BE2C23F22DEDF0634AD5
ip6.arpa.               86400   IN      RRSIG   DS 8 2 86400 20211121000000 20211107230000 523EOtTb dWAZkS252DEOckKpMVD9SdLvbA26H5PfRoE84GQtnjm561QTNao4HxoG XDP8Dw==
;; Received 937 bytes from 2001:500:200::b#53(b.root-servers.net) in 32 ms

4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      r.arin.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      u.arin.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      x.arin.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      y.arin.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      z.arin.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      NS      arin.authdns.ripe.net.
4.0.1.0.0.2.ip6.arpa.   86400   IN      DS      28600 8 2 BA934D6DDB4EC89E0BE9DF44F6335688F9AB
4.0.1.0.0.2.ip6.arpa.   86400   IN      RRSIG   DS 8 8 86400 20211122140044 20211101141337 451
;; Received 437 bytes from 199.253.182.182#53(b.ip6-servers.arpa) in 32 ms

0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN      NS      ns2.he.net.
0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN      NS      ns3.he.net.
0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN      NS      ns1.he.net.
0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN      NS      ns5.he.net.
0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN      NS      ns4.he.net.
0.7.4.0.1.0.0.2.ip6.arpa. 10800 IN      NSEC    0.8.4.0.1.0.0.2.ip6.arpa. NS RRSIG NSEC
0.7.4.0.1.0.0.2.ip6.arpa. 10800 IN      RRSIG   NSEC 8 10 10800 20211122013335 20211108003335
;; Received 475 bytes from 204.61.216.50#53(u.arin.net) in 1 ms

2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN NS   ns3.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN NS   ns1.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 86400 IN NS   ns2.gnu.org.
;; Received 162 bytes from 2001:470:400::2#53(ns4.he.net) in 16 ms

6.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN PTR wildebeest
6.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN RRSIG PTR 7 34f08gstJ63Ddbp 6ULpIr08nYjQzUTvL3yHbuj7wHYk5u1RTAzg6auFKvBi/xr0ehq+Vc6J p/nhyF+HyiS8qYQYANCFO5P
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN NS      ns1.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN NS      ns3.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN NS      ns2.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN NS      ns4.gnu.org.
2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN RRSIG   NS 7 14 60 20221104202022 20211104202022 367281sMl6ea5Are3LAVRN9TPQaor63korNX vNmhHnbhOlhkG7TJ6ultO37lP+maZmf3IvJSDDt/e7POrFCFS6xyZ0w0 Cj/jE
;; Received 995 bytes from 2001:470:142::163#53(ns2.gnu.org) in 44 ms

li:/a $ command dig -x 2001:470:142:5::116

; <<>> DiG 9.11.5-P4-5.1+deb10u6-Debian <<>> -x 2001:470:142:5::116
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9015
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;6.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. IN PTR

;; ANSWER SECTION:
6.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa. 60 IN PTR wildebeest1p.gnu.org.

;; Query time: 136 msec
;; SERVER: 23.239.24.5#53(23.239.24.5)
;; WHEN: Sun Nov 07 23:16:11 EST 2021
;; MSG SIZE  rcvd: 135

$ host 2001:470:142:5::116
6.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.5.0.0.0.2.4.1.0.0.7.4.0.1.0.0.2.ip6.arpa domain name pointer wildebeest1p.gnu.org.

If reverse ipv6 breaks, we should make exim only use ipv4 so we don't look like a bad server when others lookup our ip. That can be done with this in the main options:

dns_ipv4_lookup = *

and for that to work properly, if the exim servers accepts incoming mail, we should unpublish our aaaa record, so that we don't fail to verify incoming emails on ipv6 due to the exim setting.