Tell me more ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I installed Google chrome browser on Fedora 18. Now when I try update softwares using yum upgrade, it report the following error and I can't get chrome updated.

http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed to connect to 2404:6800:4005:c00::88: Network is unreachable"

It looks like dl.google.com is resolved to an IPv6 address, but I don't use IPv6, and ping dl.google.com returns an IPv4 address as expected.

# ping dl.google.com
PING dl.l.google.com (74.125.128.93) 56(84) bytes of data.

What's the possible reason, and how can I fix this?

share|improve this question
2  
Not sure about other implementations of ping, but at least the ping from iputils only uses IPV4, ping6 uses IPv6. – Wieland Mar 20 at 19:59

2 Answers

I don't know about yum. Sounds like it's missing an implementation of Happy Eyeballs, i.e. fallback to ipv4. There is an ipv6 address...

$ host dl.google.com
dl.google.com is an alias for dl.l.google.com.
dl.l.google.com has address 173.194.34.132
...many randomly permuted addresses...
dl.l.google.com has address 173.194.34.137
dl.l.google.com has IPv6 address 2a00:1450:400c:c06::5d

Apparently there's a workaround for when this goes wrong, which is to edit /etc/gai.conf and uncomment the line precedence ::ffff:0:0/96 100. This gives precedence to ipv4 addresses.

I think normally it should just work. You'll have a link-local ipv6 address, but a site-local ipv4 address (or a public one without NAT). The libc DNS resolver should then prefer ipv4 destinations. This is specified in RFC 3484.

I wonder if this is a Teredo-style problem. Has your router (e.g. an Apple Airport) assigned you a global IPV6 address through an unreliable tunnel? My computer (no global ipv6) looks like this:

$ ip addr |grep inet6
    inet6 ::1/128 scope host 
    inet6 fe80::215:afff:fe9f:fcd2/64 scope link
share|improve this answer
weird, yum provides "/etc/gai.conf" said it's in glibc package, I've already installed glibc, but I don't have gai.conf file under /etc. This's a gai.conf file under /usr/share/doc/glibc-common-2.16 which comes from glibc-common package – LiuYan 刘研 Mar 21 at 3:52
my router is TP-Link WRT841N, it only understand IPv4. ip addr shows inet6 entries, but they're already there before (i probably refuse to use IPv6 in my life, i don't need it). – LiuYan 刘研 Mar 21 at 4:03
created /etc/gai.conf manually with the following content: reload yes precedence ::ffff:0:0/96 100, but i still got same error – LiuYan 刘研 Mar 21 at 4:57

You can completely disable IPv6 by adding

net.ipv6.conf.all.disable_ipv6 = 1

to a file in /etc/sysctl.d, for example /etc/sysctl.d/disable-ipv6.conf.

share|improve this answer
well, i added this config, restart computer, and ip addr does not show inet6 entries anymore, but the error still occurs. – LiuYan 刘研 Mar 21 at 15:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.