안녕하세요!
Justee에 오신 걸 환영합니다.
이번 글에서는 Linux에서 DNS 서버를 직접 설정하는 방법을 소개합니다.
도메인 이름을 IP 주소로 바꿔주는 DNS는 네트워크에서 중요한 역할을 합니다.
내부 테스트 환경이나 사내 네트워크를 구축할 때도 유용하게 활용할 수 있습니다.
하나씩 따라 하며 설정해보세요!
1. DNS
1.1. DNS 설정하기
1.1.1. 패키지 설치하기
dnf -y install bind bind-chroot bind-utils
1.1.2. 파일 수정하기 위해 파일 열기
작업전, 기존 named.conf 파일은 백업후 작업하는 것을 권장드립니다.
vi /etc/named.conf
1.1.3. 파일 정보 확인 및 매칭시켜야하는 IP 대역대 변경
options {
listen-on port 53 { 127.0.0.1; 192.168.0/24; }; # IP 대역대 정의.
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { localhost; 192.168.0/24; }; # Subnet IP 범위에 대해 정의.
forwarders { 8.8.8.8; 8.8.4.4; }; # 정의된 대역대가 아닌 다른 대역대가 들어오면 확인할 DNS 주소
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
1.1.4. 호스트 영역 설정 정의하기 - vi /var/named/{사용하고 싶은 도메인 이름}
zone "{사용하고 싶은 도메인 이름}" IN {
type master;
file "{사용하고 싶은 도메인 이름}.db";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.in-addr.arpa.db";
allow-update { none; };
};
해당 파일은 정방향과 역방향에 대해서 정리되는 파일이다.
- 정방향: 도메인으로 입력하여 매핑을 위해 정의한 것.(ex: 사용하고 싶은 도메인 이름으로 접근)
- 역방향: IP 대역대 매핑을 위해 정의한 것.(ex: 192.168.0.*로 접근) 만약 대역대가 바뀌면 여기도 같이 바꿔야 한다.
1.1.5. DNS 파일 정보 변경, 정방향(도메인) 부분에 대한 것 - vi /var/named/{사용하고 싶은 도메인 이름}.zones
$TTL 86400
@ IN SOA {사용하고 싶은 도메인 이름, 'ooo.oo.'} {사용하고 싶은 도메인 이름, 'root.ooo.oo.'}(
2025041401 ; Serial
3h ; Refresh
1h ; Retry
1w ; Expire
1h ) ; Minimum
IN NS {사용하고 싶은 서브 도메인 이름, 'ns.ooo.oo.'}
IN MX 10 {사용하고 싶은 서브 도메인 이름, 'ns.ooo.oo.'} # mx: 메일서버
router IN A 192.168.0.1
ns IN A 192.168.0.100
web01 IN A 192.168.0.101
web02 IN A 192.168.0.102
db IN A 192.168.0.103
- router, ns, web01, web02, db는 설정하고 싶은 Subdomain을 의미합니다..
- 맨 앞 부분에 대한 설명 - @와 그외
- @ 부분
- SOA는 루트 도메인으로 권한 관련 레코드를 의미합니다.
- NS는 Name Server 레코드 부분으로 Name Server 주소를 설정할 수 있습니다. 해당 부분에 적힌 주소와 서브도메인이 매핑되어야 합니다. 예를 들어서 아래와 같이 매핑되어야 합니다.
- NS 레코드 부분에 적힌 부분: ns.ooo.oo.
- 서브도메인: ns
- @ 부분
1.1.6. IP 접근 파일 정보 변경, 역방향(IP)에 대한 것. - vi /var/named/{사용하고 싶은 도메인}.db
$TTL 86400
@ IN SOA joo.pvt. root.{사용하고 싶은 도메인}.(
2025042101 ; Serial
3h ; Refresh
1h ; Retry
1w ; Expire
1h ) ; Minimum
IN NS ns.{사용하고 싶은 도메인}.
100 IN PTR ns.{사용하고 싶은 도메인}.
- 100: 여기서 100은 IP입니다. 위에서 192.168.0라고 적힌 부분이 거기서 ns 서버에 매핑시키기 위해 해당 서버 IP를 작성하면 됩니다.
- PTR는 역방향 렠드를 의미합니다.
1.1.7. DNS 시작
systemctl start named && systemctl enable named
# or
systemctl enable --now named
1.1.8. 이제 다른 서버에서 해당 DNS 서버로 접근하게 하기
파일 열기
vi /etc/sysconfig/network-scripts/ens-{램카드인터페이스}
DNS1에 DNS 서버 IP 주소 설정하기
DNS1=192.168.0.100 # DNS 설정한 서버
DNS2=8.8.8.8
1.1.9. NetworkManager 재시작
systemctl restart NetworkManager
1.1.10. 내부 서버에서 도메인으로 테스트하기
지금까지 DNS 설정 방법에 대해 알아보았습니다.
DNS는 잘 설정해두면 내부망 테스트나 서버 간 통신에서 큰 도움이 됩니다.
읽어주셔서 감사합니다!
궁금한 점이나 잘못된 부분이 있다면 댓글로 알려주세요.
그럼 다음 글에서 또 뵙겠습니다!
반응형
'Knowledge > 네트워크(Network)' 카테고리의 다른 글
[네트워크 기초] Router와 Routing – 다른 네트워크로 가는 길 (2) | 2025.06.06 |
---|---|
[네트워크 기초] Subnet Mask와 CIDR 쉽게 이해하기 – 네트워크 구분법 정리 (0) | 2025.05.27 |
[네트워크 기초] NAT, Host Only, Bridge 이해하기(+ 가상머신) (0) | 2025.05.23 |