클라이언트 응용 프로그램은 IPv4 또는 IPv6을 사용하는 방법을 어떻게 알 수 있습니까?


18

서버 / 컴퓨터 / 사용자 / 응용 프로그램은 IPv6 주소 및 IPv4 주소로 인터넷을 통해 리소스를 요청하는 방법을 알고 있습니까?

답변:


24

클라이언트가 가장 먼저 결정하는 것은 사용 가능한 프로토콜입니다. IPv4와 IPv6을 모두 사용할 수 있다고 가정합니다 (그렇지 않으면 선택할 프로토콜에 대한 대답은 간단합니다). 그러면 A (IPv4 주소) 및 AAAA (IPv6 주소) 레코드 모두에 대한 DNS 조회를 수행합니다. 하나의 유형 만 리턴되면이를 사용합니다. IPv4 및 IPv6 주소가 모두 반환되면 기본 동작은 클라이언트 소프트웨어에 따라 다릅니다. 일반적으로 RFC 3484 가 사용됩니다.

공식 표준에 따르면 IPv6을 선호해야하지만 IPv6을 잘못 구성한 일부 (0.01 % 이하) 시스템이 있기 때문에 클라이언트가 더 똑똑해졌습니다. 요즘 대부분의 브라우저는 IPv6을 통해 연결을 시도하지만 300 밀리 초 이내에 작동하는 연결이 없으면 IPv4를 통해 병렬로 연결을 시도합니다. 그런 다음 첫 번째 연결이 사용됩니다. 이에 대해서는 Happy Eyeballs RFC 에서 다룹니다 .

애플은 이것을 라이온으로 바꾸었다. 운영 체제는 실제로 모든 연결의 성능을 추적하며 IPv4 연결이 IPv6 연결보다 대기 시간이 낮다고 판단되면 IPv4를 선호하기 시작합니다. 그러나 IPv4 연결이 느려지면 IPv6으로 다시 전환 될 수 있습니다. 한 번 봐 가지고 이 메일 링리스트 스레드 이 기능에 대한 논의를.

사용자에게는 IPv4 또는 IPv6이 사용되는 한 중요하지 않습니다. IPv4와 IPv6은 동일하게 제공되어야합니다. 웹 사이트는 IPv6 등이 아닌 IPv4에서도 동일하게 작동해야합니다.

IPv4는 앞으로 몇 년 동안 사용됩니다. 사용할 새로운 IPv4 주소가 더 이상 없기 때문에 새로운 서비스 (웹 사이트, 게임 등)가 IPv6을 통해서만 배포되면 사용할 수 없게됩니다. 그리고 어느 시점에서 IPv4를 통해 작동하는 모든 것은 IPv6을 통해 작동합니다. 이 시점에서 IPv4를 비활성화하면 시간과 비용이 절약됩니다 (하나만으로도 두 개의 프로토콜을 유지하는 이유는 무엇입니까?).


1
이것이 작성된 후 RFC 3484는 RFC 6724에 의해 폐기되었습니다 .
Michael Hampton

사용 가능한 프로토콜을 어떻게 결정합니까? apt-get update예를 들어 ipv6 호스트에 연결하려고 시도하는 임의의 동작을 보았지만 호스트 자체에는 로컬 링크 주소를 제외하고 IPv6 주소가 없습니다.
Halfgaar

1
소스 및 대상 주소 선택 (RFC 6724)에 의해 처리됩니다. 귀하의 경우 호스트가 DNS에서 AAAA 레코드를보고 해당 목적지 주소를 선택한 다음 해당 목적지와 함께 사용할 수있는 소스 주소가 없다는 것을 알게 된 다음 IPv4로 폴백합니다.
샌더 스테판

2

현재 사용중인 중간 단계를 터널링이라고합니다. 기본적으로 IPv6 패킷은 IPv4 캡슐화에서 제거되어 전체 IPv6 네트워크에서 다른 쪽을 보낼 수있을 때까지 IPv4 패킷 내부로 이동합니다. 물론 그보다 훨씬 더 복잡하지만 기본 개념은 전반적으로 동일합니다.

점점 더 많은 장치가 IPv6를 사용할 수있게되고 사람들이 주소 사용에 익숙해 짐에 따라 IPv6의 사용량이 늘어날 것입니다. IPv6 공간이 고가의 상품이 될 때까지 IPv6가 진정 수용되고 SMB 및 개인 시장에서 대규모로 출시 될 것이라고 믿지 않습니다 (개인 의견).

IPv6가 압도적 인 대다수의 트래픽에 전력을 공급하는 상당히 먼 미래의 어느 시점에서, 나는 IPv4 트래픽이 일반 IPv6 패킷 내에 캡슐화되어야하고 터널 브로커가 광범위한 IPv4 라우팅 / IP 할당 부족.


1
나는 이것이 질문에 대답하지 않는다고 생각한다 ... 게다가 : 기본 IPv6이 현재 어디서나 사용 가능하기 때문에 핵심 IPv6 인터넷에서 터널링이 빠르게 사라지고 있습니다. 고객에게는 몇 가지 터널링이있을 것이지만, 시스템을 선택할 때 선택하는 것과는 아무런 관련이 없습니다. PS : IPv4-IPv6 터널링이 이미 나타납니다. 일부 케이블 인터넷 사업자는 올해 DS-Lite를 배포하고 있습니다.
샌더 스테판

나는 큰 데이터 센터를 위해 일을하고 모든 산업의 연락처를 가지고 있고, 내 경험은 IPv6를이다 확실히 하지 사방 지금. 격차를 해소하기 위해 터널링이 존재하며 대부분의 최종 사용자에게 아직 IPv6 할당이없는 것을 고려하면 여전히 관련이 있습니다.
Garrett

3
터널링은 실제로 사용되지만 가능하면 피해야합니다. 아직 고객에게 적절한 IPv6를 제공하지 않는 ISP는 업무를 수행하지 않습니다 ... 어쨌든 : 문제는 클라이언트 응용 프로그램이 IPv4와 IPv6 중에서 선택하는 방법에 관한 것이며 네트워크가 IPv6 연결을 갖는 방식과는 아무런 관련이 없습니다 그것이 클라이언트 응용 프로그램이 아닌 라우터의 작업이기 때문입니다. 클라이언트 응용 프로그램은 로컬 네트워크에서 사용 가능한 모든 것을 사용합니다.
샌더 스테판

십자군 내 친구
Garrett

-2

앱이 선택 방법을 결정하는 방법을 묻고 있다고 생각합니다. 프로그램 측면에서 응용 프로그램 구현에 따라 다릅니다. 예를 들어 코더가 IPv6을 IPv4보다 우선 순위가 높은 경우 먼저 getipv6addr ()을 사용합니다. 그것이 구성되지 않거나 실패하면 getaddr () 등을 사용하려고 시도합니다.이를 기반으로 앱은 먼저 IPv6을 통해 요청을 보내거나 그 반대의 경우도 마찬가지입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.