Fedora 18에 Google 크롬 브라우저를 설치했습니다. 이제 소프트웨어를 업데이트하려고 하면 yum upgrade
다음 오류가 보고되고 Chrome을 업데이트할 수 없습니다.
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"
dl.google.com이 IPv6 주소로 확인되는 것처럼 보이지만 IPv6을 사용하지 않고 ping dl.google.com
IPv4 주소가 예상대로 반환됩니다.
# ping dl.google.com
PING dl.l.google.com (74.125.128.93) 56(84) bytes of data.
가능한 이유는 무엇입니까? 이 문제를 어떻게 해결할 수 있나요?
답변1
기본적으로 yum은 호스트/도메인 이름의 IPv4 및 IPv6 주소를 모두 확인합니다. 아래의 wireshark 스크린샷을 참조하세요. (저는 Python 프로그램을 이해하지 못하므로 네트워크 트래픽 캡처는 yum이 호스트 이름을 확인하는 방법을 알아내는 유일한 방법입니다.)
IPv4 주소만 확인하려면 추가 ip_resolve=4
하거나 ip_resolve=ipv4
구성하기 만 하면 됩니다 yum.conf
( man yum.conf
자세한 도움말은 참고자료 참조). Fedora의 경우 루트 계정을 사용하여 터미널에서 다음 명령을 실행합니다.
echo "ip_resolve=4" >> /etc/yum.conf
IPv6 주소만 확인하려면 ip_resolve=4
위의 내용을 로 변경하세요 ip_resolve=6
.
기타 프로그램
wget
그리고curl
# To resolve IPv4 address only
wget -4
curl -4
# To resolve IPv6 address only
wget -6
curl -6
host
host
-4
및 옵션 도 있지만 해당 의미는 호스트 이름을 쿼리하기 위해 IPv4/IPv6 전송을 사용하도록 -6
강제하는 wget 및 컬과 다릅니다 .host
# To resolve IPv4 address only
host -t A
# To resolve IPv6 address only
host -t AAAA
답변2
=편집=
그것은 밝혀yum
예전에는ipv4 및 ipv6을 올바르게 시도하고 있습니다. glibc의 dns 확인자는 컴퓨터에 라우팅 가능한 ipv6 주소가 없음을 올바르게 감지하므로 ipv4 주소를 선호합니다. 그러나 glibc는 여전히 ipv6 주소를 반환합니다. 기본 설정 목록의 맨 아래에 ipv6 주소를 넣습니다.
그래서 yum
마침내 ipv6 주소를 시도했습니다. 안타깝게도 yum
마지막 오류만 표시되는 것 같습니다. 따라서 yum
ipv6에 대한 오류만 표시됩니다. 이미 실패할 것으로 예상했습니다! -ipv4에 대한 오류가 무엇인지 표시하지 않습니다.
= 이전 답변 - 이 질문에 대해 완전히 틀렸습니다 =
모르겠어요 흠. Happy Eyeballs 구현이 누락된 것처럼 오류가 발생합니다. 즉, ipv4로 폴백됩니다. 거기예IPv6 주소...
$ 호스트 dl.google.com dl.google.com은 dl.l.google.com의 별칭입니다. dl.l.google.com의 주소는 173.194.34.132입니다. ...무작위로 배열된 많은 주소... dl.l.google.com의 주소는 173.194.34.137입니다. dl.l.google.com의 IPv6 주소는 2a00:1450:400c:c06::5d입니다.
문제가 발생했을 때 해결 방법이 있는 것 같습니다. /etc/gai.conf를 편집하고 해당 줄의 주석 처리를 제거하는 것입니다 precedence ::ffff:0:0/96 100
. 이렇게 하면 ipv4 주소에 우선순위가 부여됩니다.
나는 일반적으로 작동해야한다고 생각합니다. 링크-로컬 ipv6 주소와 사이트-로컬 ipv4 주소(또는 NAT가 없는 공용 주소)가 있습니다. libc DNS 확인자는 ipv4 대상을 선호해야 합니다. 이는 RFC 3484에 지정되어 있습니다.
이것이 Teredo 스타일 문제인지 궁금합니다. 라우터(예: Apple Airport)가 신뢰할 수 없는 터널을 통해 글로벌 IPV6 주소를 할당했습니까? 전역 IPv6가 없는 내 컴퓨터는 다음과 같습니다.
$ IP 주소|grep inet6 inet6::1/128 범위 호스트 inet6 fe80::215:afff:fe9f:fcd2/64 범위 링크
답변3
다음을 추가하면 IPv6를 완전히 비활성화할 수 있습니다.
net.ipv6.conf.all.disable_ipv6 = 1
/etc/sysctl.d
/etc/sysctl.d/disable-ipv6.conf
예를 들어 파일