DirectAccess를 이해하기 위한 기반 기술, 그 첫번째 - ISATAP

Windows Server 2008 R2, Windows 7이 함께 제공하는 기업용 시나리오중 하나인 DirectAccess에 대한 관심이 나날이 높아져 가고 있습니다. 결론적으로 보았을 때, DirectAccess는 사용자나 관리자의 입장에서 훌륭한 네트워크 접근성 및 관리성을 제공합니다만, DirectAccess를 구현하기 위해 필요한 기반 기술들은 생각보다 많고, 다소 복잡합니다.

언제, 어디서나, 편하게 조직내 네트워크에… Windows 7… DirectAccess 1편 ? Windows Server 2008 R2와 만났을 때 (2)
언제, 어디서나, 편하게 조직내 네트워크에… Windows 7… DirectAccess 2편 ? Windows Server 2008 R2와 만났을 때 (3)
DirectAccess를 만난 꼬알라.. 그리고 VDI..
DirectAccess Early Adaptor’s Guide - Windows Server 2008 R2와 Windows 7…
[사례 공유] Windows 7 & Windows Server 2008 R2.. DirectAccess - Hostway

지금까지 꼬알라의 하얀집에서 DirectAccess를 위한 다양한 포스팅을 했습니다만, 기술적인 포스팅이 다소 부족한 걸로 보여, 몇회에 걸쳐 DirectAccess를 위한 기반 기술을 살펴볼까 합니다.

DirectAccess는 IPv6 기술을 근간으로 하고 있습니다. 현재 우리가 사용하는 TCP/IP 기술은 대부분 버전 4(v4)를 이용하고 있다는 것은 잘 아실 것입니다. IPv6를 지원하기 위해서는 운영 체제 뿐만 아니라, 네트워크 라우터, 스위치등과 같은 장비레벨에서도 IPv6를 지원해야만 사용이 가능합니다. NAT의 등장으로 인해 IPv4 주소의 사용 기간이 점차 늘어가고 있고, 한동안은 IPv4를 이용할 것이라고 보입니다.

그렇다고 한다면, IPv6를 바로 사용하실 수 없겠죠. 이러한 연유로 등장하게 된 기술이 IPv6 데이터를 IPv4에 실어서 나를 수 있게 하는, IPv6 to IPv4 전환(Transition) 기술들입니다. 실제 데이터에는 IPv6가 들어있지만, 이를 IPv4에 담아서 목적지로 보낸다는 것이죠. 이 경우, 약간의 전환 부담(매우 미미합니다.)이 필요하지만, 기존 네트워크 인프라를 그대로 유지하면서, IPv6에 제공하는 새롭고, 다양한 혜택을 이용할 수 있습니다.

image

IPv6를 IPv4로 전환하는 기술에는 아래의 3가지 정도가 존재합니다. 그리고 Windows 7에서 제공하는 1가지가 더 있죠.

  1. ISATAP
  2. 6to4
  3. Teredo
  4. Windows 7의 IPHTTPS

이중 오늘은 ISATAP에 대해서 살펴보려고 합니다. ISATAP은 Intra-Site Automatic Tunnel Addressing Protocol의 줄임말입니다. IPv6 통신을 위해서는 모든 네트워크 장치에 IPv6 주소가 분배되어야 합니다. FE80: 형태로 시작하는 링크 로컬 주소(Link-Local Address)는 라우터를 넘어갈 수 없는 IPv6 주소이기에, DHCP를 사용하던, 고정 주소를 입력하던 어떤식으로던 부여를 해야겠죠. 여기서부터 IT 관리자의 고민 및 부담이 시작됩니다. 모든 IPv6 주소를 어떻게 배포할 것이며.. 그리고 우리 장비가 IPv6를 지원해야 하는데.. 참고로 Microsoft의 Windows 플랫폼은 XP, 2003, 2008, Vista, 7, 2008 R2가 공식적으로 IPv6를 지원합니다.

소개해드릴 IPv6 to IPv4 전환 기술은 터널링(Tunneling)이라는 단어를 많이 사용합니다. 터널링의 의미는 어떻게 전달되는지는 교신하는 양단에서는 알 필요가 없지만~ 실제 둘사이에 교신은 된다는 의미로 보시면 됩니다. 두대의 컴퓨터내에 얼마나 많은 네트워크 장비, 또는 중간에 이를 전달해주는 또다른 컴퓨터가 있던 없던, 결국엔 두대의 컴퓨터 입장에선 교신이 되니 터널이 연결되어 있다고 생각하면 되겠죠?

image

이해가 잘 안되실걸로 생각하여, 위의 그림을 기반으로 설명을 해보죠~ 왼쪽의 IPv6 컴퓨터는 2001:db8:0:1::/64 네트워크내 있고, 오른쪽의 IPv6 컴퓨터는 2001:db8:0:2::/64 네트워크에 있습니다. 가운데에 존재한 네트워크 인프라는 IPv6를 모르는(다시 말해 사용할 수 없는) 인프라입니다. 이 경우 라우터 1번에게 2001:db8:0:2::/64 네트워크는 라우터 2번에게 가면된다고 알려주면 됩니다. 라우터 2번의 주소는 157.54.9.211이라고.. 결국 라우터 1번에게 2001:db8:0:2::/64에 대한 처리를 요청하면, 라우터 2번 IPv4 주소인 157.54.9.211로 가면 되겠죠? 반대도 마찬가지입니다. 이 경우 두대의 IPv6 노드는 가운데에서 어떻게 처리되던지.. 통신이 가능합니다. 이를 두대의 노드간 터널링이라고 표현합니다.

ISATAP 기반에서는 먼저 IPv6 주소에 대한 부여가 필요하고,  이 IPv6 주소별 교신에 대해서 중간에 누군가가~ 이를 IPv4 주소 알려줘야겠죠. 이 역할을 하는 장비 or 컴퓨터가 필요합니다. 이를 ISATAP 라우터라고 부릅니다. Windows Server 2008, Windows Server 2008 R2가 이 역할을 할 수 있습니다. (A라는 IPv6 주소를 가진 컴퓨터가 실제 IPv4 주소는 뭐니? 라는 것에 대해 ISATAP 라우터가 이를 대답해주게 됩니다.) 결론적으로~

image

ISATAP 환경에서 IPv4 환경은 단일 네트워크라고 보일 수 밖에 없다는 것입니다. 위 그림에서 Host A가 Host B로 교신할 때, Host A는 먼저 ISATAP 라우터에게 먼저 가서~ FE80::5EFE:192.168.41.30이라는 IPv6 주소를 가진 컴퓨터의 IPv4 주소를 물어봐야 합니다. 그런 후, Host B와 IPv4 패킷을 이용해서 교신을 하는 거죠. 그 안에 데이터는 당연히 IPv6 데이터가 들어있겠죠.

image

ISATAP 환경에서 IPv6 주소는 위의 그림과 같습니다. 앞에는 무언가의 IPv6 64비트가 붙고, 0:5EFE:IPv4 주소는 NAT 환경이나 Private 환경내 주소이며, 64비트가 붙고, 200:5EFE:IPv4 주소는 공인 IPv4 환경내 주소입니다.

image image

Windows Vista 시절부터, 명령어 프롬프트에서 ipconfig을 쳐보시면 뭐그리 터널 어댑터가 많은가? 라는 혼자만의 생각이 이제 조금씩 풀려가시죠? 위의 그림의 터널 어댑터 isatap.Koalra-W7.Local은 Koalra-W7.Local내 ISATAP 구성이 완료된 형태입니다. 예상이 되시겠지만, ISATAP 라우터의 IPv4 주소는 77.1.1.91입니다.

image

ISATAP 라우터에 대한 설정은 Netsh에서만 가능합니다. ISATAP 라우터에 대한 클라이언트 설정은 그룹 정책 또는 개별적으로 Netsh을 이용하셔야 하고요. IPv6 변환 기술에 대한 작업은 DirectAccess 구성 마법사를 완료하시면, Windows Server 2008 R2가 그룹 정책으로 만들어서, 클라이언트에게 설정하게 됩니다. ISATAP은 조금 틀리지만요~

image

기술적인 포스팅은 역시 내용이 꽤 길어지네요~ 오늘 어느정도 IPv6 전환 기술에 대해서 이해를 하셨다면~ 뒤에 이어질 6to4, Teredo, IPHTTPS는 이해하시기 쉬울 것입니다.

자~ 다시 이어가보면, 위의 그룹 정책을 보니~ ISATAP은 다 구성되지 않음인데~ 어떻게 찾았을까? 라는 의구심이 드셨을 수도 있습니다. 정답은 DNS와의 연동입니다. Windows Vista 이후부터, IPv6 프로토콜을 사용하게 해놓으셨다면, TCP/IP 네트워크 스택이 가동될때(부팅될때겠죠? 아니면, 강제로 네트워크 카드를 사용 중지/사용으로 하셨을 때나..), TCP/IP v4에 사용하게 설정된 DNS로 isatap을 쿼리합니다. 그냥 ISATAP이라고 쿼리하는 것이 아니라, 액티브 디렉터리의 도메인 이름과 네트워크 카드에 설정된 DNS 접미사를 활용합니다.

image image

DHCP 서버를 통해서도 DNS 접미사는 설정해줄 수 있습니다. ISATAP.Koalra-W7.Local을 쿼리한다는 의미겠죠? 그렇다면 DNS 서버에는 ISATAP 호스트에 대한 레코드가 ISATAP 라우터로 향해있어야 합니다.

image

IPv4 환경과 실제 IPv6 주소를 가진 인프라와의 중간 게이트웨이 역할도(이게 진정한 라우터의 의미죠) ISATAP 라우터가 할 수 있습니다.

image

이제 다 이야기가 되었습니다. IPv6 주소가 없는 컴퓨터에 IPv6 주소를 자동으로 설정해주는 기술중 하나인 ISATAP은 해당 컴퓨터가 켜졌을 때, ISATAP 라우터를 DNS를 통해서 찾아서, IPv6 주소를 부여받고, IPv6 통신의 모든 중계자 역할을 ISATAP 라우터의 도움을 받아서, IPv6 주소를 획득해서, 실제로는 IPv4 네트워크 인프라를 이용한다는 것입니다. 그렇지만 컴퓨터의 입장에선 IPv6로 교신을 한 것으로 생각하니 IPv6 터널링이 되는 것이죠.

image

네트워크에 관련된 이야기라 쉽게 설명하려고, 내용도 길어지고 그림도 많아졌습니다. 이해가 되셨는지요? 밑에 그림이 이해가 되신다면, 오늘의 포스팅을 충실히 살펴보신 것입니다. Host A(192.168.47.99)에서 Host B(131.107.71.209)로 IPv6 교신이 어떻게 되었을까~ 종이를 놓고 정리해보세요~ ISATAP이라면, 인터넷이던, 로컬이던 IPv4 환경은 단일 인프라로 생각할 수 있다는 것 염두해두시고요~

image

다음 포스팅에서는 인터넷 환경에서 사용하는 IPv6 전환 기술인 6to4를 살펴보겠습니다~