⛏️/LINUX | AWS

[Linux] Name Server

defyuil 2023. 10. 12. 11:51

기존 웹서버 복원-스냅샷 체크박스 해제

초기화 상태 만들기

 

웹서버 우클-복제

 

 

[Name Server]

1. 개요

👉  호스트(PC, 서버)에 호스트 이름을 붙여 사용하기 쉽게 만든것이 '도메인'이다

👉 컴퓨터는 '호스트' 이름으로는 상대방을 찾아갈 수 없다!

- 0과 1로 이루어진 IP주소가 필요!

👉 호스트 이름 <-> IP주소를 변환하는 과정이 필요

👉  호스트 이름을 IP 주소로 변환하는 것을 '이름 분석(Name Resolution)' 이름 주소 해석을 실행하는 서비스를 '네임 서비스'라고 한다

👉 현재 인터넷은 네임 서비스로 DNS(Domain Name Sysytem)을 사용

 

2. 도메인 이름

👉 DNS는 인터넷 전체의 이름 공간(도메인)을 계층화하고, 차례대로 권한을 위임해서 분산 관리를 함

👉 도메인 이름은 트리 구조의 도메인 계층을 오른쪽에서부터 마침표(.)으로 구분해서 표현

👉 점으로 구분되는 부분을 '레이블'이라고 하고 '레이블'의 길이는 63자 이하로 제한 전체 길이는 마침표를 포함해서 253자 이하로 제한

 

ex) 도메인 이름의 예

www.itwillbs.co.kr

www: 4레벨 도메인

itwillbs: 3레벨 도메인

co: 2레벨 도메인

kr: 최상위 레벨 도메인

 

👉 도메인은 IP주소와 마찬가지로 인터넷상에서 유일해야 한다!

- 도메인 주소로 패키지를 만든다!

👉 도메인 내부에서 유일하게 표현되는 호스트 이름까지 전부 표현하는 방식을 FQDN(Fully Qualified Domain Name)이라고 함

ex) www.itwillbs.co.kr/main/index.html  

 

3. 정방향 조회 & 역방향 조회

👉 호스트 이름으로 IP주소를 찾는 것을 '정방향 조회'

👉 IP주소로 호스트 이름을 찾는 것을 '역방향 조회'

👉 일반적으로 사용자가 애플리케이션을 사용해 인터넷에 접근할 때 '정방향 조회'를 사용함

👉 '역방향 조회'는 호스트 이름을 확인하는 특수한 경우에 사용

 

 

4. 네임 서버 시작

 

ip add

👉 현재 리눅스에 설정된 IP 주소를 확인 

 

 

 

nslooup

에러 메시지가 나오면 nslookup 설치가 필요

👉 yum install bind-utils -y

> www.itwillbs.co.kr 등의 도메인주소를 입력하면 서버의 주소가 표시됨

 

ctrl+c눌러서 종료

 

 

cat /etc/resolv.conf

👉현재 설정된 네임서버의 주소를 볼 수 있음

 

 

ping www.google.co.kr

👉 네임서버가 잘 동작해서 이름 형태의 DNS 주소로 ping 명령어가 동작!

 

Ctrl + C

 

 

vi /etc/resolv.conf

👉  편집기(vi)로 파일 수정
👉  nameserver 단에 앞에 '#'을 붙여서 주석처리
 ex) #nameserver 203.248.252.2


esc -> :wq

 

 

ping www.google.co.kr

👉 이름 형태로는 ping 명령어를 실행할 수 없음!
👉 현재 '#' 처리로 인해 네임서버가 동작하지 않기 때문!

 

 

ping 172.217.27.3 (www.google.co.kr의 ip주소, nslookup으로 확인 가능)

👉 성공!

👉 네트워크(인터넷) 자체가 안 되는 것이 아니라 네임 서버가 동작하지 않을 뿐

👉 네임 서버의 장애가 곧 네트워크의 장애는 아니다!

 

 

 

vi /etc/hosts

👉 i 또는 a를 눌러 입력모드로 전환

 👉 3번째 라인에 172.217.27.3 [탭] www.google.co.kr   입력

 

esc -> :wq

 

ping www.google.co.kr

👉 성공!

 

 

 

[리눅스가 IP주소를 얻는 내부 흐름도]

URL 입력 👉 /etc/host.conf 조회 👉 /etc/hosts 👉 1) 있으면 입력된 IP주소로 동작, 2) 없으면 /etc/resolv.conf 참조 네임서버에게 물어봄

 

 

 

vi /etc/resolv.conf

👉 # 주석처리 한 것들 삭제

 

 

 

 

[캐싱 전용 네임 서버]

👉 컴퓨터에서 URL주소로 IP주소를 얻고자 할 때 해당되는 URL의 IP 주소를 알려주는 네임 서버

👉 자신이 아는 IP 주소라면 요청한 컴퓨터에게 해당 URL의 IP주소를 바로 알려주고 모르는 URL이라면 "ROOT 네임 서버"로부터 차례대로 URL에 해당하는 IP주소를 알아낸다

👉 현재 서버에 설정된 통신사의 로컬 네임 서버는 '캐싱 전용 네임 서버'

 

 

리눅스에서 name server의 설치(패키지)는 'bind'로 하고 동작(실행)은 'named'

 

 

yum install -y bind

👉 name server 동작시키기 위해 패키지 설치

 

 

 

 

vi /etc/named.conf

👉 설정 파일 수정

👉 :set nu

 

13번 listen-on port 53 { 127.0.0.1; }; 👉 listen-on port 53 { any; }; 로 변경

- 네임 서버에 접속이 허용된 컴퓨터의 IP 주소라고 생각하면 됨

14번  listen-on-v6 port 53 { ::1; }; 👉  listen-on-v6 port 53 { none; }; 로 변경

- IPv6 주소를 가지는 컴퓨에 대한 내용으로 IPv6를 사용하지 않으려면 none처리를 해야 함

21번 allow-query { localhost; } ; 👉 allow-query { any; } ; 로 변경

- 클라이언트가 질의할 수 있도록 모든 클라이언트를 허용

 

 

esc -> :wq

 

systemctl restart named

👉 설정파일을 수정 후 다시 named(네임서비스)를 재시작

 

 

윈도우에서 제어판 -> 네트워크 및 공유센터 -> 이더넷 -> 우클릭 속성 -> 인터넷 프로토콜 버전 4 더블클릭 -> 다음 DNS 서버 주소 사용의 기본 설정 DNS 서버 주소를 리눅스의 네임서버로 변경

웹 브라우저에서 특정 웹사이트의 URL 주소를 입력하면 페이지 뜨지 않음!!
👉  리눅스 머신(NS)에게 DNS 관련 질의 시 방화벽(Firewalld)이 이를 막고 있기 때문
👉  방화벽에 DNS 관련 설정을 해야 함

 


방화벽 설정 방법
1) 터미널 -> firewall-config 명령어 입력 (GUI 환경)
2) 프로그램 -> 잡다 -> 방화벽 (GUI 환경)
3) 터미널 -> firewall-cmd 명령어를 통해 직접 입력 (TUI 환경)

1의 경우
설정 : 런타임 -> 영구적 변경
서비스의 스크롤을 내려서 □dns 에 체크!
옵션탭 -> 'Firewlld 다시 불러오기' 클릭

 

 

윈도우 웹 브라우저 주소창에 원하는 URL 주소 입력 확인

 

 

 

[마스터 네임 서버]

👉 자신만의 데이터를 갖는 네임 서버

👉 itwillbs.com과 같은 도메인에 속해 있는 컴퓨터들의 이름을 관리하고 외부에서 www.itwillbs.com이나 ftp.itwillbs.com등의 컴퓨터 IP주소를 알기 원할 때 해당 컴퓨터에게 IP주소를 알려주는 네임 서버 

 

주소창에 www.itwillbs.co.kr을   을 입력하면 WebServer 가상 머신의 웹페이지가 보이도록 실습 

 

WebServer 가상머신 시작

 

바탕화면 우클릭 👉 터미널 👉 ip add 주소 확인(192.168.7.141)

 

rpm -qa httpd

👉 아파치 웹 서비스가 설치되어 있는지 확인

 

yum install -y httpd

👉 설치되어 있지 않으면 설치

 

 

 

vi /var/www/html/index.html

👉 시작페이지 설정

👉 간단한 내용 입력 후 저장

 

 

 

systemctl start httpd

👉 아파지 웹 서비스 시작

 

 

터미널 방화벽 설정

firewall-config

설정 : 런타임 -> 영구적 변경
서비스의 스크롤을 내려서 □http 에 체크!
옵션탭 -> 'Firewlld 다시 불러오기' 클릭

 

 

윈도우 웹 브라우저에서 WebServer의 IP주소를 입력(192.168.7.141)

👉 시작 페이지 내용이 보이는지 확인

 

이제 웹 브라우저 주소창에 www.itwillbs.com 입력 시 같은 시작 페이지를 보도록 설정!

 

확인이 되었다면 다시 NS 서버로 이동

 

 

 

vi /etc/named.conf

👉 네임서버 설정 파일 수정

 

 

아래쪽 빈 라인에 입력

 

zone "itwillbs.com" IN {

           type master; // 마스터 네임 서버

           file "itwillbs.com.db"; // 데이터베이스 파일명

           allow-update { none; }; // 2차 네임 서버의 주소

};

 

esc -> :wq

 

 

named-checkconf

👉 아무런 내용이 나오지 않으면 잘된것

 

 

 

cd /var/named

👉 데이터베이스 파일이 위치할 디렉터리 이동

 

 

 

vi itwillbs.com.db

👉 수정

 

@ : 도메인이름 = itwillbs.com
A : 호스트 이름에 상응하는 IP 주소를 지정(1:1)

설정 후 :wq 로 저장 후 빠져나옴

 

 

 

named-checkzone itwillbs.com itwillbs.db

👉 zone 설정이 잘됐는지 확인

👉 OK가 보이면 설정 완료

 

 

systemctl restart named

👉 네임서버 재시작

 

 

 

 

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

👉 동시 접속자가 많은 웹 사이트의 경우 여러 대의 웹 서버를 동시에 운영한다

👉 이때, 웹 서버에 대한 질의에 대해 순차적으로 교대로 여러 웹 서버의 IP주소에 대한 응답을 하는 네임 서버를 라운드 로빈 방식의 네임 서버라고 함

 

 

실습 시 웹 서버 2대 이상 NS 서버 1대가 필요

 

vi /var/www/html/index.html

👉 vi편집기로 webServer1, db서버는 webServer2 작성

 

영구적으로 바꾸기
재시작

 

 

 

 

사전 준비 작업

👉 두 대의 웹서버에 아파치 웹 서비스를 시작하고 윈도우 주소창에서 해당 웹 페이지가 보이는지 확인

두 대의 웹서버 IP주소 확인(첫 번째: 141/두 번째: 142)

 

 

 

준비가 되었으면 NS 서버로 이동

vi itwillbs.com.db( 현재 위치 pwd : /var/named/)

 

 

주의! web.itwillbs.com.에서 맨 뒤 마침표(.)가 있는지 확인!

CNAME(Canonical Name) 기준이 되는 이름, CNAME 행 아래 2개행의 기준이 해당됨

100, 200의 숫자는 단순히 차례를 나타내는 것이며 서로 다른 숫자면 상관없다!

 

 

 

systemctl restart named

👉 네임 서버 재시작

 

윈도우에서 (web.itwillbs.com)확인

 

 

 

[Master/Slave 설정을 통한 이중화]

 

기존에 설정된 /etc/named.conf 파일을 수정

vi /etc/named.conf

 

zone "itwillbs.com" IN {

           type master; 

           file "itwillbs.com.db"; 

           allow-update { 192.168.7.141; };  // slave로 구현되는 2차 네임 서버 IP주소

           allow-transfer { 192.168.7.141; }; 

};

 

 

Slave 서버로 사용할 WebServer의 네임 서비스 설정

1. 설치

yum install -y bind

2. 방화벽 설정

firewall-cmd --add-service=dns --permanent

firewall-cmd --reload

3. 설정 파일 수정

vi /etc/named.conf

 

변경

 

빈 공간 가서

 

systemctl restart named

👉 네임 서버 재시작

 

cd /var/named/slaves/

ls

👉 itwillbs.com.db 파일이 존재!

 

이제 윈도우 IP주소를 2차 DNS 서버(=webserver)로 변경해도 DNS 제대로 동작!!