Rocky Linux 8

Master DNS
인바운드
UDP 53 -> 질의
TCP 53 -> Zone Transfer ( zone 정보를 안전하게 전송해야 하기 때문에 신뢰성 기반의 TCP 사용)
cat <<EOF>> /etc/named.rfc1912.zones
zone "hyukjin.io" IN {
type master;
file "hyukjin.io.zone";
allow-update { none; }; #dns 레코드는 수동으로만 수정 가능 / 클라이언트가 수정 불가
allow-transfer { 10.10.46.31; }; # slave의 IP
};
EOF
cat <<EOF> /var/named/hyukjin.io.zone
$TTL 7200
hyukjin.io. IN SOA DNS01. admin.hyukjin.io. (
2024061803 ; Serial
7200 ; Refresh
3600 ; Retry
604800 ; Expire
7200) ; NegativeCacheTTL
IN NS DNS01.
IN NS DNS02.
registry IN A 10.10.46.7
registry-dashboard IN A 10.10.46.7
git IN A 10.10.46.7
hyukjin.io. IN A 10.10.46.7
www IN CNAME hyukjin.io.
EOF
vi /etc/named.conf
> listen-on port 53 { any; };
> allow-query { any; };
chown named. /var/named/hyukjin.io.zone
systemctl enable --now named
$TTL 7200
TTL 값은 DNS 레코드가 다른 서버나 클라이언트에서 얼마나 오랫동안 캐시될지를 결정한다.
hyukjin.io IN SOA DNS01. admin.hyukjin.io (...)
SOA 레코드는 DNS존의 시작을 나타낸다.
DNS01 = 이 존을 담당하는 네임서버의 이름(호스트네임)
admin.hyukjin.io. = 이 존의 관리자 이메일 주소. 이메일의 @는 . 으로 바뀐다.
괄호 안에는 존의 설정 정보가 포함된다.
2024061803; Serial
Serial 번호는 DNS의 레코드 버전이다. 이 값은 존 파일에 변경 사항이 있을때마다 증가해야 하고, 다른 DNS서버들이 이를 확인할 수 있도록 한다. 일반적으로 날짜와 버전을 결합한 형태로 설정된다. ( YYYYMMDDnn)
7200; Refresh
다른 DNS 서버들이 이 서버를 얼마나 자주 업데이트 할지를 결정한다.
3600; Retry
Refresh가 실패했을때, 다른 DNS서버가 다시 시도할 주기를 설정한다.
604800; Expire
Expire는 해당 DNS 정보가 유효하지 않게 될 시간을 정의한다. 보통 1주일(604800초)로 설정한다.
Expire시간동안 DNS 정보가 갱신되지 않으면 이 정보는 더이상 유효하지 않다고 간주된다.
IN NS DNS01.
NS(Name Server) 레코드는 도메인을 관리하는 네임서버를 지정한다.
hyukjin.io 도메인을 관리하는 네임서버는 DNS01 이다.
IN NS DNS02.
또다른 NS 레코드로, hyukjin.io 도메인을 관리하는 두 번째 네임서버는 DNS02 이다.
registry IN A10.10.46.7
A 레코드는 도메인 이름을 특정 IP 주소로 매핑한다.
www IN CNAME hyukjin.io
CNAME 레코드는 도메인 이름을 다른 도메인 이름으로 리다이렉트한다.
www.hyukjin.io 는 hyukjin.io로 리다이렉트 되며, 이로인해 www.hyukjin.io를 입력하면 자동으로 hyukjin.io와 동일한 IP 주소로 연결된다.
슬레이브 노드
cat <<EOF>> /etc/named.rfc1912.zones
zone "hyukjin.io" IN {
type slave;
file "/var/named/slaves/hyukjin.io.zone";
masters { 10.10.46.30; }; # 마스터의 IP 주소
};
EOF
vi /etc/named.conf
> listen-on port 53 { any; };
> allow-query { any; };
systemctl enable --now named
정상적으로 SLAVE DNS 서버가 작동하면 /var/named/slaves/hyukjin.io.zone 에 아래와 같은 파일이 생성되고 SLAVE DNS의 역할을 시작한다.

/var/named/slaves/hyukjin.io.zone 의 file 형식이 data 로 조회된다면 아래의 게시글 참고
bind의 기본설정은 master file 을 바이너리 포맷으로 전송하기 때문에 슬레이브 서버에서
masterfile-format text; 옵션을 /etc/named.conf 에 추가 해줘야 ASCII 형태로 전송이 된다.
'리눅스' 카테고리의 다른 글
K8S Flannel CNI 통신 (0) | 2025.04.17 |
---|---|
DNS Zone 파일 (0) | 2025.04.15 |
ls 명령어를 하면 무슨일이 일어날까 (0) | 2025.04.02 |
systemctl enable (0) | 2025.04.02 |
Redis Master/Slave + HAProxy (0) | 2025.03.18 |