네임 서버 개요
- 네임 서버(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'다.
- 재시작(strop + start)
- 네임 서버 상시 가동
- 네임 서버 상태 확인

- 방화벽 설정
- 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 |