brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Mar 07. 2023

네이버 13탄-1. 개발자가 알아야 할 DNS 동작 1

작성자 소개

작성 : (전) 네이버 DNS담당자


개발자가 알아야 할 DNS동작에 대해 알아보자.

운영자이지만 DNS동작을 잘 모른다면 들어보자.

DNS이전과 관리를 해야 하는데 잘 모른다면 들어보자.

클라우드 네임서버도 이해해 보자~

최근 클라우드 사업자의 네임서버 장애, 도메인 등록 대행업체로 DDOS공격으로 인한 장애도 이해해 보자.

용어 이해, 네임서버 운영, 네임서버 장애 대응, 보안에 대해 정리합니다.


다음은 개인적으로 정리한 내용이라 틀릴 수 있습니다 ~



<1> DNS 용어 이해 - 네임서버, 도메인 등록 대행기관, 캐시 DNS

<2> 네임서버 운영-도메인 등록 대행 기관에서 도메인 구매하고, 네이버 클라우드에서 네임서버 운영하기


<3> 네임서버 운영-도메인 등록 대행 기관의 네임서버 사용하기

<4> 네임서버 장애 대응-도메인 등록 대행기관 네임서버 장애 시(변경 사이트 접근 불가), 네이버 클라우드 네임서버로 이전하기

<5> 네임서버 장애 대응 - 도메인 등록 대행기관 네임서버 장애 시(변경 사이트 접근 가능), 네이버 클라우드 네임서버로 이전하기

<6> 네임서버 장애 대응-네이버 클라우드 DNS 장애 시,  도메인 등록 대행기관으로 네임서버로 이전하기

<7> 네임서버 장애 대응-네이버 클라우드 DNS 장애 시에도 다른 CSP 네임 서버에서 서비스 계속 되게 하기

<8> 네임서버 장애 대응-AWS장애 시 네이버 클라우드로 네임서비스 변경 하려면?

<9> 네임서버 장애 대응 - (정리) CSP의 DNS장애 대응법

<10> 네임서버 장애 대응 - (정리) 도메인 등록 대행 기관 DDOS공격으로 인한 DNS장애 대응법


<11> 보안 - 도메인 등록 대행 기관 로그온시 2단계 인증 필수로 사용하기

<12> 보안 - 클라우드 서비스 업체 로그온시  2단계 인증 필수로 사용하기

<13> DNS관련해 더 알고 싶으시면 참고 할 만한 사이트




<1> DNS 용어 이해 - 네임서버, 도메인 등록 대행기관, 캐시 DNS


1

네임서버 (NS) ?

해당 도메인에 대한 IP정보를 가진 서버


예)

dig www.serverup11.com


;; ANSWER SECTION:

www.serverup11.com.     197     IN      A       125.6.45.154


;; AUTHORITY SECTION:

serverup11.com.         172697  IN      NS      ns1-1.ns-ncloud.com.

serverup11.com.         172697  IN      NS      ns1-2.ns-ncloud.com.





2

도메인 등록 대행 기관?

가비아, 아이네임즈, 후이즈 등

도메인 등록을 대행해 준다.

네임서버를 찾아가도록 네임서버가 어디 있는지 정보만 상위 기관에 전달해 준다.

네임서버 정보를 알려주는 역할만 한다.

디폴트로는 네임 서버 역할을 하지는 않는다.

하지만, 네임서버가 없는 경우  도메인 등록 대행 기관에서 네임 서버 역할도 제공한다.


예)

dig www.serverchk.com


;; AUTHORITY SECTION:

serverchk.com.          86400   IN      NS      ns.gabia.co.kr.

serverchk.com.          86400   IN      NS      ns1.gabia.co.kr.

serverchk.com.          86400   IN      NS      ns.gabia.net.




3

캐시 DNS?

캐시 정보를 가진 DNS.

ISP와 이동 통신사의 DNS를 캐시 DNS라고 한다.

사용자는 이 캐시 DNS에서 정보를 가지고 온다.

캐시 정보는 ISP DNS가 가지고 있다.

캐시 TTL 시간은 네임서버가 정한다. (네임서버에서 설정한다)

NS TTL은 보통 하루이다. 86400초(1일)

www 개별 호스트 TTL은 보통 5분 정도로 한다. 600초(5분)

따라서,  www ip를 변경하면 얼마 걸린다?

NS 변경하는 데는 얼마 걸린다?



4

TTL?

타임 투 라이브, 살아 있는 시간

캐시 DNS에서 TTL 시간이 지나야 , www 나 NS 정보를 다시 받아 온다.

캐슁 된 TTL은 ISP가 가지고 있어서  갑자기 변경이 불가능한다.

사용자는 이 ISP 캐시 DNS에서 IP정보를 가지고 찾아온다.

www TTL은  보통?

NS TTL은  보통?


5

CSP (Cloud Service Provider)?

클라우드 서비스를 제공하는 기업이다.

AWS, Azure , GCP , Naver, NHN , Kakao i Cloud  등이다.

모두 네임서비스를 제공한다.

AWS만  .com 등의 도메인 구매가 가능하다.  co.kr은 구매 불가.





<2> 네임서버 운영 - 도메인 등록 대행 기관에서 도메인 구매하고, 네이버 클라우드에서 네임서버 운영하기



1

도메인 등록 대행기관에서 도메인 구매

https://www.gabia.com/


2

클라우드에서 네임서버 사용할 시에는

도메인 등록 대행기관(가비아 등)에서 구매 한 경우 네임서버 변경이 필요하다.


예)

도메인을 가비아에서 구매하고,  네이버 클라우드 네임서버 사용할 시.


https://www.gabia.com/

My가비아 > 도메인 클릭 > 관리 > 네임서버 설정 >


1차

ns1-1.ns-ncloud.com

2차

ns1-2.ns-ncloud.com



3

네이버 클라우드 Global DNS에서  구매한 도메일을 추가해 사용한다.

www에 대해서도  등록한다.




4



5

동작








<3> 네임서버 운영 - 도메인 등록 대행 기관의 네임서버 사용하기


네임서버를 사용하는 여러 가지 방법이 존재한다.

그중 도메인 등록 대행기관(가비아, 아이네임즈 등)의 네임 서버를 사용해 네임서비스를 해보자.

가장 손쉬운 방법이다.



1

도메인 등록 대행기관(가비아, 아이네임즈 등)에 도메인을 등록한다.


2

등록 시 , 네임서버 정보를 도메인 등록 대행기관(가비아, 아이네임즈 등)의 네임 서버를 이용으로 해서 사용한다.



3

예)

가비아의 경우

My가비아 >  도메인 > 관리 > 설정 > 전체 가비아 네임서버 사용 체크

ns.gabia.co.kr

ns1.gabia.co.kr

ns.gabia.net


소유자 인증

적용



4

A레코더 등록법 ?

도메인 정보 변경 > DNS관리 > 설정 > 레코드 수정 > 레코드 추가

A 레코더를 등록한다.

www 11.11.11.11

확인

저장



확인

dig www.serverchk.com


;; ANSWER SECTION:

www.serverchk.com.      600     IN      A       11.11.11.11


;; AUTHORITY SECTION:

serverchk.com.          86400   IN      NS      ns.gabia.co.kr.

serverchk.com.          86400   IN      NS      ns1.gabia.co.kr.

serverchk.com.          86400   IN      NS      ns.gabia.net.


;; ADDITIONAL SECTION:

ns.gabia.co.kr.         28532   IN      A       43.201.170.100

ns1.gabia.co.kr.        30607   IN      A       121.78.117.39

ns.gabia.net.           36281   IN      A       110.45.166.50

ns.gabia.net.           36281   IN      A       211.234.124.90



5

제약 사항?                                                                                                                                                                                  

가비아 A레코더 TTL 은 ?

디폴트 TTL 1800(30분)  -> 변경 반영이 디폴트 30분이다. 서비스 이전 시는 더 줄여야 한다.

최소 600(5분)이다.

30초로 줄이고 싶으면?





<4>  네임서버 장애 대응 - 도메인 등록 대행기관 네임서버 장애 시(변경 사이트 접근 불가), 네이버 클라우드 네임서버로 이전하기


이전 불가.

네임서버 정보를 변경하지 못하므로 이전이 불가하다.






<5>  네임서버 장애 대응 - 도메인 등록 대행기관 네임서버 장애 시(변경 사이트 접근 가능), 네이버 클라우드 네임서버로 이전하기


클라우드 서비스 기업의 네임서버로 운영하는 방법이다.

변경 가능할 때 변경 하는 것도 방법이다.



0

전제 조건

도메인 등록 대행기관에 접속해 네임서버를 변경할 수 있어야 한다.



1

이전 시간?

기존 가비아에서 다른 네임서버 변경하는 데는 1일이 걸린다.

NS TTL이 1일 이기 때문에  Cache DNS에서는 1일 이후 NS정보가 반영된다.



2

작업 순서?

도메인 등록 대행기관 사이트 접속하여 A레코드를 확인한다.

네이버 Global DNS에 A레코더를 미리 설정한다.

네임서버는 1주에 한번 주기적으로 A 레코드를 백업받아 놓자.  (엑셀 다운로드 기능이 있다)



3

도메인 등록 대행기관 사이트 접속하여 A레코드를 확인한다.


My가비아 > 관리 > DNS정보 > DNS관리 > 도메인 클릭 > 설정


설정된 호스트 확인




4

네이버 클라우드 로그인

Global DNS에서 DNS설정한다.

가비아에서 확인한  A레코드 등록.

설정 적용 > 배포까지 해야 한다.



5

도메인 등록 대행기관(가비아) 사이트에서 네임 서버를 네이버 네임서버로 변경한다.


My가비아 > 관리 > 네임서버 설정 >


1차

ns1-1.ns-ncloud.com


2차

ns1-2.ns-ncloud.com


소유자 인증

적용



6

도메인 등록 대행기관 (가비아 예)의  NS TTL은 1일 (86400)이다.

따라서,  1일이 지나야 네이버 네임서버로 변경 된 부분이 반영된다.

// NS TTL을 미리 줄여 놓고자 했으나, 변경하는 부분은 없어 변경은 안된다.



7

확인해 보자


1)

dig www.serverup11.com


설정 적용 > 배포까지 해야 한다.


2)

while true; do dig www3.serverup11.com ; echo "------------------------------" ; sleep 2; done

while true; do dig www4.serverup11.com ; echo "------------------------------" ; sleep 2; done

while true; do dig www5.serverup11.com ; echo "------------------------------" ; sleep 2; done


3)

https://www.whatsmydns.net/


4)

https://dnschecker.org/





===============================================================



클라우드 DNS는 무조건 안전한가?

아니다.

장애 날 수 있다.






<6>  네임서버 장애 대응 - 네이버 클라우드 DNS 장애 시,  도메인 등록 대행기관으로 네임서버로 이전하기



1

네임서버(NS) TTL시간으로 인해  바로 이전되지 않는다.

디폴트 NS TTL 은 1일(24시간)이다.



2

빠른 이전을 원한다면  네이버 클라우드에서 NS TTL을 최소 1일 전에  3600(1시간) 정도로 미리 줄여 놓자.




[root@s186 bab4 bb68 ~]# dig serverup11.com ns

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> serverup11.com ns

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16252

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;serverup11.com.                        IN      NS

;; ANSWER SECTION:

serverup11.com.         86286   IN      NS      ns1-1.ns-ncloud.com.

serverup11.com.         86286   IN      NS      ns1-2.ns-ncloud.com.

;; ADDITIONAL SECTION:

ns1-1.ns-ncloud.com.    24924   IN      A       49.236.156.6

ns1-2.ns-ncloud.com.    24924   IN      A       49.236.157.6

;; Query time: 0 msec

;; SERVER: 169.254.169.53#53(169.254.169.53)

;; WHEN: Tue Mar 07 18:04:38 KST 2023

;; MSG SIZE  rcvd: 125

[root@s186 bab4 bb68 ~]#




3

네이버 클라우드에서 A레코더 확인

Excel 다운로드 기능이 있다.

1주에 1번은 백업하자.



4

도메인 등록 대행기관에서 운영할 거라면 A 레코더를 등록한다.

My가비아 > 관리 > DNS정보 > DNS관리 > 도메인 클릭 > 설정


5

도메인 등록 대행기관에서  네임서버를 아래로 변경

가비아 예)

ns.gabia.co.kr

ns1.gabia.co.kr

ns.gabia.net


NS 디폴트 TTL 은 1일(24시간)이다.



6

확인

1일이 지나야 네이버 클라우드 NS TTL이 갱신된다.


while true; do dig www.serverup11.com ; echo "------------------------------" ; sleep 5; done






<7>  네임서버 장애 대응 - 네이버 클라우드 DNS 장애 시에도 다른 CSP 네임 서버에서 서비스 계속 되게 하기


1

네이버 클라우드 DNS (CSP 네임서버) 장애 시?

다른 CSP로 네임서버로 이전하는 방법뿐이다.

하지만 바로 이전하려고 해도, ISP Cache DNS에 네임서버가 캐슁 되어 있다.

NS TTL은 보통 하루이다.

빠르게 이전하려면 평소에 NS TTL을 줄여 놓아야 이전이 가능하다.





2

도메인 등록 대행 기관의 사이트에 접속해 해당 도메인의 네임서버 정보 변경이 가능해야 한다.


3

최소 1일 전에 네이버 클라우드 Global DNS에 설정된 도메인의 NS TTL을 3600초(1시간)로 줄여 놓는다.

TTL을  줄이는 이유는 나중에 NS 추가 시 , Cache DNS들에서 NS정보를 캐슁 하므로 갱신이 필요하다.

서비스 장비의 IP가 변경되지 않는 경우는 무관하나, IP가 변경되는 경우는 반영해야 하기 때문이다.


4

네이버 클라우드 DNS에서 A레코더 백업받은 파일을 찾는다.

백업받은 파일로 A레코더를 등록한다.


5

도메인 등록 대행 기관의 사이트에 접속해 해당 도메인의 네임서버 정보를 다른  CSP의 네임서버로 변경한다.



6

(선택)  

A레코더 변경이 많지 않다면,  평소 네이버 클라우드 DNS변경 요청 시 , 다른 CSP DNS서비스에도 레코더도 같이 작업한다.  (조금 비효율적이다)

추후엔 1일 자동 백업이 되도록 한다. A 레코더의 경우 B CSP 네임서버에 자동으로 설정이 되도록 한다.



5

예)

네이버 클라우드 DNS 장애 시?

도메인 등록 대행 기관 사이트에 접속하여,  다른 CSP의 네임서버를 4개를 추가한다.

맨 마지막  점(. )은 뺀다.



6

확인


while true; do dig www.serverup11.com ; echo "------------------------------" ; sleep 3; done


dig www.serverup11.com





<8>  네임서버 장애 대응 - AWS장애 시 네이버 클라우드로 네임 서비스 변경 하려면?



1

전제 조건  3가지

최소 2일 전에 AWS NS TTL을 줄여 놓자.

해당 도메인에 대한 A레코더 정보는 백업받은 게 있어야 한다. 다른 네임서버로 변경하려면  미리 해당 네임서버에 A레코더 정보가 입력되어 있어야 한다. 기존 네임서버에서 자동으로 주기적으로 백업받던지 하자.

도메인 등록 대행 기관에서 네임서버 정보를 변경할 수 있어야 한다.   



2

최소 2일 전에 AWS NS TTL을 줄여 놓자.

AWS NS TTL은 172800(2일)이다

수정 가능하다.



3

확인

while true; do dig www.serverup11.com ; echo "------------------------------" ; sleep 5; done


;; ANSWER SECTION:

www.serverup11.com.     300     IN      A       9.9.9.9

;; AUTHORITY SECTION:

serverup11.com.         60      IN      NS      ns-1626.awsdns-11.co.uk.

serverup11.com.         60      IN      NS      ns-1043.awsdns-02.org.

serverup11.com.         60      IN      NS      ns-857.awsdns-43.net.

serverup11.com.         60      IN      NS      ns-281.awsdns-35.com.



4

해당 도메인에 대한 A레코더 정보는 백업받은 게 있어야 한다.

이전하려는 CSP에 NS세팅을 한다. A레코더까지 등록 완료 되어야 한다.


5

도메인 등록 대행 기관에서 네임서버 정보를 변경할 수 있어야 한다.   

AWS DNS장애 시  도메인 등록 대행 기관에 네이버 클라우드 네임서버로 변경한다.

ns1-1.ns-ncloud.com

ns1-2.ns-ncloud.com


6

결론

현재 운영 중인 도메인에 대한  NS  TTL을 미리 줄여 놓아야 다른 CSP에서 네임서비스가 가능하다.

AWS의 경우 디폴트 값은 172800(2일이다). 최소 2일 전에  NS TTL을 줄여 놓자.  시간은 60초~172800(2일) 가능하다.

백업본은 있어야 한다. 우선 수동으로 백업받아 놓자. 추후 자동 백업을 구현하자.

네임서버 등록한 도메인 등록 대행기관(가비아등) 사이트에 접속해 네임서버 변경이 가능해야 한다.



7

원복시를 대비해 네이버 클라우드 NS TTL도 1시간(3600초) 정도로 줄여 놓자.






<9>   네임서버 장애 대응 - (정리) CSP의 DNS장애 대응법



1

백업받은 DNS A레코더 정보를 가지고 있어야 한다.

타 CSP네임서버에서 네임서비스를 등록하고, 백업받은 DNS A레코더 정보를 입력한다.

자동으로 주기적으로 백업받고 있어야 한다.


2

기존 사용 중인 A CSP의 네임서버 NS 레코더 TTL을 미리 줄여 놓아야 한다.  

최소 2일 전에는 줄여 놓아야 한다.



3

네임 서비스를 사용하는 A CSP가 장애 났을 때, 도메인 등록 대행 기관을 통해 네임 서비스 타 CSP로 변경해서 복구한다.

도메인 등록 대행 기관 사이트에 접속해서, 네임서버 정보를 타 CSP의 네임서버로 변경한다.


4

정책도 사전에 정의되어 있어야 한다.

CSP DNS장애로만 확인되고, 1시간 이상 안되면 네임서비스를 다른 CSP로 전환한다?





<10>  네임서버 장애 대응 - (정리) 도메인 등록 대행 기관 DDOS공격으로 인한 DNS장애 대응법


1

네임 서버 이전으로 대응하자.


2

디폴트로 도메인 등록 대행기관의 네임서버가 아닌 다른 CSP 네임서버를 사용하고 있어야 한다.

또다시  DDOS  공격으로 사이트 접속이 안되면  이전 방법이 없다.





<11> 보안 - 도메인 등록 대행 기관 로그온시 2단계 인증 필수로 사용하기


1

도메인 등록 대행기관(가비아, 아이네임즈 등) 사이트 로그인 시 2단계 인증 필수로 사용하자.

가비아의 경우 > My정보 관리 > 보안 설정 > 로그인 2단계 인증(OTP)에서 설정한다.


https://my.gabia.com/myinfo#/security



2

타 사이트 계정 탈취 당해, 해당 도메인 등록 대행기관 사이트도 해킹당하는 경우 도메인 사용이 중지되어 모든 서비스가 안 되는 경우가 발생한다.




<12> 보안 - 클라우드 서비스 업체 로그온시  2단계 인증 필수로 사용하기


1

CSP인 네이버 클라우드 서비스 사용 시 2단계 인증을 필수로 사용하자.


마이페이지 > 계정관리 > 보안설정에서  2단계 인증을 설정한다.

3가지 방법이 가능하다.

휴대전화 번호 추가

이메일 주소 추가

구글 OTP추가



2

타 사이트 계정 탈취 당해, 네이버 클라우드 탈취당하면 모든 서비스가 중단된다.

해당 시스템에 개인정보가 있는 경우 모두 탈취당해 큰 문제가 될 수 있다.




이해되셨나요?





<13>  DNS관련해 더 알고 싶으시면 참고 할 만한 사이트


https://brunch.co.kr/@topasvga/1387




https://brunch.co.kr/@topasvga/3101



https://brunch.co.kr/@topasvga/3211





감사합니다.



                    

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari