업데이트됨 1개월 전
인터넷이 주소를 모두 소진했습니다.
비유가 아닙니다. 말 그대로입니다. IPv4는 약 43억 개의 주소를 제공하는데, 우리는 그걸 전부 써버렸습니다. 스마트폰, 스마트 온도조절기, 보안 카메라—이 모든 것에 주소가 필요한데, 80억 명의 사람들과 각자 수십 개의 기기가 있는 세상에서 43억 개로는 턱없이 부족했습니다.
AAAA 레코드는 이 문제에 대한 DNS의 해답입니다. A 레코드가 도메인 이름을 IPv4 주소로 연결하듯, AAAA 레코드는 도메인 이름을 IPv6 주소로 연결합니다. 이름 자체가 무슨 일이 있었는지 정확히 말해줍니다. 우리는 네 배 더 넓은 공간이 필요했습니다. IPv6 주소는 128비트인데, IPv4의 32비트보다 정확히 네 배 큽니다. 그래서 레코드 타입에 A가 하나가 아닌 네 개 붙었습니다.
AAAA 레코드의 생김새
이 레코드의 의미: "example.com은 이 IPv6 주소에 있습니다. 이 답변을 3600초 동안 캐시하세요."
IPv6 주소는 IPv4와 생김새가 다릅니다. 점으로 구분된 네 개의 십진수(192.0.2.1) 대신, 콜론으로 구분된 여덟 그룹의 16진수로 구성됩니다. 더 길지만 줄여 쓸 수 있습니다—연속된 0 그룹은 ::으로 축약됩니다. 따라서 2001:0db8:0000:0000:0000:0000:0000:0001은 2001:db8::1이 됩니다.
동작 방식은 A 레코드와 동일합니다. 클라이언트가 DNS에 요청하면, DNS가 주소를 반환하고, 클라이언트가 연결합니다. 유일한 차이점은 반환되는 주소의 크기뿐입니다.
두 세계에서 살아가기
인터넷이 IPv4에서 IPv6로 하룻밤 사이에 전환될 수는 없습니다. 수십억 개의 기기, 수십 년의 인프라, IPv4만 이해하는 수많은 시스템—이들을 그냥 꺼버릴 수는 없습니다.
그래서 우리는 두 가지를 함께 운영합니다. 이를 듀얼 스택이라고 합니다:
같은 도메인, 두 개의 주소. IPv4 클라이언트는 A 레코드를 사용합니다. IPv6 클라이언트는 AAAA 레코드를 사용합니다. 모두가 접속할 수 있습니다.
트래픽이 많은 서비스의 경우 각 유형별로 여러 레코드를 볼 수 있습니다:
이렇게 하면 두 프로토콜 체계 모두에서 이중화가 제공됩니다. 서버 하나에 장애가 생기면 트래픽이 다른 서버로 넘어갑니다. IPv6에 문제가 생겨도 IPv4가 계속 작동합니다.
Happy Eyeballs
브라우저가 A 레코드와 AAAA 레코드를 모두 발견하면, 어느 것을 택할까요?
경쟁을 붙입니다.
이 알고리즘의 이름은 Happy Eyeballs입니다(맞습니다, 진짜 이름입니다—RFC에 그렇게 나와 있습니다). 브라우저는 IPv6로 연결을 시작하고, 50~250밀리초 후에 IPv4 연결도 함께 시작합니다. 먼저 완료되는 쪽이 이깁니다. 진 연결은 끊깁니다.
낭비처럼 보일 수 있지만, 사실 영리한 방식입니다. IPv6가 먼저 시작되므로 둘 다 잘 작동할 때는 IPv6가 이깁니다—IPv6 보급을 장려하는 셈이죠. 하지만 IPv6가 끊기거나 느리다면 IPv4가 자동으로 이깁니다. 타임아웃을 기다릴 필요가 없습니다. 아무것도 설정할 필요가 없습니다. 그냥 가장 빠르게 작동하는 연결을 얻을 뿐입니다.
이 알고리즘은 기억도 합니다. 지난번에 IPv6가 실패했다면 앞서 출발하는 시간을 조정합니다. 특정 목적지가 항상 IPv4에서 더 잘 작동한다면 그걸 학습합니다. 시간이 지날수록 연결이 더 빨라집니다.
전환은 지금도 진행 중
구글로 향하는 트래픽의 40% 이상이 이미 IPv6로 도달하고 있습니다. 일부 국가는 70%를 넘습니다. 이동통신사들이 선두를 달리고 있습니다—줄어드는 IPv4 할당을 관리하는 것보다 IPv6 전용 셀룰러 네트워크를 구축하는 편이 더 쉽기 때문입니다.
이것이 중요한 이유는, 일부 네트워크가 IPv6 전용으로 전환하고 있기 때문입니다. 이들은 IPv4 전용 서버에 접근하기 위해 변환 기술(NAT64/DNS64)을 사용하지만, 그 변환 과정에서 지연 시간과 복잡성이 추가됩니다. AAAA 레코드가 있는 서비스는 이 변환을 완전히 건너뜁니다.
AAAA 레코드를 게시하지 않으면 단순히 IPv6 사용자를 놓치는 것만이 아닙니다—전환 중인 네트워크의 사용자들에게도 더 느린 경험을 안겨주게 됩니다. 더 많은 통신사가 IPv6 전용으로 전환할수록, AAAA 레코드 없이 운영하는 대가는 점점 커집니다.
올바르게 설정하기
실제로 작동하는 IPv6에만 AAAA 레코드를 게시하세요. 당연해 보이지만 흔한 실수입니다. 서버에 실제로 IPv6 연결이 없다면 AAAA 레코드를 게시해도 오류만 생깁니다. Happy Eyeballs가 결국 IPv4로 전환되겠지만, 지연이 추가되고 IPv6 전용 클라이언트의 경험이 깨집니다.
TTL을 맞추세요. A 레코드의 TTL이 3600초이고 AAAA 레코드의 TTL이 300초라면, 캐시는 한 주소만 갖고 다른 주소는 없는 상태가 됩니다. 이로 인해 일관성 없는 동작과 불필요한 DNS 쿼리가 생깁니다.
IPv6 전용 네트워크에서 테스트하세요. IPv6 문제를 찾는 가장 쉬운 방법은 IPv4 대체 경로를 제거하는 것입니다. test-ipv6.com 같은 도구가 도움이 되지만, 실제 IPv6 전용 연결에서 테스트하는 것만큼 좋은 건 없습니다.
두 프로토콜을 각각 따로 모니터링하세요. IPv6 트래픽 패턴은 IPv4와 다릅니다. IPv4 성능은 훌륭한데 IPv6가 고장나 있거나, 그 반대일 수도 있습니다. 둘 다 측정하지 않으면 눈 감고 운전하는 것과 마찬가지입니다.
더 넓은 시각으로
AAAA 레코드는 인터넷이 원래의 주소 체계를 넘어 성장했기 때문에 존재합니다. 이것은 인터넷 역사상 가장 크게 조율된 변화—대규모로 진행 중인 인프라 전환에서 DNS가 담당하는 부분입니다.
듀얼 스택 시대는 영원히 지속되지 않을 것입니다. 결국 IPv4는 다이얼업이 사라진 것처럼 사라질 것입니다. 그때가 오면, AAAA 레코드가 없는 서비스는 인터넷의 점점 더 넓은 영역에서 그냥 접근 불가능해집니다.
그 미래는 가상의 이야기가 아닙니다. 모바일 네트워크에서는 이미 일어나고 있습니다. IPv4 주소 비용을 감당하기 어려운 데이터 센터에서도 이미 일어나고 있습니다. 매년 인터넷은 조금씩 더 IPv6 중심으로 바뀌고 있습니다.
AAAA 레코드는 그 미래에서도 여러분의 서비스를 찾을 수 있게 해주는 방법입니다.
AAAA 레코드에 대한 자주 묻는 질문
왜 다른 이름이 아닌 "AAAA"라고 할까요?
이름은 수학을 반영합니다: IPv6 주소는 128비트로, IPv4의 32비트 주소보다 정확히 네 배 큽니다. 비트가 네 배이니 A도 네 개입니다. DNS의 명명 방식 중 가장 직관적인 사례 중 하나입니다.
A 레코드와 AAAA 레코드 둘 다 필요한가요?
지금은 그렇습니다. 듀얼 스택(두 레코드 유형 모두)으로 운영하면 네트워크의 프로토콜 지원에 상관없이 모든 클라이언트가 접속할 수 있습니다. 언젠가 IPv4는 선택 사항이 되겠지만, 아직 그 단계는 아닙니다.
AAAA 레코드는 있지만 IPv6가 작동하지 않으면 어떻게 되나요?
IPv6를 사용하는 클라이언트는 연결을 시도하다 실패합니다. Happy Eyeballs가 잠시 후 IPv4로 전환되지만, IPv6 전용 클라이언트(모바일에서 점점 늘어나는)는 아예 접근할 수 없게 됩니다. IPv6가 실제로 작동할 때까지 AAAA 레코드를 게시하지 마세요.
IPv6가 사이트를 더 빠르게 만들어줄까요?
경우에 따라 다릅니다. IPv6는 NAT 통과를 제거해 지연 시간을 줄일 수 있습니다. 일부 ISP는 IPv4보다 IPv6 라우팅이 더 좋습니다. 하지만 주요 이점은 속도가 아니라 도달 가능성입니다. 네트워크가 IPv6 전용이 되어가면서, AAAA 레코드가 있다는 건 변환 오버헤드 없이 누구나 접근할 수 있다는 의미입니다.
AAAA 레코드가 올바르게 작동하는지 어떻게 테스트하나요?
dig AAAA yourdomain.com을 사용해 레코드가 존재하고 올바른 주소를 반환하는지 확인하세요. 그런 다음 IPv6 전용 네트워크에서—실제 네트워크이거나 test-ipv6.com 같은 도구를 이용해서—실제 연결을 테스트하세요. 레코드가 존재하는 것만으로는 충분하지 않습니다. 해당 주소로 실제로 접근할 수 있어야 합니다.
이 페이지가 도움이 되었나요?