Linux

Linux 명령어 - (6) server 관리 - DNS

우당탕탕인생기 2023. 8. 20. 00:07
DNS을 이해하기  우선 WEB에 대해 알아야한다.

 

1. WEB(Hyper Text Transfer Protocol)

  • web컨텐츠를 제공
  • protocol은 TCP 사용 , 포트는 80
  • 즉 html, css등으로 작성한 웹페에지를 제공해준다.

 

2. DNS(Domain Name Server or System)

  • URL을 ip address로 변환(인터넷 환경에서는 모든 통신은 IP address로 이루어짐)
  • 우리가 NAVER.COM 이라고 입력하고 있지만, 이는 사실 DNS을 통해 네이버 홈페이지의 아이피를 naver.com으로 변환시켜주었기 때문이다.
  • protocol 은 TCP ,UDP 다 사용 기본적으론 UDP을 사용 , 포트는 53
  • UDP : 기본설정의 경우
  • TCP : 전송하는 데이터의 양이 512byte를 넘어갈때 사용한다고 한다.
  •  
  • Zone Transfer(영역전송) , 주 DNS에서 보조 DNS로 데이터를 넘겨줄때

 

 

DNS을 잘 설명해 주는 사진

 

DNS IP 알아오는과정

1. 나의 캐시메모리에 해당 정보 확인
2. hosts 확인
3. pubilc dns 서버에게 물어봄

 

이제 본격적으로 리눅스 내에서 어떻게 설정하고 실행하는지 알아보자

 


DNS 설정

순서
1. 관련 패키치 설치
2. /etc/named.conf  -> DNS 기본설정
3. /etc/named.rfc1912.zones -> DNS 영역에 대한 기본적인 설정
4. /var/named/named.localhost -> DNS 정보 테이블 구성
5. 53번 포트 방화벽 제어

 

 

1. 관련 패키지 설치

dnf install -y bind bind-utils bind-libs httpd ## dns, 웹서비스 관련 패키지 설치

주르르륵 설치된다,

 

2. /etc/name.cof

DNS 서버의 전반적인 환경설정을 담당한다.

 

vi /etc/name.conf

이렇게 많이 나오는데 11 ~ 19번 줄은 53포트를 사용하며 어떤 ip에게 허용을 해줄 것이냐 이런건데, 일단은 다 받아주자.

다 any로 변경해주었다.

3. /etc/name.rfc1912.zones 

해당 ip을 가지고 있는 서버가 어떤 역할을 하는지 알려준다.

 

이렇게 나오는데 23 ~ 27번 줄을 복사해서 dsn 서버 ip를 작성하자.

 

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

### 아래와 같이 변경

zone "test.local" IN {              # 영역 이름
        type master;				# 영역타입 , 주 DNS서버이기때문에 타입은 MASTER
        file "test.local";			#  dns파일 이름
        allow-update { none; };
};

 

3. test.local 파일 구성

- 이제 해당 ip address을 어떤 도메인으로 변환할것인지 설정하는 파일을 구성해야 한다.

- /var/named/named.localhost 라는 파일로 예시 양식이 있다. 이 파일을 복사한 후에 구성하면된다.

( 주의 할점은 파일이름은 위에 rfc1912.zones에서 명시한 파일 이름으로 해야 한다)

 

cp /var/named/{named.localhost,test.local} # 양식예시파일을 test.local이라는 이름으로 복사

vi /var/named/test.local

이 때 주의 할 점은 문자 뒤에 . 을 꼭 붙혀줘야한다.

또 파일을 보면 제가 test A 10.0.0.11 설정을 해줬는데

이로인해 www.test.local  과 test.test.local이 같은 ip address을 표현한다.

 

4. 파일 읽기권한부여

- 이제 test.local 이라는 파일의 읽기권한을 부여 해야한다.

- 따로 부여해주지않으면 root 사용자만 dns을 읽어내기때문이다.

chomd -o+r /var/named/test.local

 

5. 방화벽 제어

- DNS는 53번 포트를 사용하기때문에 53포트를 열어줘야 한다.

firewall-cmd --permanent --add-prot=53/tcp

 

 

이러면 기본적인 DNS 세팅이 끝났다! 

 

 


 

이제 http로 웹페이지 열어보자

systemctl start httpd  # httpd 실행
firewall-cmd --permanent --add-port=80/tcp #web 서버 포트인 80번 포트 열기

vi /var/www/html/index.html # 접속 후 첫 화면 구성

systemctl start named # DNS 실행
systemctl start httpd # HTTP 실행

이렇게 아까 dns 정보을 설정할때 test.test.local도 해준덕에 test.test.local 해도 해당 웹페이지에 잘 접속이 된다.

 

다음에는 보조 DNS , 가상호스트 등에 대해 공부한것을 기록해보도록 하겠다.