DNS
Domain Name System
DNS
DNS(Domain Name System) 은 전화번호부와 같은 역할을 한다. '도미노 피자'와 같은 이름이 전화번호부를 통해 전화번호로 변환되는 것처럼 'www.google.com' 과 같은 웹 주소는 DNS 를 통해 '74.125.19.147'과 같이 실제 IP 주소로 변환된다. 이러한 Domain 에서 IP 로의 변환 작업을 Resolving 이라고 한다.
Records
DNS 에서는 다양한 Records 들이 존재한다. 그 중에서 'A' 레코드는 Host Record 라고 부르며, 도메인 서비스를 호스팅하는 컴퓨터의 실제 IP 주소에 도메인을 연결한다.
- NS record(name server) - Specifies the DNS servers for your domain/subdomain.
- MX record(mail exchange) - Specifies the mail servers for accepting messages.
- A record (address) - Points a name to an IP address.
- CNAME(canonical) - Points a name to another name or CNAME (example.com to www.example.com) or to an A record.
Services such as CloudFlare and Route 53 provide managed DNS services.
Time to Live
DNS TTL(Time To Live) 은 레코드의 변경사항이 적용될 때까지 걸리는 시간(초)를 의미한다. 예를 들어 TTL 값이 86400초인 레코드는 변경사항은 적용될 때까지 24시간이 소요된다.
A 레코드에 대한 변경이 일어났을때 TTL 이 길면, Domain 전파가 늦을 수 있다. 실무에서 만약 Working Times 에 실수로 도메인 작업을 하다가 이전 도메인을 날리게 되면 TTL 동안 장애가 발생할 수 있다.
이때 서버 로그에서는 Domain 명과 함께 'UnknownHostException' 과 같은 에러를 볼 수 있다.
NSLOOKUP
NSLOOKUP 은 DNS 가 문제가 발생했을때 해결하기 위해 사용되는 네임 서버 질의 도구이다.
주로 아래와 같은 경우에 사용된다.
- 네트워크 문제 해결: 특정 도메인에 접근할 수 없을 때, DNS 문제인지 확인할 수 있다.
- DNS 설정 검증: 도메인에 대한 DNS 레코드가 올바르게 설정되었는지 확인할 수 있다.
nslookup {Domain}:
Server: dns.example.net
Address: 192.168.1.1
Non-authoritative answer:
Name: www.example.com
Address: 93.184.216.34
nslookup {IpAddress} 을 통해 IP 주소에 매핑된 도메인 이름을 찾을 수 있다.
Server: dns.example.net
Address: 192.168.1.1
Non-authoritative answer:
34.216.184.93.in-addr.arpa name = www.example.com
NSLOOKUP 과 유사한 도구로 Dig(Domain Information Groper) 도 있다.