KDT/Cloud

240216 Cloud

001cloudid 2024. 2. 16. 12:50
728x90

교재 4장 운영 서버의 외부 환경 구성

 

도메인

  • 네트워크(인터넷)는 IP주소를 통해서 통신이 이루어짐
  • 호스트(PC, 서버)에 호스트 이름을 붙여 사용하기 쉽게 만든 것이 도메인
  • 하지만 컴퓨트는 호스트 이름으로는 상대방을 찾을 수 없으며, 호스트 이름과 IP 주소를 변환하는 과정이 필요
  • 호스트 이름을 IP 주소로 변환하는 것을 이름 분석(Name Resolution)이라고 하며, 이름 주소 해석을 실행하는
    서비스를 '네임 서비스'라고 함
  • 현재 인터넷은 네임 서비스로 DNS(Domain Name System)을 사용하고 있음

 

도메인 이름

  • DNS는 인터넷 전체의 이름 공간(도메인)을 계층화 하고, 차례대로 권한을 위임해서 분산 관리를 함
    ex) 도메인 이름의 예
    www.google.co.kr이라는 주소가 있다고 하자
    kr : 최상위 레벨 도메인, co : 2레벨 도메인, google : 3레벨 도메인, www : 4레벨 도메인
  • 도메인 이름은 트리 구조의 도메인 계층을 오른쪽에서부터 마침표로 구분해서 표현
  • 마침표로 구분되는 부분을 '레이블'이라고 함. 한 레이블의 길이는 63자 이하로 제한,
    전체 길이는 마침표를 포함해서 253자 이하로 제한 ex)192.000.0.000 
  • 도메인은 IP 주소와 마찬가지로 인터넷 상에서 유일해야함
  • 도메인 내부에서 유일하게 표현되는 호스트 이름까지를 전부 표현하는 것을 FQDN(Fully Qulified Domanin Name)이라고 함
    ex) www.google.com/main/index.html

 

정방향 조회, 역방향 조회

  • 정방향 조회 : 호스트 이름(DNS명)으로 IP 주소를 찾는 것
  • 역방향 조회 : IP주소로 호스트이름을 찾는 것

 

IP주소를 주소로 변경하는 것이 DNS 작동 방식은

  1. 웹 브라우저의 주소창에 001cloudid.tistory.com 을 입력
  2. 웹 브라우저에서 가까운 DNS 서버에 001cloudid.tistory.com 라는 도메인의 실제 ID 주소를 알고 있는지 물어본다
  3. 해당 DNS 서버가 모른다면 그 다음 DNS 서버에게 물어봄
  4. 001cloudid.tistory.com 의 실제 IP 주소를 알고 있는 DNS 서버를 만나면 해당 서버에서 IP 주소를 알려줌
  5. 웹 브라우저에서 IP 주소로 페이지 조회 요청을 날림

 

AWS EC2 인스턴스를 DNS 서버로 동작

1. 구성

웹 서버로 사용할 EC2 인스턴스(exercise-instance1) 기존

DNS 서버로 사용할 EC2(인스턴스(dns_server_1)

 

2. 인스턴스 - 인스턴스 - exercise-instance1 시작

 

3. 인스턴스 생성

  • 이름 : dns_server_1
  • AMI : Amazon Linux 2 AMI
  • 인스턴스 유형 : t2.micro
  • 키 페어 : 기존 키페어 사용
  • 기존 보안 그룹 선택 : ssh, web
  • 스토리지 구성 : 기본값 8Gib

4. EC2 -> 네트워크 및 보안 -> 보안 그룹 -> 보안 그룹 생성

  • 보안 그룹 이름 : dns
  • 인바운드 규칙 -> 규칙 추가
  • 유형 : DNS(UDP) 선택, 소스 : Anywhere-IPv4
  • 다시 규칙 추가 유형: DNS(TCP) 선택, 소스 : Anywhere-IPv4
  • 설정이 끝나면 아래의 '보안 그룹 생성' 버튼 클릭=> 새 보안 그룹(dns) 생성됨

dns_server_1에 보안 그룹 dns를 적용

EC2 -> 인스턴스 -> 인스턴스 -> dns_server_1에 우클릭 -> 보안 -> 보안 그룹 변경
보안 그룹 dns를 선택하고 오른쪽의 '보안 그룹 추가' 버튼 클릭


네임 서버 설치

 

1. dns_server_1 인스턴스 원격 접속

2. sudo yum update -y
=> 인스턴스 업데이트 진행

3. sudo yum -y install bind
=> 네임 서비스 설치
=> DNS 서버를 리눅스에 설치할 때 설치 패키지명 : bind, 서버 내 동작하는 프로그램명 : named

4. sudo vi /etc/named.conf
=> 설정파일에서 수정

13번 라인
listen-on port 53 { 127.0.0.1; };
-> listen-on port 53 { any; }; 변경
=> 127.0.0.1 은 loopback 자기 자신을 뜻함. localhost
=> 기본 설정이 로컬에서만 접근 허용하는데 이를 any(all) 모두에게 허용

14번라인
listen-on-v6 port 53 { ::1; };
-> listen-on-v6 port 53 { none; };
=> 현재 IPv6 주소를 사용하지 않으려면 none으로 변경

21번 라인
allow-query { localhost; }; 
-> allow-query { any; }; 

esc -> :wq

설정하면 dns_server_1 은 캐싱 네임 서버로 동작.
자신의 데이터베이스는 가지고 있지 않으나, 

다른 DNS 서버에게 질문을 보내고 클라이언트에게 응답을 해줄 수 있는 서버.

Master Name Server로 동작


- 자체적으로 데이터베이스를 가지고 있는 네임 서버
- 데이터베이스 = zone

sudo vi /etc/named.conf

set nu

빈라인 59에 작성
 59 zone "itwillbs.net" IN {
 60         type master;
 61         file "itwillbs.net.db";
 62         allow-update { none; };
 63 };

esc -> :wq

sudo named-checkconf
=> 아무런 내용이 나오지 않으면 설정이 잘된것!
=> 어떤 내용이 나오면 라인번호를 확인하고 다시 수정

네임 서버가 사용할 데이터베이스 파일을 생성
- 만약, DB 파일이 없으면 시작 시 에러 발생!
- 파일 저장 위치는 '/var/named/'

sudo vi /var/named/itwillbs.net.db

$TTL    86400
@       SOA     @       root.   (2402161107 3H 15M 1W 1D)
        IN      NS      @
        IN      A      퍼블릭IPv4주소

www     IN      A       퍼블릭IPv4주소

:wq

sudo -sE
=> root 유저로 변경

cd /var/named

 

ls

=> 방금 생성한 itwillbs.net.db

 

named-checkzone itwillbs.net itwillbs.net.db
=> OK 보이면 설정이 잘 된것!

exit
=> root 유저에서 ec2-user로 돌아옴

sudo systemctl restart named
=> 네임서버 재시작
==================================

[ 네임 서버 동작 확인 ]
클라이언트(윈도우)에서 네임 서버 동작 확인

윈도우 제어판 - 네트워크 및 공유 센터 - 왼쪽 항목의 '어뎁터 설정 변경' - 이더넷 우클릭 속성

- 인터넷 프로토콜 버전  4(TCP/IPv4) 더블 클릭 또는 선택 후 중간부분의 속성 클릭

- DNS 서버 주소를 AWS dns_server_1 주소로 변경, 확인 버튼 클릭해서 닫기

웹 브라우저를 시작해서 주소창에 itwillbs.net 또는 http://www.itwillbs.net 을 입력하면 

/var/named/itwillbs.net.db 에 설정대로 AWS EC2 exercise-instance1의 기본 화면이 웹에 보여짐

728x90

'KDT > Cloud' 카테고리의 다른 글

240308 Cloud - Git & GitHub 1  (0) 2024.03.08
240223 Cloud - HTTPS  (0) 2024.02.23
240202 Cloud  (0) 2024.02.02
240124 Cloud  (0) 2024.01.24
240119 Cloud  (0) 2024.01.19