교재 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 작동 방식은
- 웹 브라우저의 주소창에 001cloudid.tistory.com 을 입력
- 웹 브라우저에서 가까운 DNS 서버에 001cloudid.tistory.com 라는 도메인의 실제 ID 주소를 알고 있는지 물어본다
- 해당 DNS 서버가 모른다면 그 다음 DNS 서버에게 물어봄
- 001cloudid.tistory.com 의 실제 IP 주소를 알고 있는 DNS 서버를 만나면 해당 서버에서 IP 주소를 알려줌
- 웹 브라우저에서 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의 기본 화면이 웹에 보여짐
'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 |