본문 바로가기
Cloud/GCP

[GCP] Cloud DNS의 기본 사용법을 배워보자

by SystemAnswer 2022. 10. 18.
반응형

GCP에서 제공하는 Cloud DNS는 Public, Private 두가지 방식을 제공하고 있다. Public의 경우에는 도메인을 소유하고 있어야 가능하기 때문에간단한 테스트를 위해서 Private로 생성해서 테스트해보자. Public은 이름과 같이 공개 인터넷에 표시되고, Private는 지정된 하나 이상의 VPC(Virtual Private Cloud)에서만 표시되게 된다. Cloud DNS는 100% 가용성을 제공하고 안정적이고 짧은 지연시간을 가진다. 또한 DNS의 부하에 따라 자동확장되는 관리형 DNS 서비스이다.

 

DNS의 기능을 간략하게 설명하면, IP주소 및 다양한 DNS영역과 레코드를 저장 및 게시하여 이름별로 조회할 수 있는 계층형 분산 데이터베이스이다.

 

Cloud DNS 테스트 환경

Cloud DNS에 A레코드로 WEB01, WEB02를 등록하고 Bastion서버에서 DNS에 쿼리를 보내 받은 응답 값으로 WEB01, WEB02에 요청하여 응답값을 확인하는 테스트를 해보자.

 

1. Cloud DNS

    1.1 Name : dns-demo-private

    1.2 DNS Name : demo.com

    1.3 Type : private

Cloud DNS 생성 방법

1. Cloud DNS 생성

[Cloud DNS] => [CREATE ZONE]

Type : Private

Zone name : dns-demo

DNS name : demo.com

Options : Default

Networks : vpc-demo

 

2. DNS A record 설정

[Cloud DNS] => [ADD RECORD SET]

A record type은 도메인(web02.demo.com) name에 IP Address(172.22.36.3)를 매핑하는 것이다.

이런 방법으로 web01.demo.com도 동일하게 설정을 해주면 된다.

 

3. Cloud DNS Zone Details

아래 그림과 같이 A Record 2개를 등록하면 Bastion 서버에서 도메인명으로 찾아서 요청을 보낼 수 있다.

 

Cloud DNS 동작 테스트 확인

1. DNS 등록 확인

DNS의 NS의 주소 "ns-gcp-private.googledomains.com."을 nslookup으로 확인해보면 IP가 "169.254.169.254"로 되어 있는 것을 확인 할 수 있다.

또한, 서버내에 DNS IP 설정은 "/etc/resolv.conf"에서 설정 가능하며 확인해보면 동일하게 Setting되어 있기 때문에 DNS에 쿼리를 보내면 해당 IP인 GCP Cloud DNS에서 응답을 해줄 것이다.

###

[root]# nslookup ns-gcp-private.googledomains.com.
Non-authoritative answer:
Name:   ns-gcp-private.googledomains.com
Address: 169.254.169.254

[root]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 169.254.169.254

###

 

2. Cloud DNS를 통해서 WEB01, 02서버 응답 받기

ping으로 web01.demo.com / web02.demo.com으로 요청을 보내면 정상적으로 응답이 오는 것을 확인 할 수 있다.

###

[root]# ping web01.demo.com -c 3
PING web01.demo.com (172.22.36.2) 56(84) bytes of data.
64 bytes from vm-demo-web01.asia-northeast3-a.internal (172.22.36.2): icmp_seq=1 ttl=64 time=1.08 ms
64 bytes from vm-demo-web01.asia-northeast3-a.internal (172.22.36.2): icmp_seq=2 ttl=64 time=0.364 ms
64 bytes from vm-demo-web01.asia-northeast3-a.internal (172.22.36.2): icmp_seq=3 ttl=64 time=0.342 ms

--- web01.demo.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.342/0.597/1.086/0.346 ms


[root]# ping web02.demo.com -c 3
PING web02.demo.com (172.22.36.3) 56(84) bytes of data.
64 bytes from vm-demo-web02.asia-northeast3-b.internal (172.22.36.3): icmp_seq=1 ttl=64 time=2.12 ms
64 bytes from vm-demo-web02.asia-northeast3-b.internal (172.22.36.3): icmp_seq=2 ttl=64 time=0.374 ms
64 bytes from vm-demo-web02.asia-northeast3-b.internal (172.22.36.3): icmp_seq=3 ttl=64 time=0.326 ms

--- web02.demo.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.326/0.940/2.122/0.836 ms

###
반응형

댓글