Curl은 기본적으로 ipv6에서 작동하지 않습니다.

Curl은 기본적으로 ipv6에서 작동하지 않습니다.

성공하지 못한 채 ipv6 주소를 컬링하려고 합니다.

내가 말하려고 하면:

곱슬https://google.com

나는 시간 초과를 기다리고network unreachable

강제로 하면 ipv4모든 것이 괜찮습니다.

컬-4https://google.com

그런 다음 ipv6을 다음과 같이 강제하면 :

컬-6https://google.com

나는 얻다:

컬: (7) 2800:3f0:4001:806::1005에 연결할 수 없습니다: 네트워크에 연결할 수 없습니다.

ipv6주소를 파싱하는 것과 관련이 있는 것 같아요.

일부 Linux 배포판의 최신 버전을 사용하는 다른 컴퓨터에서 이러한 요청이 제대로 작동하는 것을 보았기 때문에 내가 사용 중인 것에 뭔가 작업을 하고 있는 것 같은데 Ubuntu 10.10이 문제는 해결되지 않았습니다.

option: 을 사용하지 않고 정상적으로 컬링할 수 있기를 원합니다 . 주소를 올바르게 컬링하려면 -4무엇을 수정해야 합니까 ?ipv6

답변1

IPv6 주소를 확인하는 것은 문제가 되지 않습니다. 컬이 네트워크 2800:3f0:4001:806::1005에 도달할 수 없다고 보고하므로 이름 확인이 제대로 작동합니다. 이는 이름 변환이 실제로 성공했음을 나타냅니다. 이는 이름 조회 오류와 다릅니다.

 $ curl -6 http://does.not.exist.foo.
 curl: (6) Couldn't resolve host 'does.not.exist.foo.'

IPv6 주소에 도달하려면 대상 주소에 대한 경로가 있어야 하며 IPv6 연결이 있는 연결은 거의 없습니다. 이 글을 쓰고 있는 컴퓨터에는 v6 라우팅이 거의 없습니다.

$ route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 0     0 wlan0
ff00::/8                       ::                         U    256 0     0 wlan0

이는 귀하와 내가 내 로컬 네트워크에 액세스하는 방법을 알고 있다는 것을 의미하며 그게 전부입니다. 이것을 내 IPv4 라우팅과 비교해 보세요.

$ route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0

이는 매우 중요한 라우팅 정보를 얻었음을 나타냅니다. 나는 192.168.1.1의 기본 라우터에 패킷을 전달하여 명시적인 경로 없이 어디로든 이동하는 방법을 알고 있습니다.

이름 확인이 제대로 작동하고 있습니다. 대상 네트워크에 대한 IPv6 경로가 필요하지만 이 기능을 제공하는 장소가 너무 적습니다.

답변2

ifconfig로 시작하는 줄의 출력을 확인하세요 inet6 addr. 귀하의 컴퓨터에 실제로 작동하지 않는 IPv6 주소가 할당되었을 수 있으며, Linux는 이제 작동 중인 IPv4 주소 대신 작동하지 않는 주소를 사용하려고 합니다.

답변3

다른 네트워크에 연결해 보았는데 작동했습니다.

그동안 OS를 MINT v15로 업데이트했는데 문제가 지속됩니다.

사실, 한 번만 하면 curl모든 것이 괜찮을 것이기 때문에 상황은 더 이상해집니다. 두 번째로 하면 똑같은 오류가 발생하기 때문입니다.

결국 ISP에 전화를 걸었고 그들은 모뎀을 공장 설정으로 설정하고 소프트웨어를 업데이트했습니다.

이제 모든 것이 잘 돌아가고 있는 것 같습니다.

답변4

나와 같은 사람이 Google에서 이 문제를 발견했다면 문제를 해결하기 위해 IPv6에 대한 방화벽 규칙을 조정해야 했습니다.

기본적으로 저는 들어오는 체인의 모든 것을 차단했습니다. 연결을 허용하는 규칙을 추가한 후 핑 요청과 localhost IPv6 연결에서 오는 모든 것이 작동하기 시작했습니다!

관련 정보