Linux/기본

Linux 네임 서버 설치 및 운영

no-na 2026. 6. 30. 11:42

네임 서버 개요

  • 네임 서버(DNS, Domain Name System 서버)
  • 도메인 이름(URL)을 해당 컴퓨터의 IP 주소로 변환하는 일을 한다 = 이름 해석(Name Resolution)
    예) www.naver.com -> 125.209.226.33

 

hosts 파일을 이요하여 네트워크 접속

  • IP 주소를 각자의 컴퓨터에 저장하는 방식
    예)
    102.54.94.97    rhino.acme.com
    38.25.63.10      x.acme.com
    127.0.0.1          localhost
    ::1                     localhost
  • hosts 파일 위치
    Windows : C:\Windows\system32\drivers\etc\hosts
    Linux       : /etc/hosts
  • 모든 ip 주소나 변경되는 주소를 실시간으로 확인 할 수 없다.

 

네임 서버를 이용하여 네트워크 접속

  • 모든 IP 정보를 파일 하나에 기록하는 것은 무리
  • 이름 해석을 전문적으로 해 주는 서버 컴퓨터가 필요해짐
  • 전화 안내 서비스 114와 같은 역할
  • 모든 컴퓨터의 URL과 IP 정보를 실시간으로 제공
  • URL만 알고 있으면 어디서든지 해당 컴퓨터에 접속 가능

 

hosts 파일과 네임 서버 설정 확인

1. hosts 파일과 네임 서버 설정 확인

  • 컴퓨터가 사용 중인 네임 서버와 각종 사이트 IP 주소를 확인한다.

 

2. 네임 서버 192.168.111.2가 제대로 작동하는지 확인

  • cat /etc/resolv.conf 명령을 입력해 네임 서버가 설정된 파일을 확인
  • 웹 브라우저 접속 확인

 

3. 네임 서버에 문제가 생기거나 주소 오류 시 작동 확인

  • /etc/resolv.conf 파일 nameserver 앞에 주석 처리하여 네임 서버가 고장났다고 가정한다

  • 사이트 URL로 접속 시

  • IP 주소로 접속 시 

 

4. hosts 파일을 활용해 URL로 접속하기

  • hosts 파일에 ip주소와 url을 입력한다.

  • hosts에 저장한 주소는 접속 되지만, 나머지 주소는 접속이 안된다

 

  • 주소창에 URL을 통해 접속을 시도하면 웹 브라우저는 우선 hosts 파일을 조사하고 IP 정보가 없으면 /etc/resolv.conf 파일에 있는 nameserver를 통해 IP주소를 얻는다.

 


네임 서버의 IP 주소 취득 방법

  • IP 주소를 얻는 내부 흐름도

 

네임 서버 구축

도메인 이름 체계

  • 초창기 인터넷에서는 1대의 네임 서버만으로 충분히 IP주소와 이름의 관리가 가능
  • 인터넷이 폭발적으로 확장되면서, 몇 대의 네임 서버로는 실시간으로 인터넷 상의 수많은 컴퓨터들을 관리한 수가 없게 되었음
  • 그래서 트리 구조와 같은 '도메인 이름 체계'를 고안함

 

 


로컬 네임 서버 작동 순서

  • PC가 사용하는 네임 서버가 /etc/resolv.conf 파일에 "nameserver IP주소"로 설정되어 있는데, 이 네임 서버를 로컬 네임 서버라고 부름
  • PC가 네임 서버를 통해 IP 주소를 획득하는 과정

 


 

캐싱 전용 네임 서버

  • 캐싱 전용 네임 서버(Caching-only Nameserver)는 PC에서 URL로 IP주소를 얻고자 할 때, 해당하는 URL의 IP주소를 알려주는 네임 서버를 말함
  • 캐싱 전용 네임 서버 구성도

 


네임 서버 구축 실습

1. 캐싱 전용 네임 서버 구축

  • dnf -y install bind bind-chroot 명령으로 네임 서버와 관련된 패키지 설치
  • 캐싱 전용 네임 서버와 관련된 설정 파일 수정
    파일: /etc/named.conf
  • [수정전]

  • [수정후]
  • VMware 프로그램의 네트워크 주소 안에 있는 모든 컴퓨터가 네임 서버를 사용할 수 있게 하는 설정

 

  • 서비스(데몬)를 작동한다.
  • 서비스 이름은 'named'다.
    1. 재시작(strop + start)
    2. 네임 서버 상시 가동
    3. 네임 서버 상태 확인

 

  • 방화벽 설정
    • DNS 서버 열기

 

  • 네임 서버 작동 테스트

 

  • 네임 서버 작동 테스트2

 

2. 외부에서 네임 서버 사용하도록 설정

  • 외부에서 네임 서버 가동하는지 확인

 

  • 네임 서버 고정 지정
  • su -c 'gedit /etc/resolv.conf' 명령으로 nameserver 뒤 IP 주소를 네임 서버 주소로 변경한다.

 

 

3. 텍스트 모드 환경에서 네임 서버 사용 설정

  • nano 에디터로 /etc/resolv.conf 파일 수정

  • 네임 서버 작동 확인

 

4. 텍스트 기반 웹 브라우저 사용

  • dnf -y install lynx 명령으로 텍스트 기반 웹 브라우저인 lynx 패키지 설치
  • lynx www.kernel.org 명령을 입력해 lynx로 리눅스 커널 웹사이트에 접속

 

5. WinClient 환경에서 Linux 네임 서버 사용하도록 설정

  • [시작] - [제어판] - [네트워크 및 인터넷] - [네트워크 상태 및 작업 보기] - [Ethernet0] - [속성]
    - [인터넷 프로토콜 버전 4(TCP/TPv4)] - [속성] - [다음 DNS 서버 주소 사용] 변경

 

  • DNS 서버 복구 (Windows 명령 사용)
  • [Windows PowerShell (관리자)] 실행
  • ipconfig 명령을 입력해 네트워크 장치의 이름을 확인

 

  • 기본 DNS 서버를 자동으로 사용하도록 설정
    netsh interface ip set dns "네트워크장치이름" dhcp

 


마스터 네임 서버

  • 도메인에 속해 있는 컴퓨터의 이름을 관리하며 외부에서 URL을 가진 컴퓨터 IP 주소를 알기 원할 때 해당 컴퓨터의 IP 주소를 알려 주는 네임 서버다.

 

마스터 네임 서버 구성도

 

Linux 마스터 네임 서버 설치 및 운영

1. 웹 서버 설정

  • 웹 서버 설치 확인 및 설치
    • rpm -qa httpd           # 설치 확인
    • dnf -y install httpd    # 설치
  • 웹 서비스(httpd) 작동 확인 및 실행
    • systemctl status httpd    # 상태 확인
    • systemctl start httpd      #  실행

  • 방화벽 설정으로 'http'와 'https'의 웹 서버를 연다
    • firewall-config    # 방화벽 설정

  • 웹 페이지 작성
    • gedit /var/www/html/index.html    # index.html 파일 생성

 

 

2.  FTP 서버 설치 및 설정

  • FTP 서버 설치
    • dnf -y install vsftpd
  • FTP 서비스의 방화벽 설정 허용
    • firewall-cmd --permanent --add-service=ftp
  • 방화벽 설정 적용
    • firewall-cmd --reload

 

  • /var/ftp 디렉터리에 welcome.msg 파일 생성
    • cd /var/ftp                     # var/ftp 디렉터리로 이동
    • touch welcome.msg     # 빈 파일 생성 및 갱신
    • nano welcome.msg      # welcome.msg 파일 변경

 

  • /etc/vsftpd/vsftpd.conf 파일 편집
    • 가장 위쪽에 'banner_file=/var/ftp/welcome.msg' 입력
    • 외부에서 FTP 서버로 접속했을 때, welcome.msg 파일의 내용을 환영 메시지로 보여주기 위한 작업

 

  • FTP 서버 재시작
    • systemctl restart vsftpd

 

3. thislinux.com 도메인 설정

  • /etc/named.conf 파일 내용 추가

 

※ [/etc/named.conf 파일]

  • 네임 서버 서비스(데몬)가 시작될 때 제일 먼저 읽는 파일이다.
option {
	listen-on port 53 { any; }	-> 네임 서버에 접속이 허용된 컴퓨터의 IP 주소
    directory "디렉터리이름" ;		-> 네임 서버 DB 파일이 들어 있는 디렉터리
    dump-file "덤프파일이름" ;		-> 정보가 갱신될 때 저장되는 파일
    statistics-file "통계파일이름"	-> 통계 처리 용도의 파일
    allow-query { 컴퓨터; }		-> 도메인 이름의 쿼리가 허용된 컴퓨터 또는 IP 주소
};
zone "도메인이름" IN {
	type hint 또는 master 또는 slave;	-> 마스터 네임 서버는 master
    file "파일이름";				-> option의 directory에 생성될 "도메인 이름"의 상세 설정 파일
    allow-update { IP주소 } 또는 { none }; 	-> 2차 네임 서버의 주소. 생략하면 none으로 처리
};

 

 

  • named-checkconf 명령으로 named.conf 파일에 추가한 내용이 문법상 이상이 없는지 확인
  • thisislinux.com.db 라는 빈 파일을 생성한다. 
    이 파일을 정방향 영역 파일 또는 포워드 존(Forward Zone) 파일 이라고 부른다.
    • 도메인을 IP 주소로 변경하는 것을

 

  • thisislinux.com.db 파일 내용을 수정한다.

 

[포워드 존 파일의 문법]

; : 주석을 의미한다.
$TTL : Time To Live의 약자로 www.thisislinux.com의 호스트 이름을 물었을 때 문의한 다른 네임 서버가 해당 IP 주소를 
캐시에 저장하는 시간을 의미한다
@ : /etc/named.conf에 저장된 thisislinux.com을 의미한다
IN : 클래스 이름으로 internet을 의미한다
SOA : Start Of Authority 약자로 권한의 시작을 의미한다.
	괄호 안의 숫자는 시간을 의미하는데
	- serial(버전 정보)
    - refresh(상위 네임 서버에 업데이트된 정보를 요청하는 간격)
    - retry(상위 네임 서버에 문제가 발생했을 때 재 접속 간격)
    - expire(상위 네임 서버에 접속하지 못할 경우 이전의 정보를 파기하는 간격)
    - minimum(이 시간 이후 정보가 삭제됨)
NS : Name Server의 약자로 설정된 도메인의 네임 서버 역할을 하는 컴퓨터를 지정하는 부분
MX : Mail Exchanger의 약자로 메일 서버 컴퓨터를 설정하는 부분
A : 호스트 이름에 사응하는 IP 주소를 지정하는 부분
CNAME : 호스트 이름에 별칭을 부여할 때 사용

 

  • 수정 후 파일의 문법에 이상이 없는지 확인
    • named-checkzone thisislinux.com thisislinux.com.db

 

  • 네임 서버 재시작 및 작동 테스트
    • systemctl restart named
    • systemctl status named

  • 방화벽 설정 확인
    • firewall-config
    • dns 설정 확인

 

4. 마스터 네임 서버 작동 확인

  • 터미널에 네임 서버 주소 IP 확인
    • cat /etc/resolv.conf

  • 웹 브라우서 접속 확인

  • FTP 클라이언트 패키지 설치 후 FTP 서버 접속 
    • sudo dnf -y install ftp 또는 su -c 'dnf -y install ftp'    # 패키지 설치
    • ftp ftp.thisislinux.com    # FTP 서버 접속
    • FTP 서버 접속 bye

 

5. WinClient 가상머신에서 마스터 네임 서버 사용

  • [Windows PowerShell (관리자)] 실행
  • DNS 서버를 Server 가상머신으로 설정
    • netsh interface ip set dns "Ethernet0" static 192.168.111.100
  • 웹 서버 및 FTP 서버에 접속

 

라운드 로빈 방식의 네임 서버

  • 라운드 로빈(Round Robin)
  • 여러 대의 웹 서버를 운영해서, 웹 클라이언트가 서비스를 요청할 경우에 교대로 서비스를 실시하도록 하는 방식

 

1. 라운드 로빈 방식의 네임 서버로 설정

  • nslookup 명령을 입력해 실제 운영 중인 웹 서버의 IP 주소를 몇 개 확인한다.
  • 아래 3개의 IP 주소를 www.thisislinux.com의 웹 서버 3대라고 가정
    163.239.1.17: 서강대학교 홈페이지
    142.251.150.119: google
    120.50.131.112: nate
  • /var/named/thisislinux.com.db 파일을 수정
  • CNAME은 Canonical Name의 의미로 기준이 되는 이름이다.
  • 100, 200, 300은 단순히 차례를 나타낸다.

 

  • 라운드 로빈 설정 확인

 

2. 외부 컴퓨터로 라운드 로빈 작동 테스트

  • 사이트가 번갈아 나타난다.

 

'Linux > 기본' 카테고리의 다른 글

Linux 원격지 시스템 관리  (0) 2026.06.23
셸 스크립트 프로그래밍  (0) 2026.06.17
Linux 사용자별 공간 할당  (0) 2026.06.17
Linux RAID에 Rocky Linux 설치  (0) 2026.06.17
Linux LVM  (0) 2026.06.16