네트워크교육 23일차(2022.02.07) - 정리

정상훈·2022년 2월 7일
0

DNS 구축 ( Domain Name Service)

도메인 이름을 요청하면 실제 주소인 IP로 바꿔주는 서비스

호스트 이름 : 네트워크 상의 컴퓨터 각각의 이름
도메인 이름 : 네트워크의 범위를 지정하는 이름
호스트 이름과 도메인 이름을 모두 표기한 풀 주소이름 -> FQDN
fully qualified domain name : 전체 도메인 네임

url : 특정 위치로 가기위한 경로

nslookup (도메인 서비스 관련 툴)

-> 도메인 서버에 질의를 해서 도메인에 대한 정보를 얻을 수 있다.

nslookup
기본 서버:  dns.google
Address:  8.8.8.8

nslookup naver.com
서버:    dns.google
Address:  8.8.8.8
권한 없는 응답:
이름: naver.com
Addresses: 223.130.200.104
           223.130.195.95
      	   223.130.195.200
     	   223.130.200.107
           
 set type=ns 
 (ns = name server  mx = mail server  all = everyting)
> naver.com
서버:    dns.google
Address:  8.8.8.8

권한 없는 응답:
naver.com       nameserver = ns2.naver.com
naver.com       nameserver = ns1.naver.com
naver.com       nameserver = e-ns.naver.com

C:\Windows\System32\drivers\etc - hosts 파일에 dns저장 가능

For example:
102.54.94.97     rhino.acme.com          source server
38.25.63.10     x.acme.com                client host

localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
::1             localhost

223.130.200.104	daum.net 
-> daum.net을 치면 naver.com 으로 접속됨

DNS서버는 기본적으로 트리 구조 형식

루트 도메인 서버에서 .com에 대한 요청을 받으면 
1차 도메인 서버 : kr , com 의 IP를 요청자에게 넘겨줌.
com 에서는 naver.com을 알려주는게 아닌 

naver.com이라는 정보를 가지고 있는 곳의 ip를 또 알려주고 
그 ip를 통해 통신을 해서 정보를 받아낸다.

SELINUX (레드햇 계열)

selinux (리눅스 보안기능) 비활성화
vi /etc/sysconfig/selinux

강제(enforcing) - 
- 강제로 selinux 사용 , 허용되지않은 행동 차단

허용(permissive) - 
- 모니터링은 하나, 차단하지 않고 허용해줌 (기록은 함)

비활성(disabled) - 
- 커널 메모리상에 올리지 않음 SELINUX 자체 동작 x
- vi /etc/sysconfig/selinux 
- SELINUX=disabled 설정 (재부팅 해야함) 


- getenforce(sestatus) - selinux 설정 확인

- setenforce - selinux 설정 
- setenforce 0 : 허용 
- setenforce 1 : 강제

실습

캐싱 전용 DNS 서버 구축하기

서버1

yum -y install bind bind-chroot

vi /etc/named.conf

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { none; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    allow-query     { any; };



systemctl restart named
systemctl enable named

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

서비스 구축

1. 설치 : yum -y bind bind-chroot 
2. 세팅 : vi /etc/named.conf 
-> port 53 { 127.0.0.1 을 any; 로 }
-> ::01: 을 none; 으로
-> allow-query 를 any로

3. 실행 : systemctl restart named
systemctl enable named

4. 방화벽 :

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

frirewall-cmd --permanent --add-port=53/tcp
frirewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload


5. 테스트 

2번 서버에서 nslookup -> server 1번ip -> naver.com

마스터 네임 서버(프라이머리 네임 서버) 구축

슬레이브 서버(세컨더리 네임 서버) : 예비 서버

-> 도메인에 속해있는 시스템들의 이름을 관리하고 
외부에 해당 시스템의 IP를 알려줌

실습

서버 1번 - dns,http

systemctl restart httpd

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

vi /var/www/html/index.html
<h1>
centos1
</h1>

-----> 다른 가상 시스테메서 IP접속으로 웹 서비스 오픈 확인

linux.com 으로 도메인 오픈

맨 밑줄에
zone "linux.com" IN {
type master;
file "linux.com.db";
allow-update {none; };
};

:wq

systemctl restart named
systemctl enable named

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

cd /var/named

cp named.localhost linux.com.db
named-checkzone linux.com linux.com.db
chmod -R 754 /var/named
systemctl restart named

서버 2번,윈도우 - 1번 DNS를 이용,

liunx.com (가상 도메인) 구축
223.130.200.107
systemctl restart httpd

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

vi /var/www/html/index.html
<h1>
centos2
</h1>

DNS 로드밸런싱 - (DNS 접속할 때마다 다른 IP 가르쳐주기 -> 부하분담)

이론상과는 다르게 1번서버, 2번서버 동시에 오픈했을때,
centos1 과 centos2가 번갈아서 들어가지지 않고, 
2번만 들어가지는 현상 발생.

DNS 레코드

NS : 도메인의 네임서버 정보
도메인이 속해 있는 아이피를 찾아오는 레코드

MX : 도메인의 MX(Mail Exchange) 서버 
메일서버 위치정보(IP주소)를 제공하는 레코드 

A : 호스트의 IP주소 

CNAME(Aliases) : 별칭(Canonical Name)
호스트가 다른호스트를 지칭할때 사용하는 레코드 

SOA : 도메인의 Start Of Authority(시작점)
DNS 서버내에서 각 도메인 영역을 식별하는 레코드 

PTR : IP주소에 대한 호스트명   

ANY : 호스트에 관련된 모든 레코드들의 정보 

DB설치 실습

MARIA DB 서버 설치 실습

데이터 : 
하나하나의 자료들

RDBMS : 
MYSQL(MARIADB), ORACLE , MSSQL(SQL-SERVER)
관계형 DB -> 데이터를 표 형식(테이블)으로 저장한 것.

레코드 : 
테이블의 가로, 이름이 없다.
열(필드,컬럼) : 
테이블의 세로, 이름이 있다. 데이터 타입이 설정되어 있다.

PK(Primary Key) = 주요 키 : 
레코드를 식별하는 유일한 값을 갖고 있는 비어있지 않는 필드

외래키 : 
(FK) 다른 테이블의 주요키와 대응되는 필드

SQL : 
구조화된 질의 언어 : DB에서 정보를 얻고자 조작하거나 갱신하는 등의 언어


* yum install mariadb-server mariadb -y

* systemctl restart mariadb

* systemctl enable mariadb	

* mysql -u 유저명 -p 패스워드

* NVARCHAR = 아스키코드

* insert into 테이블명 values ('값',...);  -> 내 값 삽입

* select 필드명 from 테이블명 WHERE 조건; 
profile
"@____

0개의 댓글