해당 글은 2023. 10. 17에 작성되었습니다.
32-bit의 address space를 초기에 확보해놓았던 IPv4는 2^32개 가량이 되는 주소를 담을 수 있었기에, 충분하다고 생각하였다. 그러나 시간이 지나면서 IP address의 할당이 필요한 network device와 그에 따른 interface의 수요가 매우 늘어나며 인당 2개이상의 device는 기본이 되었다. 따라서 더 이상 IPv4의 address space로는 감당할 수 없어서 두 가지 해결책을 내놓는다.
S1 : IPv6
S2 : NAT
오늘은 IP의 새로운 버전인 IPv6과 그 상용화 과정에서 사용되는 tunneling 기법에 대해 알아보도록 하겠다.
IPv6는 32bit의 address space를 갖던 기존의 IPv4보다 훨씬 많은, 128-bit이 address space를 확보해놓는다. 이에 벌써 천문학적인 space를 확보할 수 있게 된다.
말 그대로 터널을 만드는 기법이다. IPv6 datagram을 IPv4 라우터들 사이에서 어떻게 전송될 수 있을까. 방법은 IPv6 datagram을 마치 IPv4 datagram처럼 둔갑을 시켜서 IPv4 라우터들의 네트워크에서도 무리없이 전송되도록 하는것이다.
그 방법이 tunneling인데, IPv6 datagram의 겉을 IPv4 datagram으로 encapsulate 시키는 것이다. 패킷의 겉에 가상의 패킷을 하나 덧씌우는 것이다.

IPv4와 IPv6 모두 허용하는 라우터에 IPv6를 IPv4로 캡슐화하고, 도착지에서 받은 데이터는 헤드가 벗겨지면서 다시 decapsulation 후에 IPv6로 받는다. IPv6의 원할한 전송을 위한 '터널'(Tunnel)을 놓는 듯한 기법이다.
->IPv6의 점유율은 Google에서는 ~30%, NIST에서도 아직 1/3밖에 안된다. Network Layer 자체를 대체하는 것은 상상 이상으로 규모가 큰 작업에 속한다. Network의 근간을 완전히 바꾸는 작업이니 오래 걸릴 수 밖에 없다. 약 25년 정도가 걸린다고 하니 그 때 까지, 적절한 Tunneling 기법 사용 + NAT 로 한계를 극복해야겠다.
끝!