본문으로 바로가기

DNS 서버 및 구축방법

category MLOps/Linux 2022. 1. 30. 23:01

1. DNS

- 네트워크 통신 시에 기본은 IP주소를 사용하는 방식

- 익숙한 문자 형태의 주소 사용

- 호스트의 이름을 통해 호스트의 IP 주소 확인 가능

 

2. DNS 동작 방식

1) DNS 요청 및 응답

- 클라이언트에서 지정해둔 DNS 서버(/etc/resolv.conf)에 물어보고 알려주는 주소를 사용

- 모든 도메인 이름 정보를 한 서버에서 가지고 있는 것은 불가능하기 때문에 효율적인 작업을 위해 계층적인 구조 사용

 

2) DNS 계층 구조 및 동작 방식

- Root DNS서버는 다음 단계의 이름에 대한 답을 가지고 있는 서버의 정보 보유

예시: driver.google.com
1. /etc/hosts 파일 조회
2. /etc/resolv.conf 파일에 등록된 DNS 주소로 요청
3. 캐시서버 확인 (3번까지 수행했는데 존재하지 않다면 4번 진행)
4. Root DNS서버에서 top-level domain의 주소정보 관리 (xxx.com / xxx.co.kr / xxx.go.kr / xxx.uk / xxx.jp)
5. Root DNS server에서 xxx.com에 물어보고 google.com 도메인들을 관리하는 서버를 알려줌
6. Root DNS server에서 google.com DNS server에 물어보면 driver.google.com을 알려줌
7. 캐시서버에 기록

 

3) DNS 캐시

- 시스템이 기억하고 있는 이름과 IP 주소의 기록을 의미

- DNS는 레코드의 유효기한 (TTL; Time To Live)을 설정하여 이를 넘기기 전까지 해당 레코드 사용

- DNS 서버에도 존재

 

4) DNS 조회

# host 명령
host [option] <name> [server]

# nslookup
nslookup [option] [name] [server]

# dig
dig [@server] [option] [name]

 

3. DNS 서버 구성

1) bind 패키지 설치

yum install bind -y

2) 서비스 구성

가) 서비스 설정 파일

 - /etc/named.conf 파일 수정해야함

- listen-on port 53 { 127.0.0.1 }: DNS 요청에 응답할 인터페이스와 포트 (IPv4)

- listen-on-v6 port 53 { ::1; }: DNS 요청에 응답할 인터페이스와 포트 (IPv6)

- allow-query { localhost; }: DNS 쿼리 요청을 허가할 대상

-> { any; }: 특정 대상 지정 하지 않음

-> { none; }: 차단

 

나) 정방향 조회 영역파일

- 영역 파일은 도메인 정보나 도메인 내 호스트 정보를 가지고 있으며 bind는 이 파일을 참고하여 DNS요청에 응답

- '도메인명.zone' 형태의 파일명 사용

- /var/named/ 디렉토리에 생성해야함

# 형식 복사
cd /var/named
cp named.empty data/kkk.co.kr.zone

 

다) 역방향 조회 영역파일

 

라) 파일 권한 확인 (/etc/named.conf 파일 수정)

 

3) 서비스 활성화

systemctl enable --now named

systemctl restart named.service

 

4) 방화벽 설정

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload

# 작동확인 방법: 다른 호스트에서 구성한 호스트로 요청 확인
nslookup www.google.com 192.168.123.106

 

4. DNS 서버관리

- 영역 전송 (Zone Transfer): DNS 서버 간 동기화를 통해 레코드를 동일하게 유지하는 방식 -> 보안 상 등록된 DNS서버로만 전송허가

1) Master DNS 서버 설정

- /etc/named.conf의 zone영역에 Allow-transfer 항목 추가

2) Slave DNS 서버 설정

- Master DNS 서버로부터 zone의 레코드를 전송 받음

'MLOps > Linux' 카테고리의 다른 글

FreeIPA  (0) 2022.01.31
DHCP 서버  (0) 2022.01.30
SELinux (리눅스 보안)  (0) 2022.01.29
네트워크 티밍  (0) 2022.01.29
방화벽 관리, 포트포워딩, 리치 규칙  (0) 2022.01.28