IPv6 prefix priorities defined in gai.conf(5) and hardcoded defaults in getaddrinfo(3) follow the priorities defined in RFC 3484 (2003) while there's much newer RFC 6724 (2012) that obsoleted the former. getaddrinfo.c https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/posix/getaddrinfo.c;hb=8bc3f94a062776abfaf14201fba37bea5328bf92#l1305 gai.conf: https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/gai.conf;h=4616ed005b2e064175c88609b6d6022a6da4d5d8;hb=115411772b189e9e41a97618816edd66f0a9a620 Contents of the latter should be updated to the following (comments removed for clarity), same for getaddrinfo.c except these need encoding into C structures: # RFC 6724, section 2.1 Policy Table - Label label ::1/128 0 label ::/0 1 label ::ffff:0:0/96 4 label 2002::/16 2 label 2001::/32 5 label fc00::/7 13 label ::/96 3 label fec0::/10 11 label 3ffe::/16 12 # RFC 6724, section 2.1 Policy Table - Precedence precedence ::1/128 50 precedence ::/0 40 precedence ::ffff:0:0/96 35 precedence 2002::/16 30 precedence 2001::/32 5 precedence fc00::/7 3 precedence ::/96 1 precedence fec0::/10 1 precedence 3ffe::/16 1
The address selection rules have been updated as well.