CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
    • 1.웹과 메일
    • 2.DNS: 이름과 주소
    • 3.원격 접속과 파일 전송
    • 4.파일 공유와 옛 인터넷 서비스
    • 5.Week 10 종합 복습: 인터넷 서비스 한 장
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 10/Day 2

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 10 · Day 2읽기 약 10분
핵심 정리
  • DNS는 도메인 이름을 IP 주소로 바꿔 주는 시스템이다. 포트는 53번이다.
  • 도메인은 루트(.) → 최상위(TLD) → 2차 → 호스트 순의 계층 구조다.
  • 이름 → IP가 정방향, IP → 이름이 역방향 조회다.
  • 레코드 종류를 외운다 — A(IPv4) · AAAA(IPv6) · MX(메일) · CNAME(별칭) · NS(네임서버) · PTR(역방향).
  • 조회 명령은 nslookup · dig · host, 리눅스 DNS 서버 프로그램은 BIND 다.

Day 2 - DNS: 이름과 주소

DNS가 하는 일

   www.example.com  를 치면?
 
   1  /etc/hosts 를 먼저 본다              (있으면 여기서 끝)
   2  /etc/resolv.conf 의 DNS 서버에 묻는다
   3  DNS 서버가 93.184.216.34 를 알려 준다
   4  그 IP 로 접속한다
  • 사람은 이름을, 컴퓨터는 숫자를 쓴다. 그 사이를 이어 주는 것이 DNS다.
  • DNS가 없으면 IP로는 접속되지만 이름으로는 안 된다. 문제 진단의 단서가 된다.
  • 인터넷 초기에는 DNS가 없었다. 모든 컴퓨터의 이름과 주소를 파일 하나에 적어 두고 각자 내려받아 썼다. 컴퓨터가 늘며 그 방식이 감당이 안 되자, 이름을 계층으로 나누고 구역마다 따로 관리하는 DNS가 나왔다. /etc/hosts가 그 옛 방식의 흔적이다.
  • 그래서 DNS의 핵심은 "한 곳이 전부 알지 않는다" 는 것이다. 각 서버는 자기 구역만 알고, 모르는 것은 누구에게 물어보면 되는지만 알려 준다.

도메인의 계층 구조

                    .  (루트)
         ┌──────────┼──────────┐
        com        kr         org        ← 최상위 도메인 (TLD)
         │          │
      example    co.kr                   ← 2차 도메인
         │          │
       www       naver                   ← 호스트
  • www.example.com. 처럼 맨 뒤의 점까지 붙인 완전한 이름을 FQDN(Fully Qualified Domain Name)이라 한다.
  • 읽는 순서는 오른쪽부터 위쪽 계층이다. com이 example보다 상위다.
구분예
gTLD (일반 최상위)com, net, org, edu, gov, mil, int
ccTLD (국가 코드)kr, jp, cn, us
  • gov는 정부, edu는 교육, mil은 군사 기관용이다. 용도를 묻는 문제가 나온다.
gTLD용도대응하는 kr 2단계
com영리 기업co.kr
org비영리 단체or.kr
edu교육 기관ac.kr (대학)
gov정부 기관go.kr
net네트워크 관련 기관ne.kr
mil군사 기관—
int국제기구—
  • kr 아래는 두 글자로 줄여 쓴다. co(company), or(organization), go(government), ac(academic)다. edu에 해당하는 것이 ed.kr이 아니라 ac.kr 이라는 점이 함정이다.
  • gTLD는 글자 수가 셋 이상, ccTLD는 정확히 두 글자다. kr·jp·us처럼 두 글자면 국가 코드다.
  • 도메인은 대소문자를 구분하지 않는다. WWW.Example.COM과 www.example.com은 같다.

DNS 서버의 종류

종류하는 일
루트 DNS 서버계층의 꼭대기. TLD 서버의 위치를 알려 준다
권한(Authoritative) 서버그 도메인의 정보를 실제로 가진 서버
캐싱(Resolver) 서버사용자를 대신해 물어보고 결과를 저장해 두는 서버
마스터 / 슬레이브원본을 가진 서버 / 복사본을 받아 두는 보조 서버
  • 우리가 /etc/resolv.conf에 적는 것은 대개 캐싱 서버의 주소다(예: 8.8.8.8).
  • 슬레이브 서버는 마스터에서 정보를 복제해 온다. 장애와 부하에 대비하기 위해서다.
  • 마스터를 주(primary) 네임서버, 슬레이브를 보조(secondary) 네임서버라고도 부른다. 이 복제를 영역 전송(zone transfer) 이라 한다.

조회가 실제로 흘러가는 길

www.example.com을 처음 물었을 때 캐싱 서버가 하는 일이다.

   내 컴퓨터 ──①──►  캐싱 서버 (/etc/resolv.conf 에 적힌 8.8.8.8)
                        │
                        ├──②──►  루트 서버       "com 은 저쪽 TLD 서버가 압니다"
                        ├──③──►  com TLD 서버    "example.com 은 저 네임서버가 압니다"
                        └──④──►  example.com 의 권한 서버  "93.184.216.34 입니다"
                        │
   내 컴퓨터 ◄──⑤──  캐싱 서버   (답을 전달하고, 한동안 기억해 둔다)
구분누가 누구에게성격
재귀 질의 (①)내 컴퓨터 → 캐싱 서버"최종 답을 가져다 달라" — 한 번 묻고 기다린다
반복 질의 (②~④)캐싱 서버 → 루트·TLD·권한 서버"다음에 누구에게 물을지" 를 받아 가며 차례로 묻는다
  • 위에서 아래로, 도메인을 오른쪽부터 읽는 순서 그대로 내려간다. 루트 → com → example.com 이다.
  • 루트 서버는 답을 모른다. 최상위 도메인을 맡은 서버가 어디인지만 알려 준다. 계층의 꼭대기라는 것이 "모든 것을 안다"는 뜻은 아니다.
  • 캐싱 서버는 받은 답을 정해진 시간(TTL) 동안 기억한다. 같은 이름을 다시 물으면 ②~④를 건너뛰고 바로 답한다. 두 번째 조회가 빠른 이유이자, DNS 정보를 고쳐도 곧바로 퍼지지 않는 이유다.

정방향과 역방향

구분방향레코드
정방향 조회이름 → IPA, AAAA
역방향 조회IP → 이름PTR
  • 평소 쓰는 것은 정방향이다. 역방향은 메일 서버의 신뢰성 확인 등에 쓰인다.

리소스 레코드

레코드뜻
A이름 → IPv4 주소
AAAA이름 → IPv6 주소
MX그 도메인의 메일 서버 (Mail eXchanger)
CNAME별칭(다른 이름의 별명)
NS그 도메인을 관리하는 네임서버
PTRIP → 이름 (역방향)
SOA그 영역의 기본 정보 (관리자, 갱신 주기)

A는 주소, MX는 메일, CNAME은 별칭, NS는 네임서버, PTR은 역방향 — 이 다섯 개는 반드시 구분한다. 특히 MX(메일) 를 묻는 문제가 있다.

  • AAAA(쿼드 A) 는 IPv6용이다. IPv4의 A가 32비트라면 IPv6는 그 4배인 128비트여서 A가 네 개다.
하고 싶은 일쓰는 레코드
www.example.com을 93.184.216.34에 연결A
ftp.example.com을 www.example.com의 다른 이름으로CNAME
alice@example.com으로 오는 메일을 받을 서버 지정MX
example.com을 관리하는 네임서버 지정NS
93.184.216.34가 어떤 이름인지 거꾸로 찾기PTR
  • A와 CNAME은 가리키는 대상이 다르다. A는 IP 주소를, CNAME은 또 다른 이름을 가리킨다. CNAME으로 걸린 이름은 결국 그 끝의 A 레코드까지 따라가야 IP가 나온다.
  • MX는 메일 주소가 아니라 서버 이름을 가리킨다. 어제 본 메일 전달 과정에서 "받는 쪽 메일 서버가 어디냐"를 DNS에 묻던 단계가 바로 이 MX 조회다.
  • MX에는 우선순위 숫자가 붙는다. 숫자가 작을수록 먼저 시도한다. 10과 20이 있으면 10번 서버로 먼저 보내고, 안 되면 20번으로 보낸다.
  • PTR은 A의 반대 방향이다. 약자를 풀면 Pointer다.

조회 명령

nslookup naver.com          # 간단한 조회
host naver.com              # 한 줄 요약
dig naver.com               # 자세한 조회
dig naver.com MX            # 메일 서버만
dig -x 8.8.8.8              # 역방향 조회
명령특징
nslookup전통적으로 널리 쓰인 도구
dig가장 자세하다. 레코드 종류 지정이 쉽다
host결과가 간결하다
$ nslookup www.example.com
Server:		8.8.8.8
Address:	8.8.8.8#53
 
Non-authoritative answer:
Name:	www.example.com
Address: 93.184.216.34
줄읽는 법
Server / Address누구에게 물었는가. /etc/resolv.conf의 nameserver가 여기 나온다. #53은 포트 번호
Non-authoritative answer권한 서버가 직접 한 답이 아니라 캐싱 서버가 기억해 둔 것을 전해 준 답
Name / Address물어본 이름과 그 IP — 이것이 결과다
  • 위쪽 Address와 아래쪽 Address를 혼동하지 않는다. 위는 DNS 서버의 주소, 아래가 찾던 답이다.
  • "Non-authoritative"는 오류가 아니다. 평소 조회는 거의 다 이렇게 나온다.
$ dig www.example.com
 
;; QUESTION SECTION:
;www.example.com.		IN	A
 
;; ANSWER SECTION:
www.example.com.	3600	IN	A	93.184.216.34
 
;; SERVER: 8.8.8.8#53(8.8.8.8)
  • 실제 출력은 이보다 길다. 볼 곳은 질문(QUESTION) · 답(ANSWER) · 답한 서버(SERVER) 세 군데다.
  • ANSWER SECTION 한 줄은 이름 · TTL(초) · IN · 레코드 종류 · 값 순서다. 위 예는 "이 답을 3600초(1시간) 동안 기억해도 된다"는 뜻이다.
  • dig는 이름 끝에 점을 붙여 보여 준다(www.example.com.). 앞에서 본 FQDN 표기다.
하려는 것nslookupdighost
메일 서버(MX) 보기nslookup -type=mx example.comdig example.com MXhost -t mx example.com
물어볼 서버 지정nslookup 이름 168.126.63.1dig @168.126.63.1 이름host 이름 168.126.63.1
역방향 조회nslookup 8.8.8.8dig -x 8.8.8.8host 8.8.8.8
  • dig만 서버 앞에 @를 붙이고, 역방향에 -x가 필요하다. nslookup과 host는 IP를 그냥 주면 알아서 역방향으로 찾는다.
  • 세 명령은 모두 조회만 한다. 설정을 바꾸지 않는다. ping도 이름을 IP로 바꿔 보여 주기는 하지만 DNS 조회 도구로 분류하지 않는다.

관련 파일과 서버

항목내용
/etc/resolv.conf물어볼 DNS 서버를 적는다 (nameserver)
/etc/hosts이름과 IP를 직접 대응시켜 둔다
/etc/nsswitch.conf어느 것을 먼저 볼지의 순서 (hosts: files dns)
BIND리눅스의 대표 DNS 서버 프로그램. 데몬 이름은 named
포트53번 (UDP를 주로 쓰고 응답이 크면 TCP)
  • hosts가 dns보다 앞에 있으므로 /etc/hosts를 먼저 본다. 그래서 여기에 적은 값이 DNS보다 우선한다.
  • BIND(Berkeley Internet Name Domain)는 가장 널리 쓰이는 DNS 서버 소프트웨어다. 이름만 알아 둔다.
  • 제품 이름은 BIND, 데몬 이름은 named, 설정 파일은 /etc/named.conf(레드햇 계열 기준)다. Apache와 httpd처럼 제품과 프로세스의 이름이 다르다.
파일어느 쪽 컴퓨터의 것인가적는 내용
/etc/resolv.conf묻는 쪽(클라이언트)물어볼 DNS 서버의 IP
/etc/hosts묻는 쪽(클라이언트)DNS에 묻지 않고 쓸 이름 ↔ IP
/etc/named.conf답하는 쪽(DNS 서버)BIND 자체의 설정
  • resolv.conf에는 이름이 아니라 IP를 적는다. DNS 서버를 이름으로 적으면 그 이름을 풀기 위해 다시 DNS가 필요해지기 때문이다.
  • 주소를 자동으로 받는 환경에서는 DHCP가 IP·서브넷마스크·기본 게이트웨이와 함께 DNS 서버 주소까지 내려 준다. 이때 /etc/resolv.conf는 사람이 아니라 시스템이 채운다. 직접 고친 내용이 재부팅 뒤 되돌아가 있다면 이 경우다.
  • DNS와 DHCP는 하는 일이 다르다. DNS는 이름을 주소로 바꾸고, DHCP는 주소를 나눠 준다. 연습 문제의 오답 보기로 나란히 나온다.
증상원인확인
IP로는 되는데 어떤 이름도 안 풀린다resolv.conf가 비었거나 DNS 서버에 닿지 않는다cat /etc/resolv.conf, ping 8.8.8.8
한 이름만 엉뚱한 서버로 간다/etc/hosts에 옛 주소가 적혀 있다grep 이름 /etc/hosts
nslookup 결과와 실제 접속 주소가 다르다nslookup은 DNS만 묻고 /etc/hosts를 보지 않는다/etc/hosts
레코드를 고쳤는데 옛 주소가 계속 나온다캐싱 서버가 TTL 동안 옛 답을 기억시간이 지나면 풀린다

내일은 원격 접속과 파일 전송 — TELNET·SSH·FTP를 다룬다.

📖 용어

  • DNS : 도메인 이름과 IP 주소를 서로 변환해 주는 시스템. 포트는 53이다.
  • FQDN : 루트까지 포함한 완전한 도메인 이름.
  • TLD : 최상위 도메인. com·org 같은 gTLD와 kr·jp 같은 ccTLD로 나뉜다.
  • 권한 서버 : 해당 도메인의 정보를 실제로 보유한 DNS 서버.
  • 캐싱 서버 : 사용자를 대신해 조회하고 결과를 저장해 두는 DNS 서버.
  • A 레코드 / AAAA 레코드 : 이름을 IPv4 주소 / IPv6 주소로 연결하는 레코드.
  • MX 레코드 : 그 도메인의 메일을 받을 서버를 지정하는 레코드.
  • BIND : 리눅스에서 널리 쓰이는 DNS 서버 소프트웨어. 데몬 이름은 named다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 DNS가 담당하는 역할로 알맞은 것은?

문제 2

다음 중 특정 도메인의 메일을 받을 서버를 지정하는 DNS 레코드로 알맞은 것은?

문제 3

다음 중 도메인 이름을 IPv4 주소와 연결하는 DNS 레코드로 알맞은 것은?

문제 4

다음 중 DNS가 기본으로 사용하는 포트 번호로 알맞은 것은?

문제 5

다음 중 IP 주소로부터 도메인 이름을 찾는 역방향 조회에 사용되는 레코드로 알맞은 것은?

이전웹과 메일Week 10 · Day 1다음 원격 접속과 파일 전송Week 10 · Day 3

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • DNS가 하는 일
  • 도메인의 계층 구조
  • DNS 서버의 종류
  • 조회가 실제로 흘러가는 길
  • 정방향과 역방향
  • 리소스 레코드
  • 조회 명령
  • 관련 파일과 서버
  • 용어
  • 연습 문제