웹사이트와 인터넷에 관한 글을 읽어본 적이 있다면 'IPv6'라는 용어를 들어본 적이 있을 것입니다. 공유기 설정을 만지다가 우연히 접했을 수도 있습니다. 하지만 용어를 알고 있어도 정확한 의미까지 이해하는 사람은 많지 않습니다.
물론 IPv6를 아예 처음 들어보셨을 수도 있습니다. 접해본 경험이 있든 없든, IPv6는 앞으로의 인터넷 환경에서 매우 중요한 역할을 합니다. 특히 웹사이트를 직접 운영하고 있다면 IPv6에 대해 미리 숙지해 두는 것이 필수적입니다.
IPv6란 무엇인가?
IPv6가 무엇이고 IPv4와 어떻게 다른지 설명하기에 앞서, 먼저 IP 주소의 개념부터 짚고 넘어가겠습니다. 브라우저에 웹사이트 주소를 입력하면, 이 도메인 이름은 DNS(도메인 네임 서버)로 전달되고, DNS는 브라우저에 해당 서버의 IP 주소를 알려줍니다. 컴퓨터들은 바로 이 IP 주소를 통해 인터넷상에서 서로 통신합니다.
오랫동안 IP 주소는 123.45.67.89처럼 점으로 구분된 32비트 주소 체계를 사용해 왔습니다. 이것이 IPv4 주소가 표현할 수 있는 최대 범위입니다. 다시 말해, 사용 가능한 IP 주소는 000.000.000.000부터 255.255.255.255 사이로 한정됩니다.
실제로는 특수한 용도로 예약된 대규모 주소 블록들이 존재하기 때문에 상황은 조금 더 복잡하지만, 전체적인 개념은 이해하셨을 것입니다.
문제는 전 세계에 서버가 너무나 많다는 점입니다. 게다가 우리가 접하는 웹사이트 대부분은 하나가 아니라 여러 개의 IP 주소를 사용합니다. 결국 32비트로 표현할 수 있는 주소는 금세 고갈될 수밖에 없습니다.
IPv6, 그 해결책
32비트 주소 공간을 사용하는 IPv4와 달리, IPv6는 128비트 주소 공간을 사용합니다. 주소 길이가 훨씬 길기 때문에 이미 현실이 된 IPv4 주소 고갈 문제를 걱정할 필요가 없습니다. 대신 주소 표기가 다소 낯설고 복잡하게 느껴질 수는 있습니다.
IPv6 주소는 네 자리 문자로 이루어진 8개의 그룹으로 구성되며, 16진법을 사용하기 때문에 표현 가능한 조합이 훨씬 다양합니다. IPv6 주소의 예는 다음과 같습니다: 2001:0db8:0000:0000:0000:8a2e:0370:7334
사이트의 IPv6 대비 상태 확인 및 준비 방법
IPv4를 IPv6로 일괄 교체하는 것이 아니라, 두 프로토콜은 한동안 병행 운영됩니다. 따라서 웹사이트에 IPv6 지원을 추가하는 작업은 기존 IPv4 설정과 함께 진행할 수 있습니다.
먼저 서버가 IPv6 주소를 수신하도록 설정해야 합니다. 설정 방법은 서버 소프트웨어마다 다르므로 사용 중인 소프트웨어의 공식 문서를 참고하세요. 예를 들어 Nginx에서는 서버 설정 파일에 다음 한 줄만 추가하면 됩니다:
listen [::]:443 ssl http2;
여기서 [::]는 IPv6 주소를 의미합니다.
다음으로, 웹사이트와 루트 도메인 모두에 AAAA 레코드를 추가해야 합니다. AAAA 레코드는 사이트 구축 당시 도메인 등록기관을 통해 설정했던 A 레코드의 IPv6 버전이라고 생각하면 됩니다.
또한 DNS 서버 자체에도 IPv6 주소가 할당되어 있는지 확인해야 합니다. 그렇지 않으면 사이트가 IPv6로 트래픽을 처리하더라도 사용자를 사이트로 연결하는 과정에서는 여전히 IPv4가 필요합니다. whois 명령어 뒤에 도메인 이름을 붙여 실행하면 손쉽게 확인할 수 있습니다.
메일 서버까지 함께 운영하고 있다면 상황이 조금 더 복잡해집니다. 메일 서버에도 IPv6 주소를 추가해야 하고, 발신 메일 인증을 위해 SPF 레코드에 IPv4 서버를 명시했다면 IPv6 주소 역시 함께 등록해야 합니다.
여기까지의 내용만으로도 웹사이트에 IPv6를 적용하기 위해 어디서부터 시작해야 할지 감을 잡으셨기를 바랍니다.
마치며
주소 표기가 기존 IPv4보다 다소 복잡해 보일 수 있지만, IPv6는 생각만큼 어렵지 않습니다. 나중에 겪을 수 있는 불편과 문제를 미리 예방할 수 있다면, 전환이 강제되는 시점까지 기다리지 말고 지금 바로 사이트를 IPv6에 대비시켜 두는 것이 현명한 선택입니다.
특히 홈 서버로 웹사이트를 운영하고 있다면 보안 설정도 반드시 점검해야 합니다. 홈 리눅스 서버 보안 가이드를 함께 참고하면 큰 도움이 될 것입니다.