새로운 동거 IPv6
상태바
새로운 동거 IPv6
  • 승인 2005.04.11 00:00
  • 댓글 0
이 기사를 공유합니다

[Tech Guide] 후니와 함께 하는 IPv6 맛보기
“새로운 IPv6 네트워킹 세상과 동거가 시작된다”

IPv6 주소는 16진수로 표시 … 주소 종류는 ‘유니·멀티·애니캐스트’

연·재·순·서

1. IPv6가 왜 필요한 걸까?
2. IPv6의 탄생과 한눈에 알아본 특징
3. IPv6의 주요 특징에 대한 이해-1
4. IPv6의 주요 특징에 대한 이해-2
5. 새로운 동거 IPv6(이번 호)

진강훈
시스코코리아 부장
gaijin@cisco.com

지금까지 IPv6의 등장 배경에서부터 주요 특징에 대해 살펴봤다. 이번 마지막 호에서는 IPv6의 주소에 대해 자세히 알아보며 연재를 마무리한다. IPv6에 대해 좀 더 궁금한 점은 필자가 운영하고 있는 후니의 쉽게 쓰는 네트워크 이야기(http:// cafe.naver.com/hoonycafe.cafe)로 문의하면 된다. <편집자>

안녕하세요. 드디어 지루했던(?) IPv6에 대한 컬럼이 마지막 회까지 무사히 왔습니다. 먼저 지난주 정답 확인부터 해볼까요?

1. 다음 중 IPv4에서의 문제점이 아닌 것은?
a. 주소 공간의 부족
b. 복잡한 헤더 필드
c. 브로드캐스트 문제
d. 임의의 자동 생성(Stateless Autoconfiguration)의 복잡성
e. 시큐리티/모빌리티의 복잡성

d가 답인거 아셨죠? 임의의 자동 생성은 IPv6의 특징입니다.

2. 주소 부족을 해결하기 위해 IPv4에서 사용하는 해결책이 아닌 것은?
a. DHCP
b. CIDR
c. 수퍼넷팅(Supernetting)
d. NAT
b가 답입니다. CIDR(Classless InterDomain Routing)은 주로 수퍼넷팅을 통해 라우팅테이블을 줄이기 위해 사용합니다.

3. IPv6의 특징을 말한 것 중 해당하지 않는 것은?
a. 넓은 주소공간
b. 임의의 자동 생성
c. 자동 생성(Stateful Autoconfiguration)
d. 보다 강력해진 멀티캐스트
e. 자동 QoS 지원

e의 자동 QoS 지원이 해당되지 않는 특징입니다.^^

쉽죠? 자 그럼 마지막으로 IPv6의 주소는 어떻게 생겼고 IPv4에 비해 어떻게 달라졌으며, 앞으로 우리와 같이 어떻게 살아갈 것인가에 대해 알아보겠습니다.

1. IPv6 주소 써보기
자 그럼 이제부터 IPv6의 주소에 대한 이야기를 드리겠습니다. 그 동안 우리가 사용하던 IPv4에서는 주소를 보통 10진수로 표현했죠? 그냥 150.100.13.8처럼 10진수로 0~255 사이의 숫자를 쓰고 숫자 사이에 점(.)을 찍었던 방식이었습니다. 하지만 이제부터 우리가 사용하게 될 IPv6의 주소는 조금 달라졌습니다.
아니 사실은 많이 달라졌습니다. 뭐가 달라졌는지 알아볼까요?
우선 이제 10진수로 IP주소를 쓰지 않는다는 겁니다. 그럼 뭘 쓰냐고요? 16진수를 사용합니다.
16진수 아시죠? 10진수는 0~9까지의 수를 이용해서 표현한다면 16진수는 0~15까지로 표현해야 될 겁니다. 하지만 10, 11, 12, 13, 14, 15는 두 자리 수가 돼 버리니까 이것들을 따로 표현할 방법을 하나 찾아야겠죠? 그래서 16진수는 이렇게 표현합니다.

10진수 16진수
0 -------------------- 0
1 -------------------- 1
2 -------------------- 2
3 -------------------- 3
4 -------------------- 4
5 -------------------- 5
6 -------------------- 6
7 -------------------- 7
8 -------------------- 8
9 -------------------- 9
10 -------------------- a
11 -------------------- b
12 -------------------- c
13 -------------------- d
14 -------------------- e
15 -------------------- f
16 -------------------- 10
17 -------------------- 11

쉽게 이해가 가시죠? 십진수와 비교해가며 이해하시길 바랍니다. 그런데 왜 갑자기 잘 쓰던 10진수 대신 16진수를 쓰냐고요? 왜냐하면 주소가 길어져 더 이상 10진수로 표시하기 어렵다는 것과 16진수가 2진수와의 궁합이 더 잘 맞는다는 두 가지 이유 때문입니다.
원래 주소는 IPv4든 IPv6든 모두 2진수로 돼 있다는 건 알고 계실 겁니다. 따라서 2진수 주소를 10진수로 바꾸는걸 IPv4에서 많이 공부하셨을 겁니다. 이젠 그럴 필요가 없어졌습니다. IP주소로 더 이상 10진수를 사용하지 않기 때문이죠. 이젠 2진수를 16진수로 바꾸는걸 배우셔야 하겠지요.^^
근데 그건 오히려 간단합니다. 왜냐고요? 2진수 4개가 모이면 16진수 1개가 되거든요. 볼까요?

2진수 16진수
0000 -------------------- 0
0001 -------------------- 1
0010 -------------------- 2
.
.
.
1001 -------------------- 9
1010 -------------------- a
1011 -------------------- b
1100 -------------------- c
1101 -------------------- d
1110 -------------------- e
1111 -------------------- f

그렇죠? 즉, 2진수 4자리는 16진수 한자리로 모두 표현된다는 겁니다. 따라서 2진수의 10진수 변환보다는 2진수의 16진수 변환이 오히려 훨씬 쉽죠.
이야기가 좀 옆으로 흘렀습니다만 IPv6에서 주소는 16진수 4개를 쓰고 콜론(:)을 찍고, 또 16진수 4자리를 쓰고 콜론(:)을 찍고, 이렇게 16진수로 4개씩 8번을 쓰고 중간에 콜론 7개를 찍어 주소를 표시합니다. 아래 예를 보시죠.

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

이런 방식입니다. 여기서 x는 16진수 한자리를 뜻합니다. 예를 들어 달라고요?

2001:0DB8:010F:0001:0000:0000:0000:0D0C

이런 식으로 표시됩니다.^^
이때 A~F까지의 알파벳은 문자가 아닌 16진수 숫자이므로, 대소문자의 구분이 없다는 것도 알아두시기 바랍니다. 예를 들어 2001:0DB8:010F:0001:0000:0000: 0000:0D0C와 2001:0db8:010f:0001:0000:0000:0000: 0d0c는 같은 주소가 되는 겁니다.
자 IPv6주소 표기의 두 번째 규칙은 앞쪽에 오는 ‘0’은 쓰지 않아도 된다는 것입니다. 예를 들어 2001:0DB8: 010F:0001: 0000:0000:0000:0D0C라는 주소는 2001: db8:10f:1:0: 0:0:d0c로도 쓸 수 있다는 겁니다. 자세히 보시면 연속으로 써있던 0이 생략돼 하나로 바뀐걸 알 수 있습니다. 즉, 각 주소 중 앞쪽 0은 생략이 가능하다는 겁니다. 하지만 중간에 있는 0은 생략하면 안되겠죠?
예를 들어 0D0C를 D0C라고 하면 앞에 ‘0’이 하나 생략된걸 알 수 있겠지만, 0D0C를 DC 라고 한다면 어디에 ‘0’이 빠진 지를 알 수 없겠죠? 따라서 맨 앞자리 ‘0’만을 생략합니다.
또 0001과 같이 앞에 여러 개의 ‘0’이 있을 경우도 모두 생략해서 1로 표기할 수 있답니다. 그래도 앞에 ‘0’ 3개가 생략된걸 알 수 있을 테니까요.^^
그럼 이번엔 3번째 규칙을 알려드리겠습니다. 세 번째 규칙은 ‘0’이 연속으로 나올 때는 ::으로 표시할 수 있다는 겁니다. 예를 들어 2001:db8:10f:1:0:0:0:d0c를 2001:db8: 10f:1::d0c로 표기할 수 있습니다. 위에서 보이는 대로 0이 연속으로 나오는 경우는 ::을 쓸 수 있다는 겁니다.
그러나 이런 방식을 두 번 이상 사용하면 안됩니다. 2001:0DB8:0000:0000:FFFF:0000:0000:0D0C란 주소를 2001:0DB8::FFFF:0000:0000:0D0C 또는 2001: 0DB8:0000:0000:FFFF::0D0C로는 표기할 수 있지만 2001:0DB8::FFFF::0D0C처럼 표기할 수는 없기 때문입니다. 왜냐하면 2001:0DB8::FFFF::0D0C처럼 표기했을 경우에는 어느 ::에 0이 몇 개 생략됐는지를 알 수 없겠죠. 따라서 이렇게 연속으로 0이 오는 경우 ::으로 대치는 딱 한번만 가능하다는 겁니다.
자 그럼 지금까지 배운 주소쓰기 규칙을 정리해볼까요?
첫째, IPv6 주소는 16진수로 표시하며 16진수 네 자리마다 콜론(:)을 찍어 구분한다.
둘째, IPv6 주소에서 주소의 앞쪽에 0이 올 경우 생략이 가능하다.
셋째, IPv6 주소에서 주소에 0이 연속될 경우 생략하고 ::으로 대치할 수 있다. 다만 한번만 가능하다.
잘 이해가 안되시면 앞쪽에 있는 예를 보시면 되겠죠? 자 주소에 대한 규칙은 여기까지입니다.

2. IPv6 주소의 종류
이번 장에서는 IPv6의 주소의 종류에 대해 알아보겠습니다. 그럼 먼저 지금까지 우리가 사용하고 있는 IPv4 주소의 종류를 알아볼까요? 뭐 뭐가 있죠?
네. 유니캐스트가 있죠. 이게 뭐죠? 받는 사람이 한 명인 주소 방식입니다. 보통 우리가 사용하는 주소가 바로 유니캐스트 주소입니다. 클래스 A, B, C가 바로 여기에 해당합니다.
그 다음으로 멀티캐스트가 있습니다. 받는 사람이 한 명이 아닌 특정 그룹이죠. IPv4에서는 클래스D가 바로 멀티캐스트 주소였습니다(IP주소의 맨 앞자리가 224에서 239까지로 시작하는 주소가 바로 멀티캐스트 주소입니다)
그리고 또 뭐가 있을까요? 네. 브로드캐스트가 있습니다. 브로드캐스트 주소는 브로드캐스트 영역에 있는 모든 호스트들에게 다 받으라고 보내는 거죠. 한번에 모두에게 보내니 편리하긴 하지만 앞서 설명 드린 데로 문제점이 많다고 알고 계실 겁니다. 즉, 트래픽이 많이 발생할 뿐 아니라 호스트에 인터럽트를 걸기 때문에 호스트의 성능까지도 떨어뜨릴 수 있다는 겁니다. 여하튼 이렇게 유니캐스트, 멀티캐스트, 브로드캐스트가 IPv4에서의 주소 삼형제였습니다.^^
그런데 IPv6에서는 달라졌습니다.
먼저 그 말도 많고 탈도 많던 브로드캐스트가 사라졌다는 겁니다. 대신 좀더 강력해진 멀티캐스트가 그 역할을 대신하게 된 겁니다. 그리고 또 하나 애니캐스트(Anycast)가 등장했습니다. 애니캐스트요? 이건 또 뭐죠?
말 그대로 애니(Any), 아무나 받아라 입니다. 즉, 아무나 제일 먼저 받는 녀석이 임자가 되는 거죠. 참 이상한걸 만들었죠? 1993년 처음 제안된 애니캐스트 방식은 그 애니캐스트 그룹멤버 중 가장 가까이 있는 녀석에게 패킷을 보내는 방식입니다. 이런 방식은 가장 가까운 포인트를 찾는 탐색 메커니즘을 위해 사용된다고 했는데 현재까지 그렇게 많이 사용되고 있지는 않은 듯 합니다.
그래도 알아두셔야 하겠죠. 자 정리해볼까요. IPv6에서 주소방식은 유니캐스트, 멀티캐스트, 그리고 애니캐스트가 있습니다. 브로드캐스트는 이제 사라졌고, 그 기능은 좀더 강력해진 멀티캐스트가 수행한다. 여기까지입니다.

3. IPv6와 함께…
자 그럼 이제 IPv6에 대해 어느 정도 개념을 잡으셨을 겁니다. 아니라고요? 그래도 처음 IPv6를 대할 때와는 많이 달라졌다는 걸 느끼실 수 있을 겁니다. 이 정도만 아셔도 많이 아시는 겁니다.^^
그럼 지금부터는 우리가 현재 사용하고 있는 IPv4 네트워킹 세상에 어떻게 IPv6를 도입하는가에 대한 방법을 설명 드리겠습니다.
서두에서 설명을 드린 것처럼 IPv6라는 방식이 아무리 좋고 또 꼭 필요한 방식이라고 하더라도 우리가 어느 날 갑자기 IPv4를 버리고 IPv6로 돌아갈 수는 없을 겁니다. 서울이라는 도시에서 버스번호 체계 하나 바꾼 것 때문에 며칠 동안 얼마나 많은 어려움을 겪었는지를 기억하실 겁니다. 그런데 전세계에서 사용하던 IP주소를 하루아침에 바꾼다면 아마 그 혼란은 상상하기조차 어려울 만큼 클 겁니다. 따라서 상당기간 IPv4와 IPv6는 한집 살림을 해야 할 겁니다.
그렇다면 이 두 버전의 IP를 어떻게 한집에 동거하게 할 것인가에 대한 논의가 필요합니다. 왜냐하면 잘못된 동거는 뒤에 가서 꼭 말썽이 나거든요.^^ 따라서 동거에 들어가기 전에 어떻게 서로 대화를 하면서 살까라는 것에 대한 정의가 필요할 겁니다. 지금부터는 이 방법에 대한 설명을 드리도록 하겠습니다.
물론 이 방법은 여러 가지가 있겠지만 여기서는 많이 사용되는 몇 가지 방법에 대해 소개 드리겠습니다. 먼저 듀얼 스택(Dual-Stack) 방식이 있습니다.
듀얼 스택 방식은 듀얼이란 말에서 눈치 챌 수 있듯 시스템이 IPv4와 IPv6를 모두 인식할 수 있도록 하며 IPv6를 이해하지 못하는 애플리케이션에는 IPv4만으로 사용할 수 있도록 해주고, IPv6를 이해할 수 있는 애플리케이션은 IPv6를 이용할 수 있도록 해주는 방식입니다. 즉, 두 가지 주소 중 골라 쓰도록 하는 방식으로 호스트 또는 라우터에서 구성해 줄 수 있습니다.
다음 <그림 1>은 라우터에서 듀얼 스택이 구성되어 있는 사례입니다. 인터페이스에 IPv4 주소와 IPv6 주소가 둘 다 세팅되어 있는 것을 보실 수 있을 겁니다. 이렇게 되면 IPv4와 IPv6 트래픽을 동시에 포워딩해줄 수 있습니다.
그 다음은 터널 방식입니다. 터널 방식은 이미 많이 사용되던 네트워킹 기술로 기존 네트워크상에서 호환되지 않는 기능을 지원할 때 사용되었습니다. 즉, 한쪽 IPv6 망에서 다른 한쪽에 있는 IPv6망과 통신을 하고자 할 때 터널 기술을 사용하면, 중간에 있는 망이 IPv6를 지원하지 않더라도 통신이 가능하다는 장점이 있습니다. 하지만 이 방식은 중간에 문제가 발생했을 때 그 문제를 해결하기 어렵다는 문제가 있기 때문에 적정한 아키텍처가 아직 마련되지 않았을 때 사용하는 과도기적 기법입니다.
터널방식에 대한 설명이 다음 <그림 2>에 나와 있습니다. 그림에서 보시는 대로 양쪽에 있는 IPv6 호스트가 중간에 있는 IPv4 구름을 뚫고 서로 통신하고 있습니다. 이것은 바로 IPv4 구름 양쪽에 있는 라우터가 앞에서 배운 듀얼 스택 방식으로 동작하면서 IPv6 트래픽을 터널을 통해 반대쪽 라우터까지 전달해주는 방식입니다.
터널 기법은 통신을 시작할 때 터널을 어떻게 만들어주는가에 따라 매뉴얼, 반자동, 자동방식 등으로 구분해 볼 수 있습니다. 이해가 되시죠.^^

4. 6Bone 그리고 IPv6 인터넷
이제 IPv4와 IPv6의 동거준비도 끝났습니다. 그럼 실제 IPv6망은 어떻게 만들어져 있을까요? 아니 실제 있기는 한 걸까요? 그래서 현재 구현되어 있는 IPv6의 대표적인 시험망인 6Bone에 대해 잠깐 소개들 드리겠습니다.
지난 1996년부터 만들어지기 시작한 6Bone은 IPv6로 만들어진 망으로 상업적인 용도로 만들어진 상업망이 아닌 IPv6를 위한 테스트 망입니다. 즉 IPv6에 대한 새로운 프로토콜과 구현방법, 전송방법, 운영 메커니즘 등을 테스트 해보기 위해 만들어진 네트워크로 2002년 기준으로 전세계 57개국의 1천100개 이상의 사이트가 6Bone에 연결되어있다고 합니다.
물론 우리 나라도 각 대학과 연구기관 등이 이 6Bone과 연결돼 있다고 합니다. 우리가 모르고 있는 이 순간에도 6Bone을 통해 수많은 IPv6에 대한 연구가 이루어지고 있고, 또 새로운 표준이 만들어지고 있는 거죠.^^
IPv6 인터넷망도 IANA(Internet Assigned Numbers Authority)를 통해 IP주소를 배정받게 됩니다. IANA는 2001::/16 주소를 인터넷 주소로 배정해두고 있습니다. 그리고 이 주소를 다시 각 대륙별로 나눠주게 되는데, 2001:0200::/23과 2001:0C00::/23 까지가 아시아 쪽에 배정된 IPv6주소 대역이라고 합니다. 우리가 앞으로 사용하게 될 IPv6 주소니까 한번 봐두시면 도움이 되겠네요.^^
일단 이렇게 IANA에서 23비트까지의 주소를 각 대륙에 분배하고 나면 /23~/32까지의 비트를 이용해 각 ISP별로 주소를 나누게 됩니다. 또 /32~/48까지는 사이트 배정을 위한 사이트 프레픽스(Prefix)로 사용하게 되고, /48~/64까지의 비트는 랜 프레픽스로 사용되어 집니다.
이전에 배운 계층적인 주소분배에 대해 생각나시나요? 이게 바로 계층적인 주소분배가 되는 겁니다. 이렇게 주소를 배정하면 한마디로 묶어주기가 쉽겠죠? 사이트별, ISP별 등등. 따라서 트래픽 관리가 훨씬 쉬워지는 겁니다. 이게 바로 길어진 IPv6의 장점이죠^^

자 지금까지 5회에 걸쳐 알아본 IPv6에 대한 수박 겉핥기가 이제 끝났습니다.^^
IPv6는 이제 막 우리 눈에 보이기 시작한 낯선 얼굴이지만 사실은 이미 10년 전부터 준비되고 만들어져 온 기술입니다. 또 앞으로도 몇 년간 계속 개발과 발전이 이루어질 기술이기도 합니다.
참 연재에 대한 궁금한 점은 네이버에서 제가 운영하고 있는 카페로 문의 바랍니다.^^
안녕~ http://cafe.naver.com/hoonycafe.cafe


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.