Skip to main content

네임서버 이관하기

네임서버는 인터넷에서 굉장히 중요한 역할을 합니다. 사용자가 웹사이트에 도메인을 입력할 경우 /etc/hosts와 같은 로컬 파일에 도메인과 아이피가 매핑되어 있지 않거나 운영체제 로컬 캐시에 도메인의 아이피가 남아있지 않을 경우 DNS 재귀적 쿼리를 통해 루트 네임 서버부터 차례로 쿼리를 진행하여 최종적으로 도메인의 아이피 정보를 얻게 됩니다. 즉, 네임서버는 인터넷에서 도메인 이름을 IP주소로 변환하는 데 필수적인 역할을 합니다.

그런데 만약 내 도메인의 네임 서버가 디도스 공격을 받는다면?

말 그대로 내가 사용중인 도메인의 네임서버가 디도스 공격을 받는다면 도메인의 아이피 정보를 받아올 수 없어 도메인으로 웹 서버에 접근할 수가 없게 됩니다. 이는 곧 운영중인 웹사이트를 고객이 사용할 수 없게 된다는 것과 동일합니다. 이전에 사용하던 도메인들의 경우 도메인 구매처도 가비아였고 네임서버도 가비아의 네임서버를 사용하고 있었습니다. 하지만 가비아 네임서버가 디도스 공격을 받게 되면서 네임서버 역할을 하지 못하게 됐고 이는 곧 가비아 네임서버를 사용중인 모든 도메인들을 사용할 수 없는 결과를 초래하였습니다. 따라서 빈번하게 디도스 공격을 받는 가비아의 네임서버 대신 AWS의 네임서버를 사용하기로 결정하였고 이를 위해 마이그레이션 작업을 진행하였습니다.

어떻게 네임서버 이관 작업을 진행했을까?

  1. 먼저 가비아 네임서버를 사용하였기 때문에 가비아 호스팅 영역 안에 레코드를 신규로 등록 및 삭제하여 도메인을 추가 또는 삭제하였으므로 이관 후에도 사용하지 않을 레코드를 먼저 삭제하였습니다.
  2. 이후 AWS에 사용중인 도메인별(SAN)로 호스팅 영역을 생성한 뒤에 가비아 호스팅 영역에 있는 레코드들을 AWS 호스팅 영역 안의 레코드로 등록하는 과정을 거쳤으며 이 때 네임서버 이관으로 인한 DNS 전파시간을 최소한으로 잡기 위해서 TTL을 짧게 설정하였습니다. 주로 사용되는 레코드는 CNAME과 A 레코드였으며 CNAME의 경우 CDN 도메인 등록을 위한 레코드로 사용하였습니다.
  3. 모든 레코드를 등록한 후에는 최종적으로 네임서버 이관을 위해 도메인 구매처였던 가비아 포털로 이동하여 등록된 도메인의 네임서버를 AWS의 4가지 네임서버로 변경하여 등록하였습니다.
  4. 실제로 운영중인 도메인들이었기 때문에 모니터링과 함께 DNS 리졸빙 테스트를 진행하였으며 DNS 전파를 국가별로 확인하기 위해 DNS 체커와 같은 웹사이트를 사용하였습니다.

  1. 사용하지 않는 레코드 정리
  2. AWS 호스팅 영역 생성
  3. 레코드 등록
  4. 도메인 구매처의 네임서버 변경
  5. DNS 리졸빙 테스트
  6. 전파 완료 후 짧게 설정했던 TTL을 기본값으로 변경

개념적으로 DNS 전파는 24~48시간 내로 알고 있어 꽤 오랜 시간이 소요될 것으로 예상하였지만 약 600개가 넘는 도메인들(레코드)과 연관된 네임서버가 DNS 전파에 걸리기 까지 약 1시간 30분 정도가 소요되었습니다.

아래는 가비아 네임서버에 대한 디도스 공격에 관한 기사입니다.