추천사 xvi
감수자의 글 xviii
이 책의 구성 xxiii
옮긴이 머리말 xxv
베타리더 후기 xxvii
기초편
CHAPTER 01 DNS가 만들어진 배경?
01 IP 주소와 이름의 관계?
[COLUMN] 통신 프로토콜이란?
[COLUMN] IP 주소에 대해 더 알아보기
이름으로 상대를 지정하기
[COLUMN] 일상에서 접할 수 있는 어드레싱과 네이밍
02 IP 주소와 이름의 대응 관리?
03 집중 관리에서 분산 관리로?
계층화와 위임
이름을 고유하게 하는 구조
[COLUMN] 계층화와 위임에서 주의할 점
04 도메인 이름의 구성
도메인 이름이란?
도메인 이름의 구성
서브 도메인
도메인 이름의 장점
[COLUMN] 도메인 이름에서 주의할 점
05 도메인 이름을 사용할 수 있도록 하기 위해 생겨난 DNS?
DNS란?
DNS 계층화와 위임의 구조
[COLUMN] DNS의 기술 사양은 누가 어디에서 정하는가?
06 DNS와 레지스트리의 관계
이름 관리의 분산화
레지스트리와 그 관계자의 연계 및 협조
CHAPTER 02 도메인 이름의 등록 관리 구조와 관리 체계
01 레지스트리란??
[COLUMN] 레지스트리와 레지스트리 오퍼레이터
IP 주소와 도메인 이름 관리의 차이
레지스트리의 역할
[COLUMN] 도메인 이름의 수명 주기
[COLUMN] Whois와 그 역할
레지스트리와 TLD의 관계
[COLUMN] ccTLD가 두 글자가 된 이유
[COLUMN] gTLD의 변천
[COLUMN] 새로운 분류의 gTLD
도메인 이름과 상표권
02 레지스트리?레지스트라 모델과 레지스트라의 역할
레지스트리?레지스트라 모델
[COLUMN] KR 도메인 이름의 등록 대행자 제도
레지스트라의 역할
03 도메인 이름 등록하기
등록자가 하는 일
레지스트라가 하는 일
레지스트리가 하는 일
04 도메인 이름을 사용할 수 있도록 하기
등록자가 하는 일
레지스트라가 하는 일
레지스트리가 하는 일
[COLUMN] 외부 서비스의 이용
05 도메인 이름의 세계적인 관리 체계
인터넷 거버넌스란?
[COLUMN] ‘The Internet is for Everyone’
인터넷 식별자에 관한 세계적인 관리 및 조정
도메인 이름에 관한 정책 검토
IANA
CHAPTER 03 DNS의 이름 풀이
01 이름 풀이의 구조?
질의와 응답
계층 구조를 따라가는 것
02 이름 풀이의 작동?
구체적인 작동의 예시
이름 풀이의 부하와 시간의 경감
03 이름 풀이를 위해 필요한 것?
부모가 응답하는 자식의 네임 서버 정보, ‘위임 정보’
위임 정보의 등록
04 이름 풀이에서 위임의 중요성?
이름 풀이의 구조가 가져다주는 장점
실제 인터넷에서의 위임 관계
[COLUMN] KR 도메인 이름의 종류
CHAPTER 04 DNS의 구성 요소와 구체적인 작동?
01 세 종류의 구성 요소와 그 역할?
스터브 리졸버의 역할
풀 리졸버의 역할
권한이 있는 서버의 역할
[COLUMN] DNS의 클래스
리소스 레코드의 구성
리소스 레코드의 타입
[COLUMN] 통일되지 않은 명칭에 주의하자
02 구성 요소의 연계에 의한 이름 풀이?
[COLUMN] 루트 서버의 IP 주소는 어떻게 알까?
[COLUMN] 이름 풀이 요구와 이름 풀이 실행의 차이
03 DNS 처리의 효율화와 가용성의 향상?
캐시와 네거티브 캐시
권한이 있는 서버를 여러 대 설치하기
04 정방향과 역방향?
실전편
CHAPTER 05 도메인 이름 설계하기
01 [실전 편을 읽는 방법] DNS를 작동시키기 위해 필요한 것
자신의 도메인 이름을 인터넷에서 사용할 수 있도록 하기
인터넷에서 사용되고 있는 도메인 이름을 자신이 사용할 수 있도록 하기
DNS를 지속적으로 작동시켜 가용성을 높이기
02 도메인 이름을 설계하기 위한 기본적인 사고방식
03 EXAMPLE사를 예시로 한 설계와 구축
도메인 이름을 어떻게 관리하고 운용할지 정하기
CHAPTER 06 도메인 이름 관리하기: 권한이 있는 서버의 설정
01 도메인 이름의 관리자가 관리하는 범위와 권한이 있는 서버
02 권한이 있는 서버의 가용성
프라이머리 서버와 세컨더리 서버
존 전송의 구조
프라이머리 서버와 세컨더리 서버의 배치
03 권한이 있는 서버가 응답하는 정보
리소스 레코드의 표기 형식
이 장에서 설명할 리소스 레코드
04 도메인 이름의 관리와 위임을 위해 설정하는 정보
존 자체에 관한 정보: SOA 리소스 레코드
[COLUMN] 절대 도메인 이름, 상대 도메인 이름, 전체 주소 도메인 이름이 존재하는 이유
위임에 관한 정보: NS 리소스 레코드
[COLUMN] 글루 레코드가 필요한 이유
05 서비스를 제공하기 위해 설정하는 정보
www.example.kr이라는 이름으로 웹사이트 공개하기
user@example.kr이라는 메일 주소를 사용할 수 있도록 하기
외부 서비스를 자사 도메인 이름으로 이용하기
06 리소스 레코드를 사용해서 메시지 전달하기
도메인 이름에 대응하는 텍스트 설정하기
07 리소스 레코드 세트(RRset)
08 존 파일에 리소스 레코드 설정하기
[COLUMN] 역방향을 설정하기 위한 PTR 리소스 레코드
CHAPTER 07 이름 풀이 서비스 제공하기: 풀 리졸버의 설정
01 풀 리졸버의 중요성
[COLUMN] 힌트 파일과 프라이밍
02 풀 리졸버의 설치와 운용
풀 리졸버의 설치
[COLUMN] 공인 IP 주소와 사설 IP 주소
[COLUMN] DNS 포워더
풀 리졸버의 가용성
풀 리졸버의 접근 제한
오픈 리졸버의 위험성
[COLUMN] 풀 리졸버 운용의 변천
[COLUMN] 결함을 가지는 홈 라우터
퍼블릭 DNS 서비스
CHAPTER 08 DNS 작동 확인
01 DNS 작동 확인의 기초
DNS의 서비스 상태를 확인하는 방법
[COLUMN] 인시던트와 액시던트
02 명령줄 도구
DNS의 작동 상태를 확인하기 위한 명령어
dig 명령어와 drill 명령어
dig, drill, kdig 명령어의 대표적인 옵션
[COLUMN] 재귀적 질의와 비재귀적 질의
DNS 메시지의 형식
[COLUMN] DNS 메시지에서 도메인 이름의 표현 형식과 최대 길이
dig 명령어의 출력 결과 해석하기
03 dig 명령어를 사용한 작동 확인
권한이 있는 서버의 작동 확인하기
풀 리졸버의 작동 확인하기
04 dig 명령어의 응용: 풀 리졸버가 되어 이름 풀이하기
예시 1) kisa.or.kr의 A 리소스 레코드 질의하기
예시 2) www.ietf.org의 AAAA 리소스 레코드 질의하기
[COLUMN] 내부 이름과 외부 이름
05 유용한 DNS 체크 사이트
Zonemaster
DNSViz
KRNIC DNS 자가 점검
06 서버의 감시
제대로 작동하고 있는가? (사활 감시)
사이버 공격을 받고 있지는 않은가? (트래픽 감시)
언제 무엇이 일어났는가? (시스템 로그 수집과 확인)
CHAPTER 09 DNS에 대한 사이버 공격과 그 대책
01 대상과 수법에 따른 DNS 관련 공격의 분류
공격 대상과 공격 수법에 따른 분류
각 공격의 예시
[COLUMN] DoS 공격과 DDoS 공격
02 대상과 효과에 따른 공격 대책의 분류
지킬 대상과 대책의 효과에 따른 분류
03 공격의 영향 범위
스터브 리졸버의 영향 범위
풀 리졸버의 영향 범위
권한이 있는 서버의 영향 범위
[COLUMN] IP Anycast란?
04 DNS의 특성이 공격에 미치는 영향
통신 프로토콜에 따른 영향
보급 상황에 따른 영향
통신 특성에 따른 영향
[COLUMN] DNS에서 사용하는 통신 프로토콜
05 대표적인 공격 수법과 그 개요
DNS 반사 공격
랜덤 서브 도메인 공격
BIND의 취약점을 이용한 DoS 공격
캐시 포이즈닝
[COLUMN] 카민스키형 공격 수법
등록 정보 무단 수정에 의한 도메인 이름 하이잭
[COLUMN] 도메인 이름 하이잭과 DNS 하이잭
06 공격에 대한 대책
DNS 반사 공격에 대한 대책
[COLUMN] 서버 특성 차이로 인한 대책의 차이
랜덤 서브 도메인 공격에 대한 대책
[COLUMN] IP53B란?
BIND의 취약점을 이용한 공격에 대한 대책
캐시 포이즈닝에 대한 대책
등록 정보 무단 수정에 의한 도메인 이름 하이잭에 대한 대책
CHAPTER 10 보다 나은 DNS 운용을 위하여
01 서버의 신뢰성에 관한 고려 사항
서버를 작동시키는 플랫폼의 신뢰성
DNS 소프트웨어의 선택
주요 DNS 소프트웨어
서버를 설치할 네트워크의 선정
02 DNS 설정과 운용에 관한 잠재적 위험
권한이 있는 서버 간의 존 데이터 불일치
부모-자식 간의 NS 리소스 레코드 불일치
lame delegation(불완전한 위임)
외부 이름의 설정
03 DNSSEC과 DNS 쿠키의 개요
DNSSEC의 개요
DNS 쿠키의 개요
응용편
CHAPTER 11 DNS 설정 및 운용 노하우
01 [자주 있는 트러블과 설정 실수] lame delegation
lame delegation의 예시
lame delegation이 발생하면 왜 나쁜가?
lame delegation 발생의 예방
레지스트리의 대처
02 [자주 있는 트러블과 설정 실수]존 전송에서의 트러블
03 [자주 있는 트러블과 설정 실수] 존 파일 유지 보수에서의 트러블
04 [자주 있는 트러블과 설정 실수] 방화벽이나 OS의 접근 제한으로 인한 트러블
05 [자주 있는 트러블과 설정 실수] 서버의 종류와 접근 제한의 설정
06 ‘www’가 붙지 않는 호스트 이름의 설정 방법
존 정점에 A/AAAA 리소스 레코드 설정
CDN 서비스와의 관계
07 $TTL을 설정할 때의 주의점
$TTL로 TTL 값의 기본값을 지정
권한이 있는 서버의 NS/A/AAAA의 TTL 값은 길어야 좋다
08 국제화 도메인 이름의 설정 방법
[COLUMN] 맨 앞 글자가 ‘_’로 시작하는 라벨
[COLUMN] Punycode
09 응답 사이즈가 큰 DNS 메시지에 대한 대응
[COLUMN] UDP DNS 메시지 사이즈가 512바이트로 제한된 이유
응답 사이즈가 큰 DNS 메시지에 대응하기 위한 기능 확장
[COLUMN] EDNS0의 확장 기능
IP 단편화에 대한 대응
10 역방향 DNS의 설정
역방향 DNS에서 사용되는 도메인 이름과 리소스 레코드
역방향 DNS의 이용 사례
CHAPTER 12 권한이 있는 서버의 이전(DNS의 이사)
01 호스팅 사업자 이전에 따른 권한이 있는 서버의 이전
02 DNS를 이사할 때 고려해야 할 항목
두 개의 이전 대상(권한이 있는 서버와 존 데이터)
병행 운용 기간
풀 리졸버에 따른 작동의 차이
접근 타이밍에 따른 캐시 상태의 차이
위임 정보 변경의 타이밍
비협조적인 DNS 운용자
03 정식 이사 순서
신규 서버 준비
현재 설정되어 있는 MX/A/AAAA의 TTL 값 단축
메일 서버, 웹 서버 등의 이전
권한이 있는 서버 이전
MX/A/AAAA의 TTL 값 복구
04 권한이 있는 서버와 다른 서버의 이전을 동시에 하는 경우
[COLUMN] 유령 도메인 이름 취약점
CHAPTER 13 DNSSEC의 구조
01 전자 서명의 구조와 DNSSEC에의 적용
전자 서명의 구조
전자 서명을 DNSSEC에 적용하기
서명 검증
02 신뢰의 연쇄
[COLUMN] 해시값이란?
[COLUMN] 루트 존 KSK 롤 오버
[COLUMN] DNSSEC의 키 생성 및 운용
03 DNSSEC에서 사용되는 두 종류의 키(KSK와 ZSK)
[COLUMN] RSA란?
04 KSK와 ZSK를 사용한 서명과 검증의 흐름
05 DNSSEC의 부재 증명에 사용되는 리소스 레코드
[COLUMN] 부재 증명이 필요한 이유
CHAPTER 14 DNS에서의 프라이버시 개요와 구현 상황
01 DNS에서 프라이버시와 관련하여 우려되는 점과 그 해결책
프라이버시와 관련하여 우려되는 점
우려되는 점에 대한 해결책
[COLUMN] IAB 성명문
02 QNAME minimisation
QNAME minimisation의 개요
QNAME minimisation의 구현 상황
03 DNS over TLS
DNS over TLS의 개요
[COLUMN] TLS란?
DNS over TLS의 구현 상황
[COLUMN] 풀 리졸버와 권한이 있는 서버 간의 통신 암호화
04 DNS over HTTPS
DNS over HTTPS의 구현 상황
[COLUMN] ‘OOO over XXX’란?
찾아보기