View Issue Details

IDProjectCategoryView StatusLast Update
0003136Rocky-Linux-9Generalpublic2025-12-10 14:45
ReporterGraham Leggett Assigned ToNeil Hanlon  
PrioritynormalSeveritymajorReproducibilityrandom
Status acknowledgedResolutionopen 
OSRockyOS Version9.1 
Summary0003136: IPv6 unreliable - Failed to download metadata for repo 'baseos'
DescriptionIPv6 sometimes works, sometimes does not.

From time to time on an IPv6 only host, dnf fails as follows:

Rocky Linux 9 - BaseOS 0.0 B/s | 0 B 00:40
Errors during downloading metadata for repository 'baseos':
  - Curl error (6): Couldn't resolve host name for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [Could not resolve host: mirrors.rockylinux.org]
Error: Failed to download metadata for repo 'baseos': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [Could not resolve host: mirrors.rockylinux.org]
Steps To ReproduceRun "dnf update" on an IPv6 only host.
TagsNo tags attached.

Activities

Graham Leggett

Graham Leggett

2023-05-03 10:09

reporter   ~0003169

Looks like the failure is limited to when the unbound resolver is locally installed and used.
Neil Hanlon

Neil Hanlon

2023-05-03 12:37

administrator   ~0003170

We've had some intermittent reports of this but have not been able to nail down a root cause.

How is your IPv6 traffic handled? Is it a direct allocation, or via a 646 tunnel broker like HE.net?

Do you have any firewall rules on your network that would be preventing ICMP6 and/or PMTU traffic from flowing?
Graham Leggett

Graham Leggett

2023-05-03 13:32

reporter   ~0003171

It's an IPv6 only host in a datacentre (specifically Hetzner in DE).

IPv6 works if the DNS points at a Mikrotik router. As soon as DNS is changed to point at a locally installed copy of the unbound nameserver, we fail.

Looking at https://dnssec-analyzer.verisignlabs.com/mirrors.rockylinux.org it seems fastly fails DNSSEC checks. I wonder if resolvers are interpreting this as "DNS name not configured securely, pretend it does not exist".
Neil Hanlon

Neil Hanlon

2023-05-03 14:03

administrator   ~0003172

Thanks for the info, that's helpful.

Let me reach out to Fastly and see if they have some thoughts here. DNSSEC is an ongoing project for us as an infrastructure team, too, but I'm not able to give an ETA at this time.
Graham Leggett

Graham Leggett

2023-05-03 14:50

reporter   ~0003173

In theory DNSSEC missing isn't an error, but if DNSSEC is misconfigured then resolution attempts will throw an error.

Very odd that a CDN doesn't do DNSSEC.
Zulu Echo

Zulu Echo

2023-05-16 15:23

reporter   ~0003334

We have also been working on an ipv6 only network and had this problem on all of our rockylinux installations. We were running Nat64 with ipv6 on the inside and only ipv4 on the external network connection.

By simply using the "-6" parameter with dnf, we succesfully updated without any further issues.
I.E. "dnf -6 update"

Hope this helps someone.
Ronald Wahl

Ronald Wahl

2025-05-05 10:43

reporter   ~0010033

The issue has reappeared. Last week it was still working. Now it's broken:

Error: Failed to download metadata for repo 'devel': Cannot prepare internal mirrorlist: No URLs in mirrorlist
Ronald Wahl

Ronald Wahl

2025-05-05 10:46

reporter   ~0010034

ignore my last comment - this was supposed for a different issue report
Graham Leggett

Graham Leggett

2025-06-04 12:28

reporter   ~0010363

Some more info after this happened again.

As per https://dnsviz.net/d/mirrors.rockylinux.org/dnssec/ the DNS name mirrors.rockylinux.org is hosted on DNS server that support both IPv6 and IPv4.

The CNAME however points at Fastly, which for some bizarre reason has DNS that only supports IPv4 in 2025.

The IPv6 only host cannot reach the IPv4 only DNS, and so we get "Could not resolve host".

Fastly needs to fix their DNS.
Chris Short

Chris Short

2025-06-04 15:06

reporter   ~0010396

I recall this being an issue in CentOS 6 and/or 7. The preferred addressing is IPv6 when it's enabled. Is there something in the path that isn't IPv6-enabled, which is dropping the requests before they reach Fastly. If you run ''mtr -6 mirrors.rockylinux.org'', it should show when the break is happening. If the break is happening with Unbound locally, I'd love to see how it's configured.

I notice that Fastly has IPv6 addresses when querying public resolvers. I'm quite curious about what you see in ''mtr'' and how DNS is configured in your environment. Can you share any of that info?
Graham Leggett

Graham Leggett

2025-06-04 17:14

reporter   ~0010429

Look closely at the very last entry on the bottom right of https://dnsviz.net/d/mirrors.rockylinux.org/dnssec/ - you see the name rockylinux.map.fastly.net has an AAAA record, but this AAAA record is only present on a series of four DNS servers, all four of which have IPv4 addresses, and zero of which have IPv6 addresses like everything else.

An IPv6-only name server cannot contact the IPv4-only name servers of rockylinux.map.fastly.net, and so the lookup returns SERVFAIL.

Lots of people don't see this because while the host might be IPv6-only, and the network might be IPv6 only, if the DNS is dual stack then the IPv4 addresses are reachable and the request "works".

If you have a pure IPv6 host, a pure IPv6 network, AND a pure IPv6 DNS server, you get SERVFAIL.
Graham Leggett

Graham Leggett

2025-06-06 14:20

reporter   ~0010462

One further detail - has Rockylinux followed the instructions here:

https://www.fastly.com/documentation/guides/full-site-delivery/domains-and-origins/enabling-dualstack-connections/

"Enabling dualstack on customer-specific hostnames
If you have a customer-specific hostname, contact support and we'll provide you with a parallel IPv6 map or enable dualstack on your current one."
Graham Leggett

Graham Leggett

2025-12-10 13:14

reporter   ~0012244

This is still broken on rocky10.

The mirrors.rockylinux.org DNS name is CNAME'd to a DNS name that is hosted exclusively on IPv4, and so always fails on an IPv6 host.
Neil Hanlon

Neil Hanlon

2025-12-10 13:47

administrator   ~0012245

> The mirrors.rockylinux.org DNS name is CNAME'd to a DNS name that is hosted exclusively on IPv4, and so always fails on an IPv6 host.

No it's not, not has it ever.

```
╰─⊙ host mirrors.rockylinux.org 130 ↵
mirrors.rockylinux.org is an alias for dualstack.dl.map.rockylinux.org.
dualstack.dl.map.rockylinux.org is an alias for rockylinux.map.fastly.net.
rockylinux.map.fastly.net has address 199.232.198.132
rockylinux.map.fastly.net has address 199.232.194.132
rockylinux.map.fastly.net has IPv6 address 2a04:4e42:4d::644
rockylinux.map.fastly.net has IPv6 address 2a04:4e42:4c::644
```
Neil Hanlon

Neil Hanlon

2025-12-10 13:48

administrator   ~0012246

Furthermore:

```
╰─➤ curl -6 https://mirrors.rockylinux.org/mirrorlist
# either path=, or repo= and arch= must be specified
```

Let's not confuse issues here. IPv6 works perfectly fine. Strict DNSSEC is the issue you're running up against.
Graham Leggett

Graham Leggett

2025-12-10 14:18

reporter   ~0012247

For the avoidance of doubt, I'm not talking about the mirror address, I am rather talking about the DNS name rockylinux.map.fastly.net which is hosted on IPv4 only - that means only IPv4 name servers - even though the resolved name points at an IPv6 address.

If you can't reach the name server (because the name server is IPv4 only), you can't resolve the AAAA record, even if the AAAA record is present.

The dnsviz site draws the problem on a diagram, attached below.

https://dnsviz.net/d/mirrors.rockylinux.org/dnssec/

The red oval on the right (the AAAA record) is hosted exclusively on the list of IPv4 nameservers on the red oval on the left (the servers).

If you host an IPv6 AAAA record on an IPv4 name server, it won't work.

For an example of how it should be configured, the mirrors.rockylinux.org address is correctly hosted by both IPv4 and IPv6 name servers, and thus is accessible to both IPv4 and IPv6 hosts. You're hosting your own DNS correctly, fastly is not.
Graham Leggett

Graham Leggett

2025-12-10 14:28

reporter   ~0012248

This is an IPv6 only host, querying an IPv6 only name server:

[root@robinhood ~]# drill -6 mirrors.rockylinux.org AAAA
;; ->>HEADER<<- opcode: QUERY, rcode: SERVFAIL, id: 38988
;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; mirrors.rockylinux.org. IN AAAA

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 1236 msec
;; SERVER: ::1
;; WHEN: Wed Dec 10 16:26:06 2025
;; MSG SIZE rcvd: 40
Neil Hanlon

Neil Hanlon

2025-12-10 14:45

administrator   ~0012249

> If you host an IPv6 AAAA record on an IPv4 name server, it won't work.

This is incorrect. AAAA records served by IPv4-only authoritative nameservers work fine--this is standard DNS behavior. The issue you're experiencing is that your recursive resolver is IPv6-only and cannot contact our IPv4-only authoritative nameservers. The solution is to configure a dual-stack recursive resolver or use NAT64/DNS64. This is an edge-case resolver configuration issue affecting users running IPv6-only recursive resolvers without NAT64/DNS64--a deployment scenario that represents a very small fraction of our user base, and one that has straightforward resolver-side solutions.

That said, I did reach out to Fastly last year to be added to their beta program for dualstack authoritative DNS, and we _do_ have a dualstack map we can attempt to use. I have been reluctant to make any change in-situ due to the small gain for some users compared to the risk of affecting all the other traffic we serve on a daily basis--particularly when there are fairly easy workarounds on the end of the user encountering such an issue, namely: using a dual stack resolver capable of reaching Fastly's existing DNS infrastructure, hardcoding a list of mirrors in the repofile, or several other options.

I am still reluctant to make this change in the current service, but as we have been working on plans to replace the mirrormanager infrastructure entirely with new systems and CDN config, I am intending to incorporate this change into that project. Note this will only affect mirrors.rockylinux.org and not dl/download(s).rockylinux.org. In the interim, I can look at creating a new CNAME to this map on an alternative URL so you can test it on your infrastructure to ensure it works as we hope it will--though I can't make promises on when that might be live.

--Neil

Issue History

Date Modified Username Field Change
2023-05-02 21:15 Graham Leggett New Issue
2023-05-03 10:09 Graham Leggett Note Added: 0003169
2023-05-03 12:37 Neil Hanlon Assigned To => Neil Hanlon
2023-05-03 12:37 Neil Hanlon Status new => acknowledged
2023-05-03 12:37 Neil Hanlon Note Added: 0003170
2023-05-03 13:32 Graham Leggett Note Added: 0003171
2023-05-03 14:03 Neil Hanlon Note Added: 0003172
2023-05-03 14:50 Graham Leggett Note Added: 0003173
2023-05-16 15:23 Zulu Echo Note Added: 0003334
2025-05-05 10:43 Ronald Wahl Note Added: 0010033
2025-05-05 10:46 Ronald Wahl Note Added: 0010034
2025-06-04 12:28 Graham Leggett Note Added: 0010363
2025-06-04 15:06 Chris Short Note Added: 0010396
2025-06-04 17:14 Graham Leggett Note Added: 0010429
2025-06-06 14:20 Graham Leggett Note Added: 0010462
2025-12-10 13:14 Graham Leggett Note Added: 0012244
2025-12-10 13:47 Neil Hanlon Note Added: 0012245
2025-12-10 13:48 Neil Hanlon Note Added: 0012246
2025-12-10 14:18 Graham Leggett Note Added: 0012247
2025-12-10 14:18 Graham Leggett File Added: rocky10-fastly-ipv4-only.png
2025-12-10 14:28 Graham Leggett Note Added: 0012248
2025-12-10 14:45 Neil Hanlon Note Added: 0012249