CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

실제 시험 문제 25

프로토콜 추적 · Networking / DNS

프로토콜 추적

문제

근거 신뢰도 높음실제 시험지 대조 완료프로토콜 추적3점

독일어 원문

Ein DNS-Resolver versucht tu-darmstadt.de aufzulösen. Skizzieren Sie den Ablauf der Namensauflösung.

한국어 해석

DNS resolver가 tu-darmstadt.de를 resolve하려고 한다. Namensauflösung Ablauf를 sketch하라.

DNS resolution · cache trace

ClientResolverRoot.de TLDAuthoritative

TTL이 유효한 두 번째 질의에서는 cached .de delegation을 재사용합니다.

단계별 힌트

막혔을 때만 한 단계씩 여세요. 정답을 바로 읽는 것보다 기억을 꺼내는 시간이 중요합니다.

0/6
채점 기준으로 내 답안 점검하기
  • root, .de TLD, authoritative NS 순서를 쓴다.
  • client/stub to recursive resolver를 포함하면 좋다.
  • 최종 A/AAAA answer와 cache/TTL을 언급한다.

답안 슬롯 자가 점검 — 실제로 말하거나 쓴 항목만 체크하세요.

0/3 slots

프로토콜/시나리오 프레임 보기
sender

client/stub and recursive resolver

receiver

recursive resolver, root, .de TLD, authoritative tu-darmstadt.de nameserver

message_content

DNS query for tu-darmstadt.de and referrals/final RR answers

attacker_capability

none in original task

defense

cache TTL and DNSSEC validation if authenticity is required

defense_limit

caching improves reuse but stale or poisoned cache remains a separate risk

정답과 핵심 해설 확인하기
summary_ko

Client/stub -> recursive resolver -> root -> .de TLD -> authoritative tu-darmstadt.de -> final record, then cache.

trace
  • sender

    Client/stub

    receiver

    recursive resolver

    message_content

    query tu-darmstadt.de A/AAAA

    function

    사용자 요청 전달

  • sender

    recursive resolver

    receiver

    root nameserver

    message_content

    query tu-darmstadt.de

    function

    .de TLD referral 획득

  • sender

    recursive resolver

    receiver

    .de TLD nameserver

    message_content

    query tu-darmstadt.de

    function

    tu-darmstadt.de authoritative NS referral 획득

  • sender

    recursive resolver

    receiver

    authoritative NS for tu-darmstadt.de

    message_content

    query requested RR

    function

    최종 DNS answer 획득 및 cache

개념부터 다시 보는 상세 풀이

BEGINNER LESSON

5-(a) tu-darmstadt.de DNS 이름 해석을 처음부터 그리기

ZERO-BASE START

정말 아무것도 모른다고 가정하고 시작합니다

전문 용어를 알고 있다고 가정하지 않습니다. 먼저 일상적인 장면을 보고, 그 장면의 사람과 행동에 실제 보안 용어를 하나씩 붙인 뒤, 시스템에서 일어나는 순서를 따라갑니다.

기초 개념 01

네트워크에서 누가 누구에게 무엇을 보내는가

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

IP address가 아파트 건물 주소라면 port는 몇 호인지, protocol은 택배 봉투를 어떤 양식으로 쓰는지, router는 다음 물류 센터를 고르는 역할에 가깝다.

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

네트워크는 여러 장치가 정해진 protocol에 따라 packet 또는 message를 주고받는 시스템이다. Client는 서비스를 요청하는 쪽, server는 서비스를 제공하는 쪽이다. IP address는 네트워크에서 장치를 찾는 주소이고 port는 한 장치 안에서 어떤 프로그램과 통신할지 구분하는 번호다. Router는 목적지 네트워크를 보고 packet을 다음 경로로 전달한다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

Packet

네트워크에서 header와 payload를 갖고 전달되는 데이터 단위입니다.

IP address

IP 계층에서 출발지와 목적지 host/interface를 식별하는 주소입니다.

Port

한 host 안에서 어떤 application/service가 데이터를 받을지 구분하는 번호입니다.

Protocol

통신 참여자가 message 형식과 순서를 해석하기로 합의한 규칙입니다.

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

  1. 송신자와 수신자를 먼저 적는다.
  2. 출발지·목적지 IP와 port를 구분한다.
  3. 중간 장치가 내용을 읽는지 단순히 전달하는지 구분한다.
  4. 응답이 어느 방향으로 돌아오는지 그린다.

왜 여기서 많이 틀릴까요?

하나의 port 번호가 그 port를 이용하는 데이터의 의미까지 보장하지는 않는다.

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

기초 개념 02

DNS와 resolver, cache를 처음부터 이해하기

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

DNS는 이름으로 전화번호를 찾는 분산 전화번호부다. Resolver는 여러 전화번호부 기관에 대신 문의하는 안내원이고 cache는 최근 찾아본 번호를 메모해 두는 수첩이다.

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

사람은 tu-darmstadt.de 같은 domain name을 사용하지만 packet은 IP address로 전달된다. DNS는 이름을 IP와 다른 정보로 바꾸는 분산 데이터베이스다. 사용자의 질문을 대신 처리하는 프로그램이 recursive resolver이고, authoritative nameserver는 특정 zone의 공식 record를 가진다. Resolver는 받은 답을 TTL 동안 cache해 같은 질문을 빠르게 답한다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

DNS

domain 이름을 IP 주소 등 resource record로 찾아주는 분산 이름 시스템입니다.

Recursive resolver

client 대신 여러 DNS server에 질의해 최종 답을 찾아주는 server입니다.

Cache

이전에 받은 DNS 답을 일정 시간 저장해 재사용하는 공간입니다.

TTL

DNS record를 cache에서 얼마나 오래 재사용할 수 있는지 나타내는 시간값입니다.

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

  1. 사용자 stub resolver가 recursive resolver에 이름을 묻는다.
  2. Cache에 유효한 답이 있으면 즉시 사용한다.
  3. 없으면 root, TLD, authoritative nameserver 방향으로 위임을 따라간다.
  4. 받은 record를 TTL 동안 저장한다.

왜 여기서 많이 틀릴까요?

Resolver와 authoritative nameserver를 같은 서버 역할로 쓰지 말고, cache에 오래된 거짓 답이 들어가는 cache poisoning과 전송 암호화를 구분한다.

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

기초 개념 03

Root부터 authoritative server까지 이름을 찾는 순서

1타 강사식 시작: 이름은 잠시 가리고 장면부터 봅시다

국가 안내소가 독일 지역 안내소를 알려 주고, 지역 안내소가 대학 담당 사무실을 알려 주며, 담당 사무실이 최종 방 번호를 알려 주는 과정이다.

지금은 이 비유를 완벽히 외울 필요가 없습니다. 누가 무엇을 가지고 있고, 무엇을 하려 하며, 어느 지점에서 문제가 생기는지만 찾으면 됩니다.

이제 실제 용어를 하나씩 붙여 봅시다

DNS 이름은 오른쪽에서 왼쪽으로 계층을 이룬다. tu-darmstadt.de에서 de는 top-level domain(TLD), tu-darmstadt는 그 아래 domain이다. Root nameserver는 최종 IP를 보통 직접 주지 않고 .de TLD nameserver를 알려 준다. TLD server는 tu-darmstadt.de의 authoritative nameserver를 알려 주고, authoritative server가 최종 A, AAAA, MX 같은 record를 답한다.

TERMS FROM ZERO

전문 용어를 한 단어씩 풀기

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

Root server

최상위에서 `.de`, `.com` 같은 TLD의 nameserver 방향을 알려주는 DNS server입니다.

TLD server

특정 top-level domain 아래의 authoritative server 방향을 알려줍니다.

Authoritative server

해당 zone의 실제 DNS record에 권한 있는 최종 답변자입니다.

Referral

최종 IP 대신 다음에 물어볼 nameserver 정보를 주는 응답입니다.

프로그램이나 프로토콜 안에서는 다음 순서로 움직입니다.

  1. Resolver cache에 최종 답이나 delegation이 있는지 먼저 본다.
  2. 없으면 root에 질의해 TLD nameserver referral을 받는다.
  3. TLD에 질의해 domain authoritative nameserver referral을 받는다.
  4. Authoritative server에 최종 record를 질의한다.
  5. 각 답과 delegation을 TTL 동안 cache한다.

왜 여기서 많이 틀릴까요?

모든 질의마다 반드시 root부터 시작하는 것은 아니다. 유효한 cache가 있으면 가장 구체적으로 알려진 지점부터 재개한다.

조건을 생략하거나 서로 다른 기능을 같은 것으로 취급했는지 확인하세요. 정답 문장을 외우는 것보다 틀린 이유를 말할 수 있어야 변형 문제를 풀 수 있습니다.

핵심부터 말하면 cache가 비어 있다고 가정하면 client가 recursive resolver에 질의하고, resolver는 root → .de TLD → tu-darmstadt.de authoritative nameserver 순서로 iterative query를 보내 최종 A/AAAA record를 얻은 뒤 client에게 돌려주고 TTL 동안 cache한다.

이 글에서 익힐 것

  • domain name을 오른쪽에서 왼쪽 계층으로 읽는다.

  • stub resolver와 recursive resolver의 역할을 구분한다.

  • root·TLD·authoritative nameserver가 각각 무엇을 알려 주는지 이해한다.

  • recursive query와 iterative referral을 구분한다.

  • NS, glue, A/AAAA, TTL, cache의 역할을 설명한다.

  • 시험 그림에 sender·receiver·message·response를 정확히 배치한다.

Domain hierarchy

  • DNS root

    .

    모든 public DNS 이름 계층의 최상위. .de를 담당하는 TLD server의 delegation을 알려 준다.

  • Top-Level Domain

    de

    .de 아래 등록 domain들의 authoritative delegation 정보를 가진다.

  • Second-level domain

    tu-darmstadt

    tu-darmstadt.de zone의 authoritative nameserver가 실제 record를 관리한다.

  • Host/subdomain label

    www 등

    문제에 특정 host가 있다면 authoritative zone 안에서 A/AAAA/CNAME 등을 조회한다.

Actors

  • Application/Browser

    사람이 입력한 domain의 IP가 필요하다.

  • Stub resolver

    사용자 기기의 DNS client. 보통 recursive resolver에 질의를 위임한다.

  • Recursive resolver

    client 대신 계층을 순회하고 cache를 관리해 최종 답을 제공한다.

  • Root nameserver

    최종 IP를 보통 주지 않고 .de TLD nameserver로 referral한다.

  • .de TLD nameserver

    tu-darmstadt.de authoritative NS delegation을 알려 준다.

  • Authoritative NS for tu-darmstadt.de

    zone의 공식 최종 A/AAAA 등 record를 답한다.

Assumptions

  • resolver cache는 비어 있거나 필요한 delegation/answer가 없다.

  • 질의 type은 예시로 A(IPv4) 또는 AAAA(IPv6)다.

  • DNSSEC 검증·CNAME chain·여러 NS 중 선택 같은 추가 과정은 기본 3점 trace에서는 생략할 수 있다.

  • 문제의 'resolver'는 반복 질의를 수행하는 recursive resolver로 해석한다.

단계별로 따라가기

  1. Step

    1. Client → Recursive resolver

    Message

    QNAME=tu-darmstadt.de, QTYPE=A/AAAA, recursion desired

    Response

    resolver가 최종 답을 찾아 달라는 요청

    Meaning

    client는 보통 각 DNS server를 직접 순회하지 않는다.

  2. Step

    2. Resolver → Root

    Message

    tu-darmstadt.de A/AAAA?

    Response

    .de를 담당하는 TLD NS들의 referral + 필요 시 glue addresses

    Meaning

    root는 tu-darmstadt.de의 최종 IP가 아니라 다음 계층을 안내한다.

  3. Step

    3. Resolver → .de TLD NS

    Message

    tu-darmstadt.de A/AAAA?

    Response

    tu-darmstadt.de authoritative NS referral + glue가 필요하면 포함

    Meaning

    TLD는 해당 zone의 authoritative server 위치를 알려 준다.

  4. Step

    4. Resolver → Authoritative NS

    Message

    tu-darmstadt.de A/AAAA?

    Response

    authoritative final RR 또는 CNAME/referral as appropriate

    Meaning

    zone의 공식 data source에서 최종 답을 얻는다.

  5. Step

    5. Resolver → Client

    Message

    최종 A/AAAA answer

    Response

    application이 IP로 연결 가능

    Meaning

    resolver는 받은 record와 delegation을 각 TTL 범위에서 cache한다.

헷갈리는 개념 비교하기

  • Recursive request

    client → recursive resolver

    질의를 받은 쪽이 최종 답 또는 오류를 책임지고 찾아 돌려준다.

  • Iterative query/referral

    resolver → root/TLD

    server가 자신이 아는 최선의 답, 보통 다음 nameserver referral을 주고 resolver가 다음 server에 직접 묻는다.

  • 자주 틀리는 지점

    root가 TLD에 대신 물어본 뒤 최종 답을 resolver에 돌려준다고 그리면 역할을 혼동한 것이다.

Ns and glue

  • NS record는 어떤 nameserver가 child zone에 authoritative인지 이름으로 알려 준다.

  • 그 nameserver 이름의 IP를 알아야 접속할 수 있으므로 delegation 응답에 A/AAAA glue record가 함께 올 수 있다.

  • Glue는 특히 nameserver 이름이 위임된 child zone 내부에 있어 순환 의존이 생길 때 필요하다.

  • 3점 기본 답안에서 glue를 반드시 상세 설명할 필요는 없지만 referral과 최종 answer를 구분하면 높은 정확도를 보인다.

Cache and ttl

  • Resolver는 최종 A/AAAA뿐 아니라 .de NS, tu-darmstadt.de NS와 glue도 cache할 수 있다.

  • 각 Resource Record의 TTL은 얼마 동안 재사용할 수 있는지 나타낸다.

  • TTL이 유효하면 다음 질의에서 일부 계층을 건너뛰어 지연과 DNS traffic을 줄인다.

  • TTL 만료 후에는 authoritative hierarchy에서 최신 정보를 다시 받아야 한다.

Diagram template

  • Client/Stub ── tu-darmstadt.de A? ──▶ Recursive Resolver

  • Recursive Resolver ── query ──▶ Root

  • Root ── referral: .de NS ──▶ Resolver

  • Resolver ── query ──▶ .de TLD NS

  • .de TLD ── referral: authoritative NS for tu-darmstadt.de ──▶ Resolver

  • Resolver ── query A/AAAA ──▶ Authoritative NS

  • Authoritative NS ── final answer ──▶ Resolver

  • Resolver ── final answer ──▶ Client; cache until TTL

문제를 푸는 순서

  1. 1단계: 이름을 root → de → tu-darmstadt 계층으로 분해한다.

  2. 2단계: client와 recursive resolver를 그림 왼쪽에 둔다.

  3. 3단계: cache empty 가정을 적는다.

  4. 4단계: root referral, .de referral, authoritative answer를 서로 다른 화살표로 그린다.

  5. 5단계: 최종 A/AAAA가 client로 돌아가고 TTL cache된다고 적는다.

  6. 6단계: 각 화살표에 sender·receiver·query/response 내용을 표시한다.

시험장에서는 이렇게 쓰기

Three point german

Bei leerem Cache sendet der Stub seine rekursive Anfrage an den rekursiven Resolver. Dieser fragt iterativ zunächst einen Root-Nameserver und erhält einen Verweis auf die .de-TLD-Nameserver. Von einem .de-Nameserver erhält er die autoritativen Nameserver für tu-darmstadt.de und fragt anschließend dort den gewünschten A/AAAA-Record ab. Die Antwort wird an den Client zurückgegeben und gemäß TTL zwischengespeichert.

Arrow version

Client → Resolver → Root; Root → .de-Referral; Resolver → .de-TLD; TLD → autoritativer-NS-Referral; Resolver → autoritativer NS; finaler A/AAAA-Record → Resolver → Client; Cache.

자주 틀리는 지점

  • root server가 최종 tu-darmstadt.de IP를 직접 준다고 쓰는 것.

  • root → authoritative로 바로 건너뛰고 .de TLD를 생략하는 것.

  • client가 root·TLD·authoritative에 모두 직접 질의한다고 그리는 것. 보통 recursive resolver가 수행한다.

  • NS referral과 최종 A/AAAA answer를 같은 것으로 보는 것.

  • 모든 server가 recursive하게 다음 server에 대신 질의한다고 생각하는 것.

  • cache를 영구 저장으로 이해하는 것. TTL 동안만 유효하다.

  • domain을 왼쪽에서 root 방향으로 읽는 것. DNS hierarchy는 오른쪽 끝 root/TLD부터 내려간다.

한 줄로 기억하기

DNS는 주소를 바로 아는 전화번호부 한 권이 아니라 안내 데스크 계층이다: root는 '.de 데스크로', .de는 'TU 담당 데스크로', authoritative는 '최종 번호는 이것'이라고 답한다.

스스로 확인하기

  • root server가 돌려주는 대표 응답은 최종 A record인가 referral인가?

    .de TLD nameserver로 가라는 referral이다.

  • .de TLD server는 무엇을 알려 주는가?

    tu-darmstadt.de zone의 authoritative nameserver delegation.

  • 최종 A/AAAA record는 누가 제공하는가?

    tu-darmstadt.de의 authoritative nameserver.

  • 왜 resolver가 결과를 cache하는가?

    TTL 동안 반복 질의를 줄이고 응답을 빠르게 하기 위해서다.

  • client→resolver 질의와 resolver→root 질의의 대표 방식 차이는?

    전자는 보통 recursive request, 후자는 iterative query/referral 흐름이다.

설명의 근거

  • Gedächtnisprotokoll Computersystemsicherheit WS2025_26.md, Networking / DNS, 5-(a), 3 Punkte.

  • CSS Exam SoSe22, p.13 — iterative DNS resolver trace 문제.

  • Vorlesung 08 Domain Name System — DNS hierarchy, resolution, referrals와 caching.

예제로 확인하기

  • 네트워크에서 누가 누구에게 무엇을 보내는가을 구체적인 순서로 보기

    IP address가 아파트 건물 주소라면 port는 몇 호인지, protocol은 택배 봉투를 어떤 양식으로 쓰는지, router는 다음 물류 센터를 고르는 역할에 가깝다.

    1. 송신자와 수신자를 먼저 적는다.

    2. 출발지·목적지 IP와 port를 구분한다.

    3. 중간 장치가 내용을 읽는지 단순히 전달하는지 구분한다.

    4. 응답이 어느 방향으로 돌아오는지 그린다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

  • DNS와 resolver, cache를 처음부터 이해하기을 구체적인 순서로 보기

    DNS는 이름으로 전화번호를 찾는 분산 전화번호부다. Resolver는 여러 전화번호부 기관에 대신 문의하는 안내원이고 cache는 최근 찾아본 번호를 메모해 두는 수첩이다.

    1. 사용자 stub resolver가 recursive resolver에 이름을 묻는다.

    2. Cache에 유효한 답이 있으면 즉시 사용한다.

    3. 없으면 root, TLD, authoritative nameserver 방향으로 위임을 따라간다.

    4. 받은 record를 TTL 동안 저장한다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

  • Root부터 authoritative server까지 이름을 찾는 순서을 구체적인 순서로 보기

    국가 안내소가 독일 지역 안내소를 알려 주고, 지역 안내소가 대학 담당 사무실을 알려 주며, 담당 사무실이 최종 방 번호를 알려 주는 과정이다.

    1. Resolver cache에 최종 답이나 delegation이 있는지 먼저 본다.

    2. 없으면 root에 질의해 TLD nameserver referral을 받는다.

    3. TLD에 질의해 domain authoritative nameserver referral을 받는다.

    4. Authoritative server에 최종 record를 질의한다.

    5. 각 답과 delegation을 TTL 동안 cache한다.

    각 단계에서 입력이나 message가 어떻게 달라지는지 확인한 뒤 현재 문제의 조건과 결론에 연결합니다.

이 문제가 어려운 이유

짧은 문제 문장 ‘DNS resolver가 tu-darmstadt.de를 resolve하려고 한다. Namensauflösung Ablauf를 sketch하라.’ 안에 정의, 조건, 처리 순서가 압축되어 있습니다. 아래 예시에서는 이를 한 단계씩 펼쳐 확인합니다.

AI 구두시험용 프롬프트

한 문항만 풀어라. 먼저 정답을 열지 말고 90초 안에 답안을 말한 뒤, css-ws2025-26-network-dns-001의 채점 프레임으로 스스로 채점하라. 문제: DNS resolver가 tu-darmstadt.de를 resolve하려고 한다. Namensauflösung Ablauf를 sketch하라.

학습 기록

이 문항을 얼마나 이해했나요?