DNS 서버
- IP <-> Domain Name
- Domain Name : www.google.com -> DNS Server -> IP 알려줌
- 도메인 주소가 너무 많다.
- 검색하는데 시간이 너무 오래 걸린다.
-> 계층화를 통한 분산 시스템을 만들어 준다.
<www.google.com>
- root servers
.com | .com's IP
.org | .org's IP
.com | nsname.com | NS | 3500
nsname.com | 101.5.5.3 | A | 3500
-TLD
nsname.com
google.com | dn1.google.com | NS | 3500
dns1.google.com | 8.8.8.8 | A | 350000
amazon.com | dn1.amazon.com | NS | 3220
amazon.com | 9.9.9.9 | A | 3220
- auth DNS
dn1.google.com
maps | 8.8.8.10
www | 8.8.8.15
mail | 8.8.8.100
local DNS 서버를 만들어 놓고 운영한다.
- DNS Query를 저장해 놓고 host들이 질의하면 대신 답변해 준다.
- TTL 필드가 존재해서 최신 상태를 유지하게 해준다.
DNS 레코드
v
NAME VALUE TYPE TTL
- A type : 특정 호스트의 주소 (ipv4, ipv6->AAAA)
www.google.com | 111.111.11.11 | A | 1250
server1.google.com | 111.111.11.15 | A | 1250
mail.google.com | 111.111.11.17 | A | 1250
google.com | 111.111.20.230 | A | 1250
- NS type : 도메인의 네임 서버 정보
.com | nsname.com | NS | 3500
.net | nsname-net.com | NS | 3500
- CNAME type (별칭) : 호스트의 별칭(Alias) 정보
www.google.com | server1.google.com | CNAME | 30
www.google.com | server2.google.com | CNAME | 30
- MX : 메일교환기에 대한 정보
- PTR : 도메인 이름에 대한 포인터
- SOA : 영역의 권한 시작 정보 (Start of Authority)
- TXT : 다양한 정보를 포함할 수 있는 텍스트 문자열
//host 명령어 실습 (KVM)
yum install bind-utils // 필요한 패키지 설치
host google.com
host -v google.com // -v : 상세한 정보 표시
host -t a google.com // -t : 조회할 테코드의 타입을 지정
host -t cname google.com
host -t ns google.com
host -a google.com // -a : all
host ns4.google.com 8.8.8.8
//DNS 서버 구성 (KVM)
yum update -y
yum install bind* -y
systemctl status named.service
vi /etc/named.conf
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
allow-query { any; };
setenforce 0
getenforce
-> permissive 확인
firewall-cmd --add-service=dns --permanent // dns 서비스를 영구적으로 추가해줌.
firewall-cmd --reload
firewall-cmd --list-all // dns가 있는지 확인
systemctl restart named.service
systemctl status named.service // 상태 확인
영역(zone) 구성
zone file : 도메인에 대한 정보나 도메인 내의 호스트에 대한 정보를 가지고 있음.
bind는 이 영역 파일을 참고하여 DNS 요청에 응답한다.
/var/named 디렉터리에 생성.
-Server
cp /var/named/named.empty /var/named/data/testdns.co.kr.zone
vi /var/named/data/testdns.co.kr.zone
$TTL 3H
@ IN SOA ns.testdns.co.kr root.testdns.co.kr. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.testdns.co.kr.
IN A 192.168.122.150 // DNS 서버의 IP
ns IN A 192.168.122.200
www IN A 192.168.122.150
vi /etc/named.conf
zone "testdns.co.kr" IN {
type master;
file "data/testdns.co.kr.zone";
};
named-checkconf /etc/named.conf // conf 파일의 잘못된 부분이 없는지 확인.
chmod -R 754 /var/named
systemctl restart named.service
systemctl status named.service
-Test
yum install bind-utils -y
yum install bind* -y
vi /etc/named.conf
zone "testdns.co.kr" IN {
type slave;
masters { 192.168.122.200; };
file "slaves/testdns.co.kr.slave";
};
systemctl start named.service
ls -al /var/named/slaves // 확인
file /var/named/slaves/testdns.co.kr.slave
// http
yum install httpd -y
vi /var/ww/html/index.html
Hello KVM
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --list-all // http가 있는지 확인
systemctl start httpd.service
systemctl status httpd.service
curl 192.168.122.150
curl www.testdns.co.kr
-Client
nslookup www.testdns.co.kr 192.168.122.150
curl www.testdns.co.kr
curl: (6) Could not resolve host: ~~~~~~ Unknown error
//dns를 서버로 변경해주어야 연결가능
-> nmcli con mod xxxxxx ipv4.dns 192.168.x.200
nmcli con up
'Linux' 카테고리의 다른 글
SMB Storage (0) | 2020.06.03 |
---|---|
NFS Storage (autofs) (0) | 2020.06.02 |
DHCP Server (0) | 2020.06.01 |
리눅스 보안-SELinux (0) | 2020.06.01 |
Network Teaming (0) | 2020.06.01 |
댓글