IPv6 이름 확인을 시도하는 동안 컬을 방지하는 방법

IPv6 이름 확인을 시도하는 동안 컬을 방지하는 방법

Docker 컨테이너에서 "다른 컨테이너 이름"을 가져오려고 하면 컬은 먼저 이름을 IPv6으로 확인하려고 시도합니다. ipv6을 통해 웹 서버에 접근할 수 없기 때문에 몇 초의 지연이 발생할 수 있습니다.

컨테이너 인터페이스에서 링크 로컬 주소를 제거하고 컨테이너의 lo 및 eth0 인터페이스에서 ipv6을 비활성화했습니다. 컬은 여전히 ​​이름을 IPv6으로 먼저 확인하려고 시도합니다(curl -4를 통해 강제로 실행하지 않는 한).

이것은 잘못된 것 같습니다. ipv6이 비활성화되었음에도 불구하고 컬이 이름을 ipv6으로 확인하려고 시도하는 이유는 무엇입니까?

답변1

나는IPv6을 전역적으로 비활성화하면 작동하지 않습니다.

여전히 5초의 "초기화" 지연이 발생합니다. 인수
-4유효합니다. (명령과 동일 wget)

또한 iptables가 IPV6 트래픽을 거부하도록 강제해 보았습니다.
↪ 아무것도 변하지 않았습니다

도메인 명 시스템

테스트 결과 이러한 지연의 원인은 이름 확인이었습니다.
IP 기반 URL을 컬링하면 즉시 수행됩니다.

이상하게도 이름 확인 자체는 nslookup즉각적입니다(IPV6 응답은 포함되지 않음).

답변2

/etc/gai.conf편집하고 주석 처리를 제거하여 이 동작을 변경할 수 있습니다 precedence ::ffff:0:0/96 100.

그러나 이는 단지 curl.

관련 정보