1. IPv6 왜 필요한걸까?

먼저 IPv6가 왜 나왔는지부터 알아보도록 하자. IPv6의 출현 이유 첫번째는 IPv4 주소의 공간 부족이다.

1981년부터 본격적으로 사용하게 되엇던 IP version 4는 1985년에는 전체 주소의 1/16을 사용했으니 그때까지만 해도 주소 부족을 걱정할 필요는 없었을 것이다. 그런데 1991년 World Wide Web이란게 개발되고, 1993년에는 모자이크(Mosaic)가 발표되었다. 그러다 보니 IP 주소의 사용이 점점 늘어나게 되면서 1995년에는 전체 주소의 1/3을, 2000년에는 1/2를 사용하게 되었다.

아시다시피 IPv4의 32비트 주소 체계니까 이론적으로 $2^{32}$ 만큼의 주소를 만들 수 있다. 이 숫자는 약 43억개 정도가 된다. 그러나 이 주소를 다 사용할 수 있는 건 아니다. 일단 중간 중간에 Private용 등으로 예약된 주소 영역이 있다. 또 클래스 E는 연구용으로 사용되는 막상 쓸 수 있는 주소는 훨씬 적은 수가 되는것이다. 따라서 현실적으로 배정이 가능한 IP 주소는 약 2억 5천만 개 정도밖에 되지 않는다고 한다.

현재 네트워크 수는 매년 약 2배로 증가하고 있다. 이와 함께 인터넷의 사용자와 장비 역시 기하급수적으로 늘어나고 있다. 2001년도 현재 인터넷 사용자수는 약 4억 2천만 명이라고 하니까 벌써 공인주소의 약 2배 정도의 수가 인터넷을 쓰는 것이지만, 4억이라고 해봐야 전 세계 인구의 1/10도 안되는 수이다. 게다가 중국이나인도, 러시아 등 인구가 무지하게 많은 나라들이 인터넷을 쓰기 시작했다고 하니, 이제 IP 주소의 부족은 불 보듯 뻔해지게 된 것이다. (23년 기준 약 53억명)

그런데 문제는 이렇게 IP 주소를 사용하는 사람들이 늘어난다는 것이다. 게다가 기존에 IP 주소를 주로 사용하던 PC나 컴퓨터 뿐만 아니라 새로운 장비들이 자꾸 IP 주소를 사용하려고 한다는 것이다. 언제부턴가 사무실 책상 위에 떡 하니 자리 잡기 시작한 IP 전화기는 앞으로 몇 년 내에 일반 전화기들을 몰아낼 기세로 그 세력이 커지고 있다. 게다가 집에서는 인터넷 전화기라는 이름으로 전화기에 IP 주소를 하나씩 붙여서 나타난 장비들이 저렴한 통화료를 내세워 집 밖으로 쫓아내기 시작했다. TV도 IPTV로 바뀌고 있다.

이런 추세라면 IP 주소는 곧 고갈 상태가 된다는 게 현재의 예측이다.

어떤 보고서에 의하면 IP 주소는 2005년부터 2011년 사이에 고갈될 것이라고 한다. 그 보고서 말대로라면 우린 이미 쓸만한 IPv4 주소는 남아있지 않아 어떤 식으로든 주소 공간 확장에 대한 조치를 내릴 때가 온 것이다.

이렇게 주소 공간의 부족 이외에도 IP version 4의 문제점은 몇 가지 더 있을 수 있다. 현재 IP version 4가 가지고 있는 복잡한 헤더(Header)는 전체 필드를 불필요하게 늘이게 했고, 라우터로 하여금 효과적인 헤더 관리를 할 수 없게 한다는 문제를 낳기도 했다. 뿐만 아니라 IP 주소 배정 방식이 복잡하다는 문제도 있다. 물론 DHCP를 사용해서 이 문제를 해결할 수 있지만 또 다른 서버의 구성이라는 오버헤드를 필요로 하게 되었다.

또 주소가 부족하다 보니 주소 배정을 체계적으로 할 수 없어 몇 개의 라우팅 정보를 하나로 묶어주는 aggregation이 어렵고, 따라서 라우팅 테이블은 점점 더 크고 복잡해질 수 밖에 없다. 이 밖에도 번거롭고 효율적이지 못했던 보안기능과 Mobile IP의 지원 등은 IP version 4에서 해결해줘야 하는 문제점이었다.

그렇다면 어떻게 해야 당장 이 문제를 해결할 수 있을까? 먼저 주소 부족의 해결을 위한 방법들을 알아보자.

내부망에서는 Private IP 주소, 즉 내 맘대로 주소를 쓰고 밖으로 나갈때만 공인 IP 주소를 사용하는 것이다. 이게 바로 NAT(Network Address Translation)라는 것이다. 내부에서는 Private 주소를 사용하고 인터넷으로 나갈때만 공인 IP 주소를 쓰게 되면 IP 주소가 몇 개 없어도 인터넷이 가능하다는 장점이 있다. 하지만 이 방식은 IP 주소를 변환해주는 시간이 필요하다. 그 뿐만 아니라 여러 가지 End-to-End 기능을 지원하는 프로그램에서도 호환성에 문제가 있을 수 있다.

이런 NAT라는 방법 이외에도 IPv4에서 주소 공간을 절약하기 위한 대표적인 방법은 바로 서브네팅이 있다. 원래 맨 처음 IPv4 주소가 많았을 떈 서브네팅이 그리 많이 사용되지 않았지만 요즘은 서브네팅 안하는 곳은 거의 없을 뿐 아니라 쪼개는 것도 정교해졌다.

또 안쓰는 주소는 자동으로 회수하고 주소가 필요한 PC에는 그때그때 주소를 배분해주는 DHCP(Dynamic Host Configuration Protocol)가 있다. DHCP를 사용하지 않을 경우 당장 사용하지 않는 IP 즈소라고 하더라도 그 상태를 파악할 수 없으니 IP 주소 관리가 쉽지 않았던 게 사실이다. 하지만 DHCP를 사용하게 되면서 주소 배정의 편리함 뿐 아니라 안쓰는 주소를 회수할 수있어 주소 낭비를 막을 수 있었다.

이 밖에도 클래스 A, B, C와 같은 기존의 약속을 무시하고 뒤에 붙은 서브넷 마스크만을 가지고 클래스를 지정하는 방식인 CIDR(Classless Inter Domain Routing)이 있다. CIDR은 주로 서브네팅과 반대개념인 수퍼네팅, 즉 여러 개의 작은 네트워크를 한 개로 모아서 라우팅 테이블을 줄여줌으로써 라우터의 메모리를 절약하고 라우팅 속도를 올려주기 위해 사용한다.

2. IPv6의 탄생

IPv6가 어떻게 탄생하게 되었는지 알아보도록 하자. 1990년 IETF(Internet Engineering Task Force)에서는 벌써 클래스 B 주소가 1994년 쯤에는 고갈될 것이라는 예상을 했다고 한다. 그리고 다음해인 1991년 IEFT는 산타페에서 열린 IEFT 미팅에서 이 문제를 해결하기 위해 ROAD(ROuting and ADress) 그룹을 만들게 되었다. 그리고 1995년 IPNG(IP Next Generation) Workgroup이 ‘RFC 1883’이라는 첫 번째 세부안을 내놓게 된다. 이게 바로 IPv6의 근간이 되었다고 전해진다.

다음해인 1996년 IPv6의 테스트 베드인 6Bone이 인터넷을 통해 시작된다. 6Bone은 뒤에 다시 설명하겠지만, IPv6의 운용을 테스트하기 위해 만든 망이다. 즉, 현재 우리가 사용하고 있는 IPv4망에는 영향을 주지 않으면서 IPv6에 대한 여러 가지 실험들을 해볼 수 있도록 만들어놓은 IPv6망이라고 생각하면 된다. 우리나라를 포함해서 전 세계 57개국 1,000개 이상의 사이트가 이 망에 연결되어 테스트를 했다. 하지만 이 망이 만들어진 목적이 테스트인 만큼 이 망은 2006년 6월 6일을 기해서 없앴다고 한다. 그리고 그동안 사용했던 주소 영역은 IANA(Ineternet Assgined Numbers Authority)로 다시 반납했다고 한다.

그리고 1993년 IPv6 포럼이 발족하게 된다. 이 포럼에서는 IPv6에 대한 여러 가지 기능을 협의하고 표준에 대한 의견을 수렴하는 역할을 하고 있다. 현재는 거의 모든 네트워크 제품 벤더들은 IPv6의 기능을 자사 제품에 탑재하고 있을 정도로 이제 IPv6는 더 이상 미래의 이야기가 아니라 바로 눈앞에 닥친, 아니 벌써 우리 곁에서 진행되고 있는 현실이다.

3. 왜 갑자기 IPv4에서 IPv6로 뛰었을까?

궁금한 점이 있을텐데 IPv5는 있었을까? 그동안 사용하던게 IPv4였는데 왜 갑자기 IPv5를 건너뛰고 IPv6로 갔을까? 우선 IPv5는 존재한다. IPv5는 QoS(Quality of Service)제공을 위한 실험적인 Resource reservation protocol로써 Internet Stream Protocol(ST)로 정의된다.

다시 말하자면 IPv5는 인터넷과 같은 곳에서 디지털 사운드나 멀티미디어 데이터와 같은 리얼타임 데이터를 효과적으로 전송하기 위해 만들어진 프로토콜이라는 것이다. IPv5는 네트워크 경로 위에 리얼타임 스트리밍 데이터를 보낼 때를 대비해서 네트워크 자원(resource)을 예약(reserve)해둘 수 있기 때문에 자신만의 네트워크 자원을 가지고 전송이 가능하게 되는 것이다. 이래야 소리나 영상 같은 데이터가 끊어지지 않고 부드럽게 전송 될 수 있는 것이다.

꽤나 좋은 프로토콜이긴 하지만, IPv5는 IPv4와 공존하면서 상호 작용을 하도록 디자인된 프로토콜로 IPv4를 대체하기 위한 프로토콜은 아니다. 실제로도 IPv4와 IPv5는 동일한 주소 구조를 가지고있기 때문에 IPv6와는 차원이 다르다고 볼 수 있다. 다만 IPv4와 IPv5의 차이점은 패킷의 첫 번째 4비트 부분인 IP version number가 다르다는 것 뿐이다. 1970년대 말기에 만들어진 IPv5로 알려진 프로토콜은 이제 RSVP(Resource Reservation Protocol)와 비슷한 역할을하는 다른 프로토콜이 나오면서 그 쓰임새가 많이 줄었다고 한다.

4. IPv6에서 무엇이 달라졌냐고 묻는다면..

IPv6의 특징에 대하 알아보도록 하자. 먼저 가장 큰 특징은 넓어진 주소 공간이다. 이렇게 주소 공간이 넓어진 것은 주소 부족의 문제를 해결하는 것뿐만 아니라 여러 가지를 가능하게 해준다.

먼저 Global address이다. 말 그대로 주소의 겹침 없이 전 세계적으로 유일한 주소를 마음놓고 쓸 수 있다는 것이다. 글로벌 주소를 갖게 되면 flexibility, 즉 주소 배정에 융통성이 가능해지고, 주소를 체계적으로 배정할 수 있어서 나중에 주소들을 집합해서 하나의 주소를 만드는 aggregation을 효과적으로 수행해 줄 수 있으며, 한 경로 또는 장비의 문제시 끊기는 현상이 없는 전송을 위한 multihoming(한 곳에 문제가 생겼을 때 돌아갈 곳을 정해두는 방식) 역시 훨씬 편리하게 수행 가능해졌다.

다음으로 IP Header의 구조가 대폭 개선되었다. 즉 여러가지 정보를 담고 있는 헤더가 그동안 복잡해서 라우팅의 성능 개선이 어려웠는데, IPv6에서는 헤더의 정보를 간소화하고 효과적으로 배치해서 라우팅의 성능을 획기적으로 올릴 수 있게 했다. 또한 다양한 IPv4로부터 IPv6로의 이전 옵션을 제공하는데, 이는 어차피 아무리 IPv6가 좋아도 하루아침에 IPv4가 전부 IPv6로 넘어갈 수는 없어서 한동안은 두 버전의 양립이 필요하다. 이때 IPv4와 IPv6간의 다양한 전환기법들이 제공되어야 IPv6로의 변경이 용이해지게 되어서 iPv6에서는 여러 가지 다양한 옵션의 전환기능을 제공하게 된다.

출처 : 후니의 쉽게 쓴 시스코 네트워킹 (출판사:성안당)