네트워크기초 · 23분 읽기

DNS 메시지·위임·캐시와 BIND 존 구성

DNS 재귀 조회와 권한 응답, 레코드와 메시지 구조를 연결한다. 원문의 BIND 설정을 일관된 example 존으로 재구성하고 정방향·역방향·존 전송·DNSSEC의 역할을 구분한다.

개념부터 찾아보기

정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.

이 노트에서 설명할 수 있게 되는 것

  1. 재귀 Resolver와 권한 서버의 역할을 구분한다.
  2. DNS 메시지·레코드·TTL을 함께 읽는다.
  3. NXDOMAIN·NODATA·SERVFAIL·timeout을 나누어 진단한다.

01질의하는 서버와 답을 소유한 서버

  • 는 계층적인 이름 공간에 여러 종류의 정보를 연결한다. 호스트는 보통 재귀 resolver에 질의하고, resolver는 캐시를 사용하거나 필요한 권한 서버들을 따라가 답을 구한다.
    • 권한 서버는 자신이 담당하는 의 데이터를 제공한다.
    • 한 서버가 여러 역할을 할 수 있어도 그 역할을 같은 개념으로 합치지 않는다.
  • 도메인은 이름 공간의 범위이고 은 운영 책임과 위임에 따라 관리되는 단위다. 부모 의 위임과 자식 의 권한 정보가 맞아야 한다.
    • 서버에 파일을 만들었다는 사실만으로 외부 resolver가 그 서버를 찾아오는 것은 아니다.
    • 위임 경로와 접근 가능한 응답 지점을 함께 확인해야 한다.

02이름 트리·FQDN·도메인·존

  • 이름은 루트부터 이어지는 레이블의 계층이다. www.lab.example.의 마지막 점은 루트까지 명시한 절대 이름을 뜻한다.
    • 파일에서 끝의 점이 없으면 현재 $ORIGIN에 상대적인 이름으로 해석될 수 있다.
    • ns.lab.example을 끝 점 없이 적으면 의도하지 않게 ns.lab.example.lab.example.이 될 수 있는 이유다.
  • 도메인은 특정 이름 아래의 트리 범위이고 은 권한을 관리하는 단위다. 자식 도메인을 다른 서버에 위임하면 부모 에는 위임용 NS와 필요한 glue 정보가 남고 자식 데이터는 자식 이 담당한다.
    • 부모의 NS가 자식 서버를 가리킨다고 해당 서버가 자동으로 파일을 얻거나 생성하는 것은 아니다.
    • 서버의 권한 데이터와 부모의 위임이 서로 맞아야 완성된다.

03메시지와 Resource Record

  • 메시지는 거래 ID와 flags, 각 영역 개수를 가진 헤더 뒤에 Question·Answer·Authority·Additional을 둔다. 질문은 이름·Type·Class로 표현하고 은 이름·Type·Class··데이터를 갖는다.
    • A와 AAAA는 주소, 은 별칭, MX는 메일 교환 대상, NS는 권한 서버 정보를 표현한다.
    • 이름 하나가 항상 IP 하나에 대응하는 것은 아니다.
  • 은 캐시 가능한 시간의 기준이며 임의로 영구 보관하라는 뜻이 아니다. 응답의 는 권한 응답 여부, TC는 잘림, ·는 재귀 요청과 제공 여부를 해석할 때 사용한다.
    • ID가 같다는 이유만으로 무조건 같은 거래라고 단정하지 말고 주소·포트·질문·시간도 함께 본다.
    • 검증과 전송 암호화는 별도 기능이다.
  • 기본 헤더는 12바이트다. ID16비트 뒤에 QR·Opcode··TC·· 등 flags와 응답 코드가 있고, Question·Answer·Authority·Additional의 개수를 각 16비트로 기록한다.
    • 질문의 QNAME은 레이블로 표현하며 QTYPE과 QCLASS가 따른다.
    • 은 NAME·TYPE·CLASS··RDLENGTH·RDATA로 구성한다.
    • 이름 압축 포인터 때문에 패킷의 문자열을 단순 고정길이 텍스트로 읽을 수 없는 경우도 있다.

설명과 함께 보는 보조 도식

메시지 순서

캐시가 없는 이름 조회

위임 관계를 단순화한 재귀 조회 예.

단말Resolver위임 서버권한 서버1. 이름 질의2. 캐시 확인3. 위임 탐색4. 다음 서버 안내5. 권한 질의6. 레코드와 TTL7. 결과 전달
전체 단계를 한 번에 읽기
  1. 01

    이름 질의

    단말은 이름과 필요한 레코드 Type을 요청한다.

  2. 02

    캐시 확인

    유효한 답과 위임 정보가 있는지 확인한다.

  3. 03

    위임 탐색

    필요한 권한 서버 위치를 찾는다.

  4. 04

    다음 서버 안내

    위임된 영역의 서버 정보를 돌려준다.

  5. 05

    권한 질의

    실제 레코드를 가진 서버에 묻는다.

  6. 06

    레코드와 TTL

    답을 제공한다.

  7. 07

    결과 전달

    캐시 조건과 함께 단말에 결과를 돌려준다.

학습용 메시지 흐름 모식도. 재전송과 구현별 선택 동작은 축약했다.
원리 심화

04이름 압축 포인터와 리소스 레코드 길이

  • 이름은 라벨 길이 바이트와 라벨 내용의 연속이며 0 길이 라벨로 루트를 표시한다. 표시 문자열의 점은 바이트 경계의 구분자이지 그대로 전송되는 점 문자에 해당하지 않는다.
  • 두 바이트의 최상위 2비트가 11이면 나머지 14비트가 메시지 시작부터의 오프셋이다. 0xc00c는 오프셋 12를 가리키며 IP나 헤더 시작을 기준으로 세지 않는다.
  • 이름 전체를 포인터로 대체하거나 앞 라벨 뒤에 포인터를 붙여 이미 나온 접미사를 재사용할 수 있다. 표시 이름이 같아도 원시 메시지에서 차지하는 바이트 수는 달라질 수 있다.
  • 압축 가능한 RDATA에 이름 압축이 사용됐다면 길이는 확장된 이름 길이가 아니라 실제 압축된 RDATA 바이트 수다. A·AAAA의 고정 길이 주소 데이터를 이름 포인터로 해석하지 않는다.
  • 포인터의 목적지가 메시지 범위 안인지, 순환 참조로 무한 해석되지 않는지 확인해야 한다. 잘못된 길이·포인터는 단순히 이름이 없다는 과 다른 메시지 형식 오류다.
예제로 추적

05A 질의 33바이트와 압축 응답의 이름 판독

  1. www.example.com의 이름 바이트는 03 www 07 example 03 com 00이다. 길이 바이트 3개와 루트 1바이트까지 합치면 QNAME은 17바이트다.
  2. 기본 헤더 12바이트에 QNAME 17, QTYPE 2, QCLASS 2를 더해 33바이트다. 이 계산은 추가 레코드나 옵션이 없는 단일 A 질의를 전제로 한다.
  3. 응답에 질문을 같은 위치로 복사하고 Answer NAME을 c0 0c로 넣으면 2바이트로 오프셋 12의 www.example.com을 가리킨다. 이름을 다시 17바이트 쓰는 것보다 15바이트를 줄인다.
  4. 이 압축 NAME 2바이트와 TYPE 2, CLASS 2, 4, RDLENGTH 2, 주소 4를 더하면 Answer 한 개는 16바이트다. 기본 조건의 응답 전체는 12+21+16=49바이트다.
  5. 여기서 33·49는 메시지 자체의 크기다. 에 실으면 각각 8바이트를 추가하고, IP와 길이는 해당 캡슐화 조건으로 별도 계산한다.

06캐시가 없는 이름의 재귀 조회 순서

  • 유효한 답이나 위임이 캐시에 있으면 그 정보를 사용한다. 매 질의를 반드시 루트부터 시작하는 것은 아니다.
  • 응답의 TC가 설정되면 재시도 등이 필요하다. 응답 크기·에 따라 교환이 달라지므로 만 허용하는 정책으로 충분하지 않다.
  1. 단말 stub resolver가 재귀 Resolver에 이름과 질의 종류를 보낸다. Resolver가 먼저 유효한 캐시를 확인한다.
  2. 답이 없으면 루트·상위 도메인 서버에서 해당 이름을 책임지는 권한 서버의 단서를 얻는다.
  3. 위임을 따라 최종 권한 서버에 필요한 레코드를 묻는다. 중간 위임 응답과 최종 데이터 응답을 구별한다.
  4. 이면 목표 이름에 필요한 추가 조회를 수행할 수 있다. 단말에 반환할 결과를 조합한다.
  5. Resolver가 결과를 단말에 돌려주고 조건에 맞게 보관한다. 이후 같은 질의는 남은 캐시 수명을 활용할 수 있다.

07레코드 종류마다 데이터 형식이 다르다

  • A는 , AAAA는 주소다. 은 다른 이름의 별칭이므로 목표 이름에 대한 추가 조회가 필요할 수 있다.
    • 일반적인 소유 이름에는 다른 일반 데이터 을 함께 두지 않는다.
    • MX는 선호도 숫자와 메일 교환 서버 이름을 담고 NS는 권한 서버의 이름을 담는다.
    • 숫자 주소를 NS나 MX의 이름 자리에 그대로 넣는 설정과 구별한다.
  • 에는 primary 서버 이름, 담당자 mailbox 표현, serial, refresh, retry, expire, negative cache 관련 최소값이 들어간다. serial은 버전 비교에 쓰므로 변경하면서 증가시켜야 secondary가 갱신을 판단할 수 있다.
    • YYYYMMDDnn은 사람이 읽기 쉬운 관례이지 프로토콜이 날짜를 강제하는 것은 아니다.
    • 은 역방향 이름에 연결되며 는 in-addr.arpa, 는 ip6.arpa 트리를 사용한다.

08TTL·부정 캐시·응답 코드

  • 권한 서버에서 A를 바꿔도 재귀 서버와 단말이 유효한 캐시를 갖고 있으면 이전 값을 계속 사용할 수 있다. 응답에서 보이는 은 캐시가 남긴 잔여 시간일 수 있다.
    • 따라서 변경을 확인할 때 권한 서버의 현재 값과 재귀 서버의 캐시 값을 분리한다.
    • 캐시 삭제는 선택한 단말이나 서버의 캐시를 바꾸는 작업이지 인터넷 전체에 새 값을 강제하는 기능이 아니다.
  • 은 질문한 이름이 존재하지 않는다는 응답이다. 이름은 있지만 질문한 유형의 이 없으면 보통 NOERROR와 빈 Answer로 나타나는 다.
    • 을 따라간 끝의 이름 부재도 구별해야 한다.
    • 은 처리 실패로 검증 실패·권한 서버 접근 실패 등 여러 원인이 가능하고, timeout은 응답 자체를 받지 못한 관찰이다.
    • 부정 응답도 관련 조건에 따라 캐시되므로 레코드를 새로 만든 직후에도 부정 캐시가 영향을 줄 수 있다.

09UDP·TCP·EDNS가 필요한 이유

  • 전통적인 는 를 주로 사용하지만 도 정상 전송 방식이다. 응답에 TC가 설정되면 더 완전한 답을 얻기 위해 재시도가 필요할 수 있다.
    • 존 전송도 를 사용한다.
    • UDP53만 허용하면 짧은 질문은 성공해도 큰 응답·전송에서는 실패하는 부분 장애가 생긴다.
  • 의 OPT 의사 은 수신 크기와 확장 정보를 표현한다. 수신 크기를 크게 광고한다고 경로 문제가 없어지는 것은 아니다.
    • 조각화·중간 장비·방화벽 때문에 큰 응답이 사라질 수 있으며 fallback의 존재가 중요하다.
    • over /HTTPS는 질의 전송의 기밀성과 채널 보호를 다루고 는 데이터 출처 인증·무결성을 다루므로 서로 대체 관계가 아니다.

10BIND 권한 서버의 역할과 접근 범위 설정

  • 는 의 listen-on·allow-query와 선언으로 수신 주소·질의 범위·제공할 존을 설정한다. listen-on은 어느 로컬 주소에서 서비스를 받을지, allow-query는 누가 질의할 수 있는지를 뜻한다.
    • 둘 다 any로 열었다고 권한 서버·재귀 서버 역할이 안전하게 구분되는 것은 아니다.
    • 아래는 격리된 문서용 서버 192.0.2.53이 lab.example의 권한 응답만 제공하는 예다.
  • recursion no는 이 예 서버가 임의 외부 이름에 대한 재귀 서비스를 제공하지 않게 한다. directory와 의 file 경로는 결합되어 실제 파일을 찾는다.
    • allow-update는 동적 업데이트 허용을 정하는 항목이며 secondary가 을 가져가도 되는지 정하는 allow-transfer와 다르다.
text
options {
    directory "/var/named";
    listen-on port 53 { 127.0.0.1; 192.0.2.53; };
    listen-on-v6 { none; };
    allow-query { 127.0.0.1; 192.0.2.0/24; };
    recursion no;
};
zone "lab.example" IN {
    type primary;
    file "lab.example.zone";
    allow-update { none; };
    allow-transfer { none; };
};

설명용 최소 권한 서버 구성. 기존 배포판 설정 전체를 덮어쓰는 명령이 아니며 type master는 구형 명칭이다.

11정방향 zone 파일의 한 줄씩 읽기

  • 아래에서 @는 현재 origin인 lab.example.을 뜻한다. 의 ns.lab.example.은 이 의 primary 이름이며 hostmaster.lab.example.은 mailbox의 @를 점으로 표현한 값이다.
    • NS와 A는 별개의 레코드다.
    • 이름이 ns인 A를 하나 만들었다고 그 레코드 자체가 NS가 되는 것은 아니다.
  • www의 은 app.lab.example.을 가리키며 app의 A가 최종 주소를 제공한다. 두 이름이 같은 웹 서버 주소로 해결되어도 실제 웹사이트 선택은 HTTP Host 또는 SNI와 가상 호스트 설정에 달려 있다.
    • 가 응용의 DocumentRoot까지 지정하지는 않는다.
    • 예제의 ::1 AAAA를 일반 원격 서비스 이름에 그대로 남기면 클라이언트 자신의 루프백으로 연결하게 되므로 실제 의도와 맞는 주소만 등록해야 한다.
text
$ORIGIN lab.example.
$TTL 3600
@ IN SOA ns.lab.example. hostmaster.lab.example. (
    2026101201 ; serial
    3600       ; refresh
    900        ; retry
    604800     ; expire
    300        ; negative cache parameter
)
@    IN NS    ns.lab.example.
ns   IN A     192.0.2.53
app  IN A     192.0.2.80
www  IN CNAME app.lab.example.
mail IN A     192.0.2.25
@    IN MX 10 mail.lab.example.

공개 실서비스가 없는 예약 도메인·문서용 주소의 예. 원문 오탈자와 서로 다른 origin 혼용을 바로잡았다.

12Primary·Secondary·전송·위임의 관계

  • Secondary는 primary 등 허용된 서버에서 전체 전송 또는 증분 전송으로 데이터를 얻어 권한 응답한다. 단순 캐시 서버나 ‘권한이 약한 서버’가 아니다.
    • serial 변화, refresh와 retry, expire, NOTIFY 같은 기능이 데이터 갱신과 유효성에 연결된다.
    • 전송 권한을 제한하는 allow-transfer와 업데이트 권한을 정하는 allow-update를 분리해야 한다.
  • 클라이언트 설정의 선호 ·대체 는 resolver 선택 정책이다. 의 primary·secondary 역할과 같지 않다.
    • 클라이언트 OS가 어느 순서로 질의하고 장애 판단 후 어떻게 바꾸는지는 구현에 따라 달라진다.
    • 선호 서버가 정상적인 을 주었는데 다른 서버가 다른 답을 줄 것이라고 기대하는 구성은 일관성을 해친다.
    • 같은 의 권한 서버들은 계획된 갱신 과정 외에는 같은 데이터로 응답해야 한다.

13DNSSEC의 서명과 검증

  • 는 에 대한 와 , 부모가 자식 키를 연결하는 등을 통해 데이터 출처와 무결성을 검증한다. 서명된 부정 응답에는 · 등이 관련된다.
    • 응답 내용을 암호문으로 만드는 기술이 아니므로 패킷에서 이름과 레코드가 평문으로 보인다는 이유만으로 가 동작하지 않는다고 판단할 수 없다.
  • 검증 resolver 또는 검증 기능을 가진 종단은 신뢰 앵커에서 위임 관계를 따라 검증한다. 검증 기능을 갖춘 resolver와 종단은 모두 검증 주체가 될 수 있다.
    • 서명 만료·잘못된 ·시간 문제는 데이터가 존재해도 검증 을 만들 수 있다.
    • 전송을 암호화하는 ·와 함께 사용할 수 있으나 서명 검증과 전송 암호화의 역할은 서로 다르다.

14구문 검사와 응답 판독을 분리하기

  • 는 설정 문법을, 은 특정 파일의 구조를 검사한다. 검사를 통과했다고 네트워크 접근·위임·재귀 정책·서비스 리스닝까지 모두 검증된 것은 아니다.
    • 질의 도구에서 서버를 명시해 권한 응답을 먼저 보고 클라이언트의 일반 resolver를 통한 응답과 비교한다.
  • 출력에서 status, flags의 , Answer 수, 실제 과 을 함께 읽는다. +norecurse를 사용한 권한 서버 직접 질의는 재귀 결과와 섞이지 않게 해 준다.
    • + 성공과 실패의 차이는 응답 전송 경로의 단서다.
    • 가 성공한 뒤 HTTP Host를 맞춘 요청까지 확인해야 예제의 다중 가상 호스트 실습을 끝까지 재현할 수 있다.
text
named-checkconf /etc/named.conf
named-checkzone lab.example /var/named/lab.example.zone
dig @192.0.2.53 www.lab.example A +norecurse
dig @192.0.2.53 lab.example SOA +norecurse
dig @192.0.2.53 www.lab.example A +tcp

설명용 응답 일부:
status: NOERROR, flags: qr aa
www.lab.example. 3600 IN CNAME app.lab.example.
app.lab.example. 3600 IN A 192.0.2.80

검사·조회 명령과 합성 응답. 실제 서비스 설치나 재시작을 실행한 기록이 아니다.

LEARN THROUGH PRACTICE

실습: BIND 존 파일에서 응답과 웹 이름까지 검증

권한 데이터· 질의 결과·HTTP 가상 호스트를 차례로 분리해 검증한다.

실습 구성과 전제

  • 서버와 클라이언트가 있는 연습망이다. 사진의 존 파일과 nslookup 출력은 서로 다른 구성 예다.
  • 재구성은 example.test와 192.0.2.53을 사용한다. 실제 서버의 주소·허용 질의 범위와 listen 설정을 먼저 맞춘다.
  1. 존 파일의 데이터 역할 읽기

    • 는 존의 관리 정보, NS는 권한 서버 이름, A는 이름에 대응하는 다. ns·ww1·ww2가 같은 IP를 사용해도 형식 오류가 아니다.
    • 그림의 AAAA ::1은 조회한 클라이언트 자신을 뜻하는 루프백이다. 원격 서비스용 주소로 복사하지 않는다. allow-update는 동적 갱신 제어이며 존 전송 허용과 별개다.
    text
    $ORIGIN example.test.
    $TTL 300
    @ IN SOA ns.example.test. hostmaster.example.test. (
      2026101201 3600 900 604800 300 )
    @   IN NS ns.example.test.
    ns  IN A 192.0.2.53
    ww1 IN A 192.0.2.53
    ww2 IN A 192.0.2.53

    원점과 끝 점을 명시한 별도 재구성 존 파일

    DNS와 웹 서비스 · /var/named/x.com.zone (6)원본 크기로 보기 ↗
    • SOA 뒤 serial·refresh·retry·expire 등의 값이 있다.
    • ns·ww1·ww2의 A가 같은 주소이며 별도로 AAAA ::1이 보인다.
    확인 기준

    끝의 점과 존 원점을 확인한다. 정방향 조회는 이름→주소다.

  2. 로드 전에 문법과 존 범위 검사

    • 는 설정 문법, 은 지정한 존 데이터의 문법·관계를 검사한다. 파일 검사 성공이 곧 실제 서비스 응답 성공은 아니다.
    • 파일의 선언 이름·경로·서비스의 읽기 권한이 맞아야 로딩된다. 검사를 통과한 뒤 해당 존을 다시 읽고 오류 로그를 확인한다.
    text
    named-checkconf
    named-checkzone example.test /var/named/example.test.zone
    rndc reload example.test

    / 계열 경로를 사용한 재구성 검증 예시

    확인 기준

    검사 오류가 있으면 reload로 해결하려 하지 말고 지목한 줄부터 수정한다.

  3. 서버 지정 질의와 최종 응답 구분

    • nslookup의 Server/Address는 질의한 서버다. 아래 Name/Address가 질의 이름의 응답이므로 같은 숫자가 두 번 보여도 역할은 다르다.
    • 직접 서버를 지정하면 클라이언트의 기본 설정 문제와 권한 서버 문제를 분리할 수 있다.
    text
    dig @192.0.2.53 ww1.example.test A +norecurse
    nslookup ww1.example.test 192.0.2.53

    명령의 이름·주소는 재구성 존 기준

    5/21 - DNS · 실습·개념 참고 화면 51원본 크기로 보기 ↗
    • 명령 끝에 질의할 DNS 서버 주소가 명시되어 있다.
    • Server·Address와 아래 Name·Address가 구분되어 출력된다.
    확인 기준

    의도한 서버가 의도한 로 응답하는지 확인한다.

  4. 같은 IP의 서로 다른 웹 이름 검증

    • 는 서버 주소를 알려 주고 HTTP Host는 가상 호스트를 선택하게 한다. 성공만으로 올바른 웹 파일이 선택되었다고 판단하지 않는다.
    • 두 이름을 같은 IP로 조회한 뒤 각각의 Host로 요청하여 화면을 비교한다. 실패 시 와 웹 서버 설정을 분리해 조사한다.
    text
    curl --resolve ww1.example.test:80:192.0.2.53 http://ww1.example.test/
    curl --resolve ww2.example.test:80:192.0.2.53 http://ww2.example.test/

    를 우회하여 HTTP 가상 호스트만 따로 검증하는 재구성 예시

    확인 기준

    A 응답은 같아도 웹 구성에 따라 서로 다른 페이지가 반환될 수 있다.

실습에서 확인한 동작 원리

  • 파일 문법·존 로딩· 응답·웹 선택은 별도 검증 단계다.
  • 와 ns 이름의 는 서로 다른 역할이며 둘 다 필요한 조건을 살핀다.

설정·출력 추가로 확인하기 76장

아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.

실습 화면 묶음 01 38장
5/21 - DNS · 설정·관리 화면 13원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows Server 역할 추가 마법사에서 DNS Server와 DNS 관리 도구를 설치하는 진행 화면이다.
5/21 - DNS · 설정·관리 화면 15원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 설정·관리 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 설정·관리 화면 18원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS 관리자의 조회 영역에서 SOA·NS 레코드를 확인하는 화면이다.
5/21 - DNS · 설정·관리 화면 19원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS의 SOA 레코드 속성에서 권한 서버·책임자·갱신 및 만료 시간을 확인하는 화면이다.
5/21 - DNS · 설정·관리 화면 25원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 설정·관리 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 설정·관리 화면 26원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 설정·관리 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 설정·관리 화면 36원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS 관리자의 조회 영역에서 이름별 Host(A) 레코드와 대응 주소를 읽는 화면이다.
5/21 - DNS · 설정·관리 화면 38원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 설정·관리 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 12원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. IIS 관리자의 Sites 트리에 등록된 웹사이트 목록을 보여 주는 화면이다.
5/21 - DNS · 실습·개념 참고 화면 14원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS 관리자의 정방향 조회 영역과 영역 작업 메뉴를 보여 주는 화면이다.
5/21 - DNS · 실습·개념 참고 화면 16원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 17원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 20원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 21원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 22원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 23원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. DNS SOA 레코드의 Refresh·Retry·Expire와 TTL 값을 입력하는 속성 화면이다.
5/21 - DNS · 실습·개념 참고 화면 24원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS 레코드 속성의 TTL 입력 항목을 보여 주는 화면이다.
5/21 - DNS · 실습·개념 참고 화면 27원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 28원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 29원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 30원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 31원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 32원본 크기로 보기 ↗
  • 「작성 방법」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 35원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows 네트워크 설정에 지정된 IPv4 DNS 서버 주소를 조회한 화면이다.
5/21 - DNS · 실습·개념 참고 화면 37원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 39원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 40원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 41원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 42원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. BIND 구성에서 존 설정 파일과 신뢰 키 파일을 포함하는 경로를 보여 준다.
5/21 - DNS · 실습·개념 참고 화면 43원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 45원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 46원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 47원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 48원본 크기로 보기 ↗
  • 「실습 - rocky」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
5/21 - DNS · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. IIS의 Add Website 화면에서 사이트 이름·실제 경로·바인딩을 구성하는 예시이다.
5/21 - DNS · 실습·개념 참고 화면 53원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Windows DNS 해석기 캐시를 비운 뒤 완료 메시지를 확인하는 화면이다.
5/21 - DNS · 실습·개념 참고 화면 54원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. BIND에서 두 도메인의 master 존과 각 존 파일을 선언한 설정 화면이다.
5/21 - DNS · 실습·개념 참고 화면 55원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. BIND 존 파일에서 SOA·NS·A 레코드와 각 도메인의 주소 대응을 읽는 화면이다.
실습 화면 묶음 02 11장
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 10원본 크기로 보기 ↗
  • 「dig」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 11원본 크기로 보기 ↗
  • 「dig」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 12원본 크기로 보기 ↗
  • 「dig」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 13원본 크기로 보기 ↗
  • 「dig」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 18원본 크기로 보기 ↗
  • 「dnsenum」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 28원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. Fierce가 DNS 서버와 SOA 정보를 확인하고 영역 전송으로 얻은 여러 레코드를 출력한 화면이다. NS·MX·A·AAAA 등 레코드 유형과 이름의 관계를 읽을 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 「nslookup」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 6원본 크기로 보기 ↗
  • 「nslookup」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 7원본 크기로 보기 ↗
  • 「nslookup」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 8원본 크기로 보기 ↗
  • 「nslookup」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
8/24 - ospf , 해킹 툴 · 실습·개념 참고 화면 9원본 크기로 보기 ↗
  • 「dig」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 03 1장
9/4 - bonding / vpn · 실습·개념 참고 화면 9원본 크기로 보기 ↗
  • 「VPN Client (window)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 04 1장
DNS 전달 설정 · DNS forwarders원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS forwarders를 지정하는 설정. 원문에서 「DNS forwarders」에 배치된 그림 또는 화면이다.
실습 화면 묶음 05 1장
DNS 조회와 서비스 주소 확인 · HAProxy원본 크기로 보기 ↗
  • 학습 원본 · DNS 조회와 서비스 주소 확인의 HAProxy에 수록된 화면·도식이다.
실습 화면 묶음 06 1장
DNSSEC 공개키·개인키 파일 구분원본 크기로 보기 ↗
  • 학습 원본 · DNSSEC 공개키·개인키 파일 구분의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 07 1장
DNS·가상 호스트 서비스 구성원본 크기로 보기 ↗
  • 학습 원본 · DNS·가상 호스트 서비스 구성의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 08 1장
DNS·가상 호스트 서비스 구성원본 크기로 보기 ↗
  • 학습 원본 · DNS·가상 호스트 서비스 구성의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 09 1장
DNS·가상 호스트 서비스 구성원본 크기로 보기 ↗
  • 학습 원본 · DNS·가상 호스트 서비스 구성의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 10 1장
DNS·가상 호스트 서비스 구성원본 크기로 보기 ↗
  • 학습 원본 · DNS·가상 호스트 서비스 구성의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 11 5장
DNS와 웹 서비스 · DNS 바인딩 (1)원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS 바인딩·서비스·존 파일 구성. 원문에서 「DNS 바인딩」에 배치된 그림 또는 화면이다.
DNS와 웹 서비스 · DNS 바인딩 (2)원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS 바인딩·서비스·존 파일 구성. 원문에서 「DNS 바인딩」에 배치된 그림 또는 화면이다.
DNS와 웹 서비스 · DNS 바인딩 (3)원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS 바인딩·서비스·존 파일 구성. 원문에서 「DNS 바인딩」에 배치된 그림 또는 화면이다.
DNS와 웹 서비스 · DNS 바인딩 (4)원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS 바인딩·서비스·존 파일 구성. 원문에서 「DNS 바인딩」에 배치된 그림 또는 화면이다.
DNS와 웹 서비스 · 록키 리눅스 DNS 서비스 (5)원본 크기로 보기 ↗
  • 수업 원본 자료 · DNS 바인딩·서비스·존 파일 구성. 원문에서 「록키 리눅스 DNS 서비스」에 배치된 그림 또는 화면이다.
실습 화면 묶음 12 2장
네트워크 관리사 -  필기 · 설정·관리 화면 8원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 설정·관리 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
네트워크 관리사 -  필기 · 실습·개념 참고 화면 3원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 13 3장
명령어 정리-1차 · 실습·개념 참고 화면 6원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. BIND의 존 선언에서 type master·존 파일·동적 갱신 허용 여부를 지정한 설정을 보여 준다.
명령어 정리-1차 · 실습·개념 참고 화면 7원본 크기로 보기 ↗
  • 「DNS」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
명령어 정리-1차 · 실습·개념 참고 화면 8원본 크기로 보기 ↗
  • 「DNS」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 14 7장
보고서 · 실습·개념 참고 화면 12원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
보고서 · 실습·개념 참고 화면 13원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. DNS 포트 차단 시나리오에서 nslookup 요청이 시간 초과되는 결과이다. 출력의 timeout was 2 문구는 응답 대기 시간을 나타낸다.
보고서 · 실습·개념 참고 화면 14원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
보고서 · 실습·개념 참고 화면 15원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
보고서 · 실습·개념 참고 화면 16원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
보고서 · 실습·개념 참고 화면 17원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
보고서 · 실습·개념 참고 화면 18원본 크기로 보기 ↗
  • 「시나리오4. (dns 포트 일부 대역대에 deny)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 15 2장
이진수 팀 - 로그 · 명령·상태 출력 6원본 크기로 보기 ↗
  • 「dns (bind 9)」 문맥에 삽입된 원본 명령·상태 출력이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
이진수 팀 - 로그 · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 「dns (bind 9)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. DNS 메시지·위임·캐시와 BIND 존 구성 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
동작·명령 참고 문서
검증·예외

15음성 캐시와 권한·재귀 플래그의 해석

  • 은 이름이 없다는 결과이므로 QNAME·QCLASS 문맥으로 캐시된다. 특정 타입 자료만 없는 는 QNAME·QTYPE·QCLASS 조합으로 다루므로 A 부재를 AAAA 부재로 곧바로 확대하지 않는다.
  • 가상 =900초, MINIMUM=300초이면 기본 음성 은 min(900,300)=300초다. 60초 뒤 같은 캐시 응답은 남은 약 240초를 기준으로 하며 새 응답처럼 300초를 다시 부여하지 않는다.
  • 권한 서버에 새 이름을 추가했는데 일부 재귀 서버가 여전히 이면 이전 음성 캐시가 남은 상황일 수 있다. 권한 응답과 재귀 응답의 ·을 구분해 비교한다.
  • 는 답의 권한 여부, 는 요청한 재귀 처리, 는 서버의 재귀 제공 가능성을 표현한다. =1이나 =1만으로 이번 답이 권한 자료이거나 검증된 최신 자료라고 판단하지 않는다.
  • 은 처리 실패를 뜻하며 위임·상위 응답· 검증 등 원인이 다양하다. 이름 자체가 없다는 의미로 바꾸거나 무조건 다른 주소를 정답으로 채우면 안 된다.
READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

실습 가이드

ISC BIND 9 §3.2: Primary·Secondary와 영역 전송

구성 예와 그림으로 serial·NOTIFY·/을 연결하고 캐시 만료와 secondary 동기화를 구분한다.

읽으면서 확인할 것
  • Authoritative Primary and Secondary 도해
  • 비교·NOTIFY 이후 전송 순서
  • recursion·query-cache·transfer 허용 범위
패킷 예제

RFC 1035 §4.1: 메시지 형식과 이름 압축

질문과 응답을 바이트 단위로 읽고 압축 포인터가 크기를 줄이는 방식을 계산한다.

읽으면서 확인할 것
  • §4.1.1 헤더 플래그와 Count
  • §4.1.3의 ·RDLENGTH·RDATA
  • §4.1.4 압축 오프셋의 기준점
학습 확인

이해했는지 확인하기

  • 재귀 resolver와 권한 서버의 응답을 각각 확인했는가?
  • TTL과 캐시 때문에 결과가 다른지 구분했는가?
  • 이름 해석 실패와 HTTP·TLS 처리 실패를 분리했는가?

함께 확인할 공식 자료