I’m running some sort of an experimental KVM guest with IPv6 connectivity only. Since it still had Ubuntu Server 13.10 installed I tried to run a do-release-upgrade
on it to upgrade it to the latest Ubuntu Server release – which at the time of this writing is 14.10. However, the do-release-upgrade
command kept saying that no new release could be found:
root@ipv6lab:~# do-release-upgrade Checking for a new Ubuntu release No new release found
I verified the /etc/update-manager/release-upgrades
configuration file but it already contained the Prompt=normal
line. After doing some digging I found out that the do-release-upgrade
tries to connect to http://changelogs.ubuntu.com but there is no AAAA DNS record for this host. Essentially, this means that an Ubuntu server can’t be upgraded to a newer release over IPv6 because it can’t connect to the update info site over IPv6.
root@ipv6lab:~# dig +short changelogs.ubuntu.com A 91.189.95.36 root@ipv6lab:~# dig +short changelogs.ubuntu.com AAAA root@ipv6lab:~#
Interestingly, the Ubuntu APT repository update site is accessible over IPv6, which is why something like apt-get update
runs fine on IPv6-only Ubuntu servers.
I solved the problem by creating an IPv6 to IPv4 HTTP proxy using HAProxy on a IPv4/IPv6 dual stack server. The proxy listens on an IPv6 address and “tunnels” all requests to changelogs.ubuntu.com using the IPv4 address of the changelogs server. I was able to upgrade to a newer Ubuntu release this way on an IPv6-only Ubuntu server.
If you want to use my Ubuntu changelogs-proxy to release-upgrade your IPv6-only Ubuntu server, add this entry to the /etc/hosts
file:
2a00:41c0:185:19:87:48:0:35 changelogs.ubuntu.com
Running do-release-upgrade
now should display something like:
root@ipv6lab:~# do-release-upgrade Checking for a new Ubuntu release Your Ubuntu release is not supported anymore. For upgrade information, please visit: http://www.ubuntu.com/releaseendoflife Get:1 Upgrade tool signature [198 B] Get:2 Upgrade tool [1,146 kB] Fetched 1,146 kB in 0s (0 B/s) authenticate 'trusty.tar.gz' against 'trusty.tar.gz.gpg' extracting 'trusty.tar.gz'
Use this at your own risk and don’t forget to undo the changes in /etc/hosts
!
I’d really appreciate if Canonical could add IPv6 connectivity to its changelogs site. I mean… come on, it’s 2014 and IPv6 isn’t that exotic anymore after all, right?
Hello,
I’ve already reported this here:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1376088
Let’s hope Canonical will fix it! :) You’re right, they should really support IPv6 in 2014.