DNS란?
네트워크 상에서 컴퓨터들은 IP주소를 이용하여 서로를 구별하고 통신을 한다.
사람들이 네트워크를 통해 원격의 컴퓨터에 접속하기 위해서는 IP주소를 이용하여야 하지만,
숫자의 연속인 IP주소를 일일이 외울 수 없기 때문에 쉽게 기억할 수 있는 도메인 주소 체계가 만들어졌다. = DNS
DNS 동작과정
이와 같이 Local DNS 서버가 여러 DNS 서버를 차례대로 (Root DNS 서버 -> com DNS 서버 -> naver.com DNS 서버) 물어봐서 그 답을 찾아간다.
<용어 정리>
- 재귀쿼리(Recursive Query) : 요청을 전송하고 요청의 대한 응답을 수신
- 순환커리(Iterative Query) : 다른 DNS서버로부터 단계적으로 질의하는 과정
- FQDN(Fully Qualified Domain Name) : hostname(www) + domainname(naver.com)
DNS 구축(이중화/View)
<구축 환경>
- OS : CentOS 7.9
- Server : Master / Slave / Client1(외부) / Client2(내부)
- Bind Version : 9.11
<Master>
- 패키지 설치
yum -y install bind bind-chroot bind-utils
- Bind 시작 및 활성화
systemctl enable named-chroot; systemctl start named-chroot
- 환경 파일 수정(named.conf)
allow-transfer { Slave서버 IP; };
Version "UNKNOWN";
recursion no;
allow-transfer : zone 데이터 정보 수집으로 슬레이스 서버 아이피 등록
version : bind 버전 감추기
recursion no : no일때, zone 파일 내용으로만 응답. yes일때, 캐싱 네임서버로 사용
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
include "/etc/named.root.key";
view "internal" {
match-clients {
내부IP/24;
내부IP2/24;
};
recursion yes;
zone "test.local" {
type master;
file "internal/test.local.internal.zone";
};
};
view "external" {
match-clients {
any;
};
recursion no;
zone "test.loacl" {
type master;
file "external/test.local.external.zone";
};
};
주석처리 : named.rfc.1912.zones 기본적으로 설정되어있는 존파일을 읽어오지 않도록 한다.
view 설정(internal, external)
** match-clients : 해당 조건에 맞는 존 파일 허용(dns 서버 대역+ 허용이 필요한 대역 등 설정)
- zone 파일 디렉토리 생성
mkdir /var/named/internal(external)
- zone 파일 디렉토리 권한 수정
chown root.named /var/named/internal(external)
- zone 파일 생성(internal)
cp -ap /var/named/named.empty /var/named/internal/test.local.internal.zone
- zone 파일 수정(internal)
$TTL 3H
@ IN SOA test.loac admin.test.loacl. (
0 ; serial
1D ; refresh
1H ; retry
1W ; exprire
3H ; minimum
IN NS ns.test.loacl.
NS IN A MasterIP
www IN A MasterIP
@ IN A MasterIP
- zone 파일 생성(external)
cp -ap /var/named/named.empty /var/named/external/test.local.external.zone
- zone 파일 수정(external)
$TTL 3H
@ IN SOA test.loac admin.test.loacl. (
0 ; serial
1D ; refresh
1H ; retry
1W ; exprire
3H ; minimum
IN NS ns.test.loacl.
NS IN A 외부IP
www IN A 외부IP
@ IN A 외부IP
- 파일 체크
named-checkconf /etc/named.conf
named-checkzone abc.local /var/named/internal(external)/abc.local.internal(external).zone
- 서비스 재시작
systemctl restart named-chroot
<Slave>
- 패키지 설치
yum -y install bind bind-chroot bind-utils
- Bind 시작 및 활성화
systemctl enable named-chroot; systemctl start named-chroot
- 환경 파일 수정(named.conf)
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
include "/etc/named.root.key";
view "internal" {
match-clients {
내부IP/24;
내부IP2/24;
};
recursion yes;
zone "test.local" {
type slave;
masters { MasterIP; };
file "internal/test.local.internal.zone";
masterfile-format text;
};
};
view "external" {
match-clients {
any;
};
recursion no;
zone "test.loacl" {
type slave;
masters { MasterIP; };
file "external/test.local.external.zone";
masterfile-format text;
};
};
masterfile-format text : zone 파일을 읽어올때 텍스트 형식으로 불러온다.
- 파일 체크
named-checkconf /etc/named.conf
- 서비스 재시작
systemctl restart named-chroot
- 존파일 생성 확인
ls -al /var/named/internal(external)
<Client(internal)>
- DNS 등록(resolv.conf)
- nameserver <DNS_IP>
- nslookup test.local
<Client(external)>
- DNS 등록(resolv.conf)
- nameserver <DNS_IP>
- nslookup test.local
'IT' 카테고리의 다른 글
Zabbix 구축 (0) | 2025.03.10 |
---|---|
Network(TCP/IP) (0) | 2023.07.17 |
MegaCli 사용법 (0) | 2022.06.20 |
Linux 비프음 끄기 (0) | 2022.06.17 |
Ansible 설치 방법 (0) | 2022.06.17 |