Windows 8의 IPv6 기반 인터넷 연결 지원

'World IPv6 Launch'가 얼마 남지 않은 이 시점에서 IPv6를 지원하는 Windows 8 Release Preview에 대해 알아보는 것이 필요할 것 같습니다. 이 글은 핵심 네트워킹 프로그램 관리 팀의 Christopher Palmer가 작성했습니다.
- Steven

IPv4는 수십 년 동안 인터넷 연결에 사용된 인터넷 프로토콜입니다. IPv4는 최초 설계자의 놀라운 예지력 덕분에 인터넷의 광범위한 확산에 중요한 역할을 했지만 대량의 로드와 확장성을 염두에 두고 설계된 것이 아니기 때문에 인터넷이 성장하면서 그 한계를 보이기 시작했습니다. 또한 인터넷 서비스 공급자들의 IPv4의 유지 비용이 나날이 증가하고 있으므로 향후 인터넷에 연결된 PC 및 장치의 폭발적인 증가에 대비하기 위해서는 재검토가 필요합니다.

지난 수년간 Microsoft를 비롯한 업계에서는 다양한 장치, 서비스 및 네트워크 인프라에 걸쳐 완전히 새로운 버전의 인터넷 프로토콜 IPv6를 내놓기 위해 노력해 왔습니다. Microsoft는 Windows XP SP3 이후 Windows 버전부터 IPv6를 지원하도록 함으로써 IPv6로의 전환을 가능하게 했습니다. Windows 8은 이러한 대혁신이 일어나더라도 사용자 및 사용자의 앱이 안정적으로 연결되도록 제작되었습니다.

IPv4의 한계

먼저 기본적인 사항부터 살펴보겠습니다. 우리가 www.bing.com과 같은 유명 웹 사이트를 브라우징할 때 사이트 이름은 23.3.105.97과 같은 IP 주소로 변환됩니다. IP 주소는 개념적으로 전화 번호와 비슷합니다. 모든 연락처마다 전화 번호가 있듯이 인터넷에 연결하는 모든 것에는 하나 이상의 IP 주소가 있습니다. 인터넷의 “전화 디렉터리”는 DNS(Domain Name System)입니다. 이름이 제공되면 DNS는 이름을 일련의 IP 주소로 변환합니다.

IPv4에서 제공하는 IP 주소는 약 40억 개에 불과합니다. 1970년대에는 40억 개가 엄청나게 많은 것처럼 보였습니다. 하지만 2015년이 되면 PC, 전화, 가전 제품, 자동차, 심지어는 가구까지 약 150억 개의 장치가 인터넷에 연결될 것으로 예상됩니다. IPv4는 이렇게 많은 장치를 인터넷에 연결하기에는 주소가 부족합니다.

최근에 IPv4 주소에 대한 수요가 증가하면서 인터넷 커뮤니티에서는 이렇게 중요한 자원을 "공유"하는 방법을 찾았습니다. IPv4 주소를 공유하는 가장 일반적인 방법은 NAT(네트워크 주소 변환)를 사용하는 것입니다. 이 기능은 대부분의 가정용 라우터에서 제공되며, 가정의 컴퓨터 및 기타 장치로 단일 공용 IPv4 주소를 공유할 수 있게 해 줍니다.

전통적으로 ISP는 각 가정에 단일 IP 주소를 제공합니다. 하지만 이것이 점점 어려워지고 있습니다. IP 주소가 고갈되면서 각 가정마다 고유한 IPv4 주소를 사용할 수 없게 되었습니다. 조만간 도시 또는 국가 전체가 대규모 네트워크 주소 변환을 이용해야 할지도 모릅니다. 인터넷 서비스 공급자는 IPv4를 지원하기 위해 비싸고 복잡한 인프라를 개발해야 할 것입니다. 최종 사용자의 경우 IP 주소가 고갈되면 Bing 같은 위치 기반 서비스가 제대로 운영되지 않고 P2P 응용 프로그램의 성능이 저하될 것입니다.

해결책은 IPv6

Microsoft는 IPv4 주소 고갈로 인한 성능 및 연결성 한계에도 불구하고 최종 사용자가 계속해서 고품질 인터넷 서비스를 이용할 수 있도록 다른 기술 회사와 함께 IPv6 배포를 위해 노력해 왔습니다.

IPv6로 전환할 경우 즉시 얻을 수 있는 가장 큰 이점은 3×1038개의 IP 주소를 사용할 수 있다는 것입니다. 이는 모든 사람마다 수십억 개의 주소를 제공하거나 우주의 모든 별마다 고유한 주소를 제공할 수 있을 정도로 많은 숫자입니다. 따라서 인터넷이 계속해서 성장하고 발전할 수 있습니다. 또한 IPv6는 IPsec를 기본적으로 지원하는 등 보안 및 성능이 대폭 향상됩니다. 왜 IPv5를 사용하지 않는지 궁금한 분들도 있을 것입니다. IPv5를 "건너뛴" 이유에 대해서는 Bing에서 확인하시기 바랍니다.

전체 인터넷을 IPv6로 업그레이드하는 작업은 단번에 해치울 수 있는 일이 아닙니다. 지금까지 오는 데만도 수년이 걸렸으며 앞으로도 몇 년이 더 걸릴 것입니다. 현재, IPv6만을 사용하여 인터넷에 연결하는 장치는 1%에 불과합니다.

IPv4에서 IPv6로 전환되는 동안에 대부분의 네트워크는 다음과 같은 세 가지 범주로 구분될 것입니다.

  • IPv4 전용 네트워크. 대부분의 인터넷 서비스 공급자가 IPv6를 막 지원하기 시작했기 때문에 아직은 대다수가 이 네트워크를 사용하고 있습니다. 인터넷에 연결하는 장치 역시 대부분 IPv4만 지원합니다.
  • IPv4 및 IPv6 네트워크(이중 스택). 인터넷 서비스 공급자가 IPv4 및 IPv6를 모두 사용하여 사용자의 PC를 구성한다는 의미입니다. 케이블 및 전환 중인 전화 접속 네트워킹에서 일반적인 모델입니다.
  • IPv6 전용 네트워크. 인터넷 서비스 공급자가 IPv6만 사용하여 사용자의 장치를 구성한다는 의미입니다. 아직은 수많은 웹 사이트가 IPv4 인터넷만 사용하므로 ISP에서 변환 장치를 사용해야만 IPv6 네트워크에서 IPv4 인터넷으로 액세스할 수 있습니다. 이 장치를 NAT64라고 부릅니다. 이 모델은 모바일 환경에서 인기를 끌고 있는데, 모바일 장치와 통신사의 인프라 간에 한 종류의 인터넷 프로토콜만 사용하면 이중 스택 구성보다 배포가 간단하고 가격이 저렴하기 때문입니다. 또한 모바일 통신사는 IPv4 주소 고갈을 가장 심각하게 받아들이고 있습니다. 다음은 이 구성의 기본 다이어그램입니다.

IPv6 전용 장치의 라우터가 NAT64를 통해 IPv4 인터넷에 연결

현재 여러분이 어떤 연결을 사용하고 있는지 궁금하실 것입니다. 이 글 하단에 이를 보여 주는 위젯이 있습니다.

Windows 8은 모든 유형의 네트워크 구성에서 안정적으로 인터넷에 연결할 수 있도록 설계되었습니다. Windows 8에서 사용자는 Windows PowerShell의 'Resolve-DNSname' cmdlet을 사용하여 DNS 조회를 실행할 수 있습니다. PowerShell을 열고 아래 명령을 실행하면 IPv6 및 IPv4 레코드가 반환되는 것을 볼 수 있습니다. IPv6를 지원하는 웹 사이트만 IPv6 레코드가 있습니다.

IPv6 및 IPv4 레코드

IPv4 전용 네트워크의 Windows 8

IPv4 전용 네트워크에서는 IPv4 주소만을 사용하여 장치가 구성됩니다. 이 모델은 Windows 8에서 기존과 동일하게 작동합니다. 뿐만 아니라 Windows 호스트는 다양한 변환 기술 내의 트래픽을 터널링하여 IPv6 연결을 제공합니다. IPv6 패킷이 IPv4 UDP 패킷에 캡슐화되는 Teredo가 그 예입니다. IPv6 전용 서버 및 서비스가 출현하고 있기 때문에 서버에서 IPv4 주소를 제공하지 않으면 Windows 8은 자동으로 IPv6 연결을 시도합니다. 도메인이 아닌 네트워크에서는 Teredo가 기본적으로 설정되며, 네트워크에서 UDP를 차단하면 Teredo를 사용하지 못할 수 있습니다.

이중 스택 네트워크의 Windows 8

IPv4에서 IPv6로 전환되는 기간 동안에는 이중 스택 네트워크가 가장 일반적인 배포 모델이 될 것입니다. 이중 스택 네트워크에서는 IPv4 및 IPv6 주소를 모두 사용하여 장치가 구성될 것입니다.

우리는 이 전환 기간 동안 일상 업무에 미치는 영향을 최소화하는 일에 가장 많은 신경을 썼습니다. IPv4를 통해 연결하는지 아니면 IPv6를 통해 연결하는지는 문제가 되지 않습니다. 사용자는 IPv6로의 전환에 따른 영향을 받지 않고 인터넷을 사용할 수 있으므로 마음껏 콘텐츠를 즐기면 됩니다.

그와 동시에 우리는 IPv6로의 전환을 계속 진행할 것입니다. 이를 위해, 두 연결 모드를 모두 사용할 수 있을 경우 Windows는 IPv4 연결을 통한 IPv6 연결을 사용합니다.

요약하자면, 우리는 안정적인 사용자 경험과 IPv6로의 전환이라는 두 가지 목표를 갖고 있습니다. 여러분도 추측할 수 있듯이, 이를 위해 적절하게 균형을 맞추는 작업이 필요합니다. 인터넷 커뮤니티에서 이에 대해 수많은 토론이 있었죠.

이렇게 상충하는 목표를 해결하기 위해 Bing.com, Microsoft.com, Xbox.com 등의 유명 웹 사이트에서는 작년에 World IPv6 Day라는 행사를 개최했습니다. 하루 동안 진행된 IPv6 인터넷 테스트 행사에 참가한 웹 사이트에서는 IPv4 외에 IPv6도 사용했습니다.

좋은 소식은 대부분이 별 문제 없이 작동했다는 것입니다. 서버, 최종 사용자 장치, 콘텐츠 배달 네트워크 등 인터넷의 올바른 기능과 관련된 모든 것이 문제 없이 제대로 작동했습니다.

하지만 매우 극소수이기는 하지만(전 세계 인구의 0.01%) IPv6를 잘못 구성한 사람들이 있다는 사실이 확인되었습니다. 아마도 라우터 또는 ISP 문제인 것으로 보입니다. 이는 어찌 보면 당연한 일입니다. IPv6는 완전히 새로운 기술이기 때문에 실수가 발생하기 마련입니다. 그러나 실수를 한 사용자의 입장에서 보면, 일상적인 인터넷 경험에 중대한 문제가 발생할 수 있습니다.

이중 스택 네트워크의 연결 알고리즘에 복원력을 엔지니어링

어떤 장치가 이중 스택 네트워크를 완벽하게 지원하려면 앱이 IPv4 및 IPv6를 통해 트래픽을 전송할 수 있어야 하는 것은 물론이고 OS가 당면한 작업에 적절한 프로토콜을 선택할 수 있어야 합니다. 보다 구체적으로 설명하자면 장치에서 다중 IPv4 및 IPv6 주소를 사용할 수 있고 사용자가 연결하려는 대상도 다중 IPv4 및 IPv6 주소를 사용할 수 있기 때문에 스택이 어떤 소스 및 대상 주소를 사용하여 인터넷에 연결할 것인지 선택할 수 있어야 합니다. 이 기능을 '주소 정렬'이라고 하며, Windows 8에서 이 부분이 강화되었습니다. 가장 뛰어난 연결을 제공하는 주소 쌍을 선택하여 응용 프로그램이 대기할 필요가 없도록 하는 것이 주소 정렬의 개념입니다.

Windows가 이중 스택 웹 사이트에 연결하려고 시도할 때, Windows는 자체 IP 주소와 웹 사이트의 IP 주소를 정렬하여 인터넷 연결에 사용할 주소 쌍을 선택합니다. 표준 버프의 경우 주소 정렬은 RFC 3484에서 표준화됩니다.

아래는 Windows의 주소 정렬 사용법을 보여 주는 다이어그램입니다.

1 - 앱이 www.xbox.com에 연결을 요청합니다. 2 - Windows가 DNS 쿼리를 보내 www.xbox.com을 IP 주소로 변환합니다. 3 - Windows가 RFC 3484에 정의된 알고리즘을 사용하여 DNS 서버의 응답을 정렬합니다. 4 - Windows가 정렬된 목록의 첫 번째 주소를 사용하여 웹 서버에 연결합니다.

     

전통적으로 주소 정렬은 라우터에 의해 올바르게 구성된 Windows를 기반으로 합니다. Windows는 라우터에서 제공하는 라우팅 정보를 분석하고 그 결과를 주소 정렬과 함께 사용하여 명명된 자원에 신속하게 연결합니다. RFC 3484 표준은 라우터에서 IPv6가 구성되면 IPv6를 사용하도록 지정합니다.

World IPv6 Day에서 일부 클라이언트는 IPv6 라우팅 정보를 사용하여 구성되었지만 실제로는 인터넷에 IPv6 연결을 사용하지 않았습니다. 이는 인터넷 서비스 공급자가 구성을 잘못했거나 가정용 라우터의 구성이 잘못된 결과로 보입니다. Windows는 제대로 작동할 것을 예상하고 IPv6를 사용하여 웹 사이트에 연결을 시도하지만 제대로 작동하지 않습니다. 결국 Windows는 연결 시도가 실패한 것을 감지하고 IPv4 연결로 돌아갑니다. 하지만 사용자의 입장에서 보면 이중 스택 웹 사이트 연결이 10-15초 정도 지연될 수 있습니다. 이는 웹 브라우저에 심각한 문제를 불러오며 네트워크에 연결된 모든 앱이 이 문제에 직면하게 됩니다.

우리는 이 문제의 솔루션을 제작할 때 몇 가지 중요한 문제를 고려해야 했습니다. 첫째, 수많은 기업에서 복잡한 라우팅 토폴로지를 배포하고 있습니다. 우리는 우리 솔루션이 이러한 환경의 연결성을 손상시키지 않도록 주의해야 했습니다. 둘째, Internet Explorer뿐만 아니라 Windows를 기반으로 하는 모든 기타 앱에 대해 작동하여 네트워크 자원에 연결할 수 있도록 지원하는 솔루션이 필요합니다. 이러한 앱은 Windows를 이용하여 IPv6로 전환되는 동안 지능적으로 연결 상태를 유지합니다. 우리 솔루션은 기존 데스크톱 앱 외에도 새로운 Metro 스타일 앱의 필요성을 해결해야 했습니다.

사용자가 IPv6 라우팅 가능한 새 네트워크에 연결하면 Windows 8은 IPv6 연결성을 테스트하여 실제로 IPv6가 작동할 경우 IPv6만 사용합니다. 이 접근 방식은 RFC 3484를 수정한 것입니다. 정책의 결과로 주소를 정렬하는 대신 네트워크의 실제 상태를 알고리즘의 입력으로 사용합니다. 잘못 구성된 네트워크에서 이 접근 방식은 브라우저뿐만 아니라 표준 Windows API를 사용하여 이중 스택 대상에 연결하는 앱의 경험을 개선합니다.

사용자가 새 네트워크에 처음으로 연결하면 Windows 8은 네트워크 연결성 테스트를 수행합니다. Windows 8은 30일마다 이 정보를 캐시하고 테스트를 반복합니다. 실제 연결성 테스트는 Microsoft에서 호스팅하는 IPv6 전용 서버에 HTTP GET을 사용하여 간단하게 수행됩니다. 표준 버프의 경우 RFC 3484 구현에서 대상 주소 정렬의 규칙 5와 6 간에 구현됩니다. Windows는 IPv4 연결에 대해서도 비슷한 네트워크 연결성 테스트를 수행합니다. IPv4와 IPv6 모두 작동할 경우 IPv6가 사용됩니다.

Windows 8이 기업 네트워크에서 문제를 일으키지 않도록 기능에 두 가지 안전책이 포함되어 있습니다.

  • 기업에서 특정 대상에 특정 라우팅 정보를 제공할 경우 Windows 8은 Windows에서 선택한 연결에 상관없이 해당 정보를 따릅니다. 기업 환경에서 Windows는 네트워크 관리자가 구체적으로 구성하는 경로를 따르는 것이 더 좋다고 간주합니다.
  • 웹 프록시를 사용하는 네트워크에서는 이 변경 사항이 구현되지 않습니다. 이러한 네트워크에서는 프록시가 인터넷 연결을 제공하므로 IPv6 연결의 총체적인 테스트가 유용하지 않습니다. 그 대신 Windows 8은 최대한 효율적인 방법으로 프록시에 대한 연결을 엽니다.

로컬 네트워크가 잘못 구성되더라도 이러한 방식에 따라 Windows 8의 앱 및 경험이 IPv6로 전환되는 동안에 안정적이고 신속하게 인터넷 연결을 유지할 수 있습니다.

IPv6 전용 네트워크의 미래를 대비

IPv6 전용 네트워크에서 사용자 경험을 개선하는 가장 좋은 방법은 IPv6를 통해 사용 가능한 서비스와 경험의 수를 늘리는 것입니다. 이러한 네트워크에서 IPv4 인터넷 액세스는 NAT64를 통해 수행됩니다. 이러한 장치는 연결 실패를 유발하는 취약점이 될 수 있고, 패킷 손실로 이어지는 심각한 성능 제한을 초래할 수도 있습니다. 또한 일부 멀티 플레이 게임에 필요한 IPv4 P2P 연결을 손상시킵니다.

Microsoft에서는 기업 및 인터넷 설정 모두에서 IPv6 배포를 확대하기 위해 수많은 노력을 해 왔습니다. 그 중에서 가장 중요한 것 중 하나는 우리 서버 제품이 IPv6를 지원하는 것입니다. IPv6 지원은 CEC(Common Engineering Criteria)의 일부입니다. 우리는 Exchange Server, SharePoint 등의 기업용 제품이 이중 스택 또는 IPv6 전용 구성에서 IPv6를 지원하도록 하겠다고 기업 고객과 약속했습니다. 2007년 이후에 개발된 대부분의 Microsoft 제품은 IPv6를 지원하며, 기타 Microsoft 제품의 IPv6 지원 정보는 Technet에서 확인할 수 있습니다. 이러한 노력을 통해 개발자와 솔루션 공급자는 자사의 제품에서 IPv6를 지원할 수 있게 되었습니다.

World IPv6 Launch 로고

Microsoft는 서비스에서도 IPv6를 지원하기 위해 연구 중입니다. 올해 초, 인터넷 협회(Internet Society)에서는 인터넷을 IPv6로 업그레이드하는 일대 전환점이 될 World IPv6 Launch를 발표했습니다. Bing 및 기타 웹 사이트에서는 6월부터 영구적으로 IPv6에서 트래픽 서비스를 시작할 예정입니다. 하드웨어 공급업체는 가정용 라우팅 장치에서 IPv6를 지원하기 위해 연구 중이며, 여러 ISP에서 IPv6를 대규모로 배포할 것입니다. CDN(콘텐츠 배달 네트워크) 또한 자체 네트워크 내에서 IPv6 지원을 시작했습니다.

Windows 8 출시와 관련하여 일부 인프라 서비스에서는 IPv6 지원을 배포하게 됩니다.

Windows 업데이트는 날마다 수백만 명의 사용자에게 지속적으로 지원과 업데이트를 제공하는 중요한 서비스입니다. 모바일 광대역 네트워크에 연결하는 PC가 늘어날수록 IPv6 전용 구성의 인기가 높아질 것입니다. 이러한 네트워크에서도 사용자들이 안정적으로 다운로드할 수 있어야 합니다.

이러한 이유 때문에 현재 Windows 업데이트에서는 IPv6와 IPv4를 모두 지원하고 있습니다. Windows 업데이트는 CDN을 사용하여 전 세계에 업데이트를 배포하며, 우리는 CDN과 협력하여 IPv6를 지원하고 있습니다. Windows 8은 가능하다면 업데이트를 다운로드할 때 사용자가 언제나 최상의 인터넷 연결을 얻을 수 있도록 IPv6를 사용하여 Windows 업데이트를 다운로드하게 됩니다.

우리는 CDN과 협력하여 Windows 8 너머까지 IPv6 지원을 확장하기 위해 연구 중입니다. 이 연구가 성공한다면 Windows 7 및 Windows Vista는 상황에 따라 자동으로 IPv6를 사용하여 Windows 업데이트에 연결할 것입니다.

변화를 주도

Windows 8은 항상 연결 상태를 유지하고 언제든지 사용할 수 있으며, IPv6를 지원함으로써 향후 인터넷 연결에 대비할 수 있습니다. IPv4는 오늘날과 같이 폭발적인 인터넷 성장을 염두에 두지 않았기 때문에 현재 인터넷은 근본적인 변화를 겪고 있습니다. 모든 웹 사이트 연결, 모든 멀티 플레이 게임, 모든 화상 통화는 점차 IPv6로 전환될 것입니다.

그러한 과정의 일환으로, Microsoft는 Windows 8을 통해 가장 복원력이 뛰어난 인터넷 연결을 제공하고 IPv6를 지원하는 제품 및 서비스를 제공하여 변화를 선도하고 있습니다.

- Chris