[네트워크 기초] DNS 설정 – 도메인을 직접 연결해보기

2025. 6. 9. 11:30·Knowledge/네트워크(Network)

안녕하세요!  
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
'Knowledge/네트워크(Network)' 카테고리의 다른 글
  • [네트워크 기초] Router와 Routing – 다른 네트워크로 가는 길
  • [네트워크 기초] Subnet Mask와 CIDR 쉽게 이해하기 – 네트워크 구분법 정리
  • [네트워크 기초] NAT, Host Only, Bridge 이해하기(+ 가상머신)
Jo__oD
Jo__oD
[N개의 취미중 1개] Playground
  • Jo__oD
    JUST
    Jo__oD
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Framework & Library
        • React
        • Next.js
        • Spring & Spring Boot
      • Dev & Lenguage
        • JavaScript
        • JAVA
        • 백엔드 & 프론트엔드 개발
      • Cloud & DevOps
        • OpenStack
      • Knowledge N
        • 운영체제(OS)
        • 네트워크(Network) N
        • 데이터베이스(DB)
        • 자료구조 & 알고리즘
        • 디자인 패턴
      • 운영
        • Linux
        • Windows
        • Docker
      • 기타
        • HTTP & 인증체계
        • Raspberry Pi
      • Error
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    OpenStack
    가상 머신
    가상 머신 생성
    네트워크 연습
    java
    http
    가상머신
    오픈스택을 다루는 기술
    DNS
    지식채우기
    가상 머신 Ubuntu 생성
    VMware 생성
    Keystone
    raspberry pi
    내부 dns
    가상 머신 Ubuntu
    VMware Ubuntu 생성
    도서
    가상 머신 서버 생성
    http 개념
  • 최근 댓글

  • 최근 글

  • 160x600
  • hELLO· Designed By정상우.v4.10.3
Jo__oD
[네트워크 기초] DNS 설정 – 도메인을 직접 연결해보기
상단으로

티스토리툴바