2018.01.30 ~ 02.02-14-17일차 DNS(개념, 실습1-4)
* 폰트 : dejavu sans mono bold
* 강사님 정리 노트3:
* 강사님 정리 노트2:
* 강사님 정리 노트 :
* dns 관련 실습 정리 :
* DNS(Domain Name System)
1> 개념
Network ID는 네트워크 고유 식별자(네트워크 구간을 의미)
Host ID는 호스트 고유 식별자(호스트 구간을 의미)
Host Name은 현재 경로(위치)
Domain Name은 컴퓨터가 기억하기 쉽게 숫자형태(IP Address)로 이루어진 도메인 네임을 사람이 기억하기
쉽게 문자형태로 바꾸어 사용하는 것
DNS는 사람이 기억하기 쉽게 문자 형태로 이루어진 도메인 네임을 컴퓨터가 기억하기 쉽게 숫자 형태(IP Address)
로 바꾸어주는 service.
- 도메인 네임은 영문자(a부터 z까지), 숫자(0부터 9까지), 특수문자(-)를 포함해서 37개의 문자들로 구성
대문자와 소문자의 구분이 없음
특수문자는 맨 처음과 맨 마지막에는 사용할 수 없음
IP Address처럼 인터넷상에서 중복된 이름은 사용할 수 없음
- 도메인 네임은 .(dot)으로 구분된 레이블로 구조화된 이름을 표시
즉! 루트 도메인에서부터 호스트에 이르는 경로상의 각 계층을 모두 표시함으로써 도메인 네임 공간상에서
의 그 위치를 표시
ex) www.kgitbank.co.kr.
↑ 루트 도메인
- FQDN(Fully Qualified Domain Name)은 호스트 네임과 도메인 네임을 포함한 전체 도메인 이름을 일컫는 용어
- 분산된 구조의 도메인 데이터베이스가 만들어지는데 이의 효율적인 DB구성과 관리를 위해 위임(delegation)을
적용
cf. 윈도우서버 : 상속(갖고 올 수 없음) ≠ 위임(다시 갖고 올 수 있음)
- 루트 도메인은 최상위 도메인에게 해당 도메인 관리를 위임하며 최상위 도메인은 다시 2차 도메인을 생성
하여 그 관리를 위임하게 됨
이러한 위임에 있어서 중요한 것은 zone(영역) 개념
- 영역이란 상위레벨 도메인으로부터 위임받은 도메인을 기준으로 하위 노드를 생성, 관리하고 다시 서브
도메인을 생성 위임 및 관리할 수 있는 zone(영역)을 의미
- 각 도메인 관리자는 해당 도메인의 하위 영역을 독자적으로 관리하는 권한까지 갖게 됨
위임은 새로운 도메인 네임의 생성, 유지, 삭제 등의 일정한 영역의 도메인에 대한 관리권한까지
위임한다는 것을 의미
도메인 네임 공간
- 인터넷 공간에서 사용되는 도메인 네임의 계층적 구조 공간을 의미(Tree 구조)
(참고로 도메인 네임 분배/할당 기관은 예전엔 IANA(Internet Assigned Numbers Authority)를 통해서 체계적
으로 관리.
현재는 ICANN(Internet coporation for Assigned Name and Numbers) 기관에서 인터넷 도메인 네임과 주소를
지정하고 있음)
도메인 네임 구조
. (root domain) 은 최상위 DNS로써, 전 세계적으로 오직 13대의 대형서버로 미국 10대, 네덜란드 1대, 노르웨이 1대,
일본 1대 각각 1대씩의 대형 서버로 구축되어 있음
우리나라의 경우 일본의 M-ROOT DNS를 사용해 왔음
ROOT DNS 미러 서버의 국내 운영 공식 개통 됨
미러(Mirror) 서버란, 글로벌 오리지널 루트 서버를 복사한 것으로써 거의 같은 기능
전 세계에 67개의 미러 서버가 있고 미국이 24개, 한국&영국&네덜란드&중국이 3대씩 보유하고 있음
미러 서버가 생긴 이유는 ROOT 서버에 DDos(분산 서비스 거부) 공격이 있었고 ROOT DNS 13대 중 9대의
대형 서버가 영향을 받게 되었음
KRNIC(한국인터넷진흥원), KT, KINX(한국인터넷연동센터)에서 각각 운영
얘 없으면 인터넷 못함 ㅋㅋㅋ
<Top Level Domain>
gTLD(Generic Top Level Domain)
ex) .com(영리기관), .org(비영리기관), .gov(정부기관), .net(네트워크), .edu(교육기관),
개인이익 사회이익
.mil(군사기관), ... 등
ccTLD(Country Code Top Level Domain)
ex) .kr, .jp, .us, .cn, .uk
특수도메인
ex) .arpa
* 수퍼DNS
우리나라 : kns.konet.net (168.126.63.1)
google => 8.8.8.8
2> 네임서버의 유형
첫번째, Primary(주) Name Server(Master DNS) ← 우리가 구축할거(모든 정보 다 갖고 있음?)
- 1차 네임서버(주 네임서버)라하며 zone(영역)에 모든 데이터를 가지고 있기 때문에 zone에 대한 모든 권
한을 가지고 있는 중요한 서버
부연설명 : 도메인 네임 서버 사용시에 반드시 구축 해야함
두번째, Secondary(보조) Name Server(Slave DNS)
- 2차 네임서버(보조 네임서버)라 하며 1차 네임서버가 다운 되었을 때 그 정보를 대신해서 사용하는 용도
부연설명: 1차 네임서버의 백업을 담당하며 반드시 구축할 필요는 없음
세번째, Caching Name Server
- 도메인에 대한 직접적인 레코드 관리를 하지 않음
- 요청시에 전체 네임 구조를 파악해서 stub resolver에게 서비스를 하게 됨
(stub resolver는 호스트 내의 응용 프로그램으로부터 도메인 네임 질의 요청이 있는 경우 시스템에 지정된
resolver 역할의 네임 서버로 DNS 질의를 요청)
부연설명 : 서버에 기록된 정보가 요청이 올 경우 응답해주는 서버
한 번 요청한 정보를 서버에 기록해두었다가 똑같은(동일한)요청이 오면 직접 조회하지 않고 바로 응답해
주는 서버
요즘엔 내장되어 있어서 구축 (x)
3> DNS 서비스 관련 파일
1) /etc/host.conf
- 우선순위를 지정하는 파일
설정
order host, bind
→ order 설정의 의미는 도메인에 대해 질의할 떄, hosts 파일을 먼저 참고하고 답을 찾지 못하면
bind 즉 DNS에 질의하라는 의미
multi on
→ /etc/hosts 파일에 하나의 호스트에 대해 여러 개의 IP Address를 설정 가능한 옵션
2) /etc/hosts
- 호스트와 네임과 IP Address의 관계를 설정
장점으로는 설정이 간단함
단점으로는 로컬 시스템에서만 유효하고 지속적인 관리와 보안이 취약함
설정
IP Address FQDN Alias
(참고로 Windows OS에서도 존재함 경로는 C:\Windows\system32\drivers\etc\hosts)
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
3) /etc/resolv.conf (나가서 찾는당)
- 호스트가 사용할 DNS 서버 주소를 설정하는 파일
- 만약에 자기 자신이 DNS 서버라면 자신의 IP Address를 입력함
- nameserver 항목에 지정된 IP Address로 질의하게 됨
---------------------------------
4) /etc/named.conf (bind 패키지 설치 후 보임!)
- named(daemon)의 환경설정파일
도메인별 zone 파일을 지정하는 역할
파일의 구성은 구문과 주석문(동작과 읽지 못하는 부분) 으로 구성이 되어 있으며
구문은 DNS서버 구동시 반드시 중요하므로 수정하거나 주석처리 또는 삭제 등 작업하지 않음
13줄 : 네임서버의 포트 번호(53)와 접근할 수 있는 IP Address를 설정하는 항목
외부를 포함하여 any로 설정
cf. 127.0.0.1 : roopback
15줄 : zone 파일이 기본적으로 저장되어있는 기본 디렉터리 (/var/named)
16줄 : 정보가 갱신 될 때 dump 파일로 저장할 파일을 지정
17줄 : 네임서버의 통계자료 파일을 지정
18줄 : 네임서버의 메모리의 통계자료 파일을 지정
19줄 : 네임 서버는 하나의 네임서버만 있는 것이 아니므로 하나의 DNS 서버에는 여러 개의
네임서버를 가져올 수 있음.
이를 허용할 IP Address나(host) 네트워크 대역대를 지정
외부를 포함하는 의미로 any로 설정
31줄 : 외부에서 현재의 네임서버를 지정해서 사용할 수 있게 하는지 유무를 설정함
no로 설정하면 외부에서 현재의 네임서버 질의시 그 결과값을 받을 수 없음
(참고로 DDoS 공격에 대비하여 운영할 때는 no로 설정)
45~50줄 : 디버그 관련 로그 설정
52~55줄 : root domain 설정
type hint에서 hint는 root domain을 의미
54줄 : named.ca 파일은 root domain의 정의 파일
cf) named.ca는 ls -l /var/named/ 하위에 존재함
57줄 : /etc/named.rfc1912.zones 파일을 포함하겠다라는 의미
58줄 : /etc/named.root.key 파일을 포함하겠다라는 의미
5) /etc/named.rfc1912.zones (bind 패키지 설치 후 보임!) 논평 연구서?
- /etc/named.conf 파일의 확장개념으로써 외부 설정을 포함하고자 할 때 사용
forward zone(정방향 영역)과
reverse zone(역방향 영역)
forward zone은 도메인을 IP Address로 바꿈
reverse zone은 IP Address를 도메인으로 바꿈
① forward zone(정방향 영역) => 13~23줄/ 25~29줄(내가 추가)
19줄 : ""안에 domain name을 입력
20줄 : master는 1차 네임서버의 타입
21줄 : ""안에 forward zone 정의 파일의 이름을 입력(미리 선언)
cf) slave는 2차 네임서버의 타입
hint는 root domain
22줄 : allow-update { none; };
는 동기화 할 slave(보조 네임서버) 서버의 IP를 지정 또는 any를
입력
만약에 slave 서버가 없으면 그대로 두면 됨
ex) 보조 네임서버 사용할 시 any or IP 입력
23줄 : 19줄에 {를 열었으니까 }; 를 닫음
slave 서버를 구축 했을 시 아래와 같이 항목을 추가함
allow-transfer{ none; };
slave 서버와 관련된 작업으로 도메인 정보를 일일이 수정하지
않고 자동으로 적용되게끔 할 수 있음
② reverse zone(역방향 영역)=> 37~47 / 48~53(내가 작업함)
42줄: "x.in-addr.arpa"의 x에 network-ID를 입력하는데
거꾸로 해야함
43줄 : master는 1차 네임서버의 타입
44줄 : ""안에 reverse zone 정의 파일의 이름을 입력(미리 선언)
45줄 : allow-update { none; };
는 동기화 할 slave(보조 네임서버) 서버의 IP를 지정 또는 any를
입력
만약에 slave 서버가 없으면 그대로 두면 됨
ex) 보조 네임서버 사용할 시 any or IP 입력
slave 서버를 구축 했을 시 아래와 같이 항목을 추가함
allow-transfer{ none; };
46줄 : 19줄에 {를 열었으니까 }; 를 닫음
네임서버(nameserver)
- 도메인의 정보를 소유하고 클라이언트에게 질의의 대한 응답 수행
- DNS server라고도 함. 자신이 소유한 도메인 zone에 대한 응답
리소스 레코드(resource record)
- 하나의 도메인 네임이 갖는 속성 정보를 지정하는 수단
리소스 레코드의 종류
SOA(Start Of Authority) : 권한(인증)의 시작
NS(NameServer) : 네임 서버를 지정
A(Address) : 특정 서버와 도메인에 IP Address를 지정
MX(Mail eXchanger) : 메일 서버 설정할 때
CNAME(Canonical Name) : 별칭
PTR(PoinTeR) : reverse zone(역방향 영역)에서 사용하는 레코드. IP Address를 도메인으로 mapping(변환)
6) forward zone 정의
1줄: $TTL 숫자(초) 또는 문자
- bind에서 무조건 맨 첫 줄에 작성
다른 서버에서 자신이 설정한 정보를 가져갔을 때 그 가져간 서버의 cache에 정보가 얼마나 오랫동안
머무르게 할 것인지를 지정
2줄: @ IN SOA FQDN root{
@는 origin. 실제 도메인을 뜻함 domain name을 의미 (== testdns.com)
IN은 클래스를 의미
Internet 이거나(클래스) 오른쪽에다가 들여쓰기(Indentation?, input?)
SOA는 권한의 시작
FQDN(1차 네임서버)
root는 관리자의 E-mail 주소
또는 root.testdns.com. 입력
3줄 : serial.
serialak은 일렬번호
기본형식은 YYYYMMDDNNd f으로 입력 또는 NM만 입력
- 도메인 데이터베이스가 갱신 되어지면 숫자가 더 크도록 직접
수정을 해 주어야 함
4줄 : refresh.
refresh는 새로 고침 숫자(초) 또는 문자로 입력
-2차 네임서버가 자신의 정보를 업데이트 하기 위해서
1차 네임 서버에 얼마나 자주 체크를 할 것인가를 결정
5줄 : retry.
retry는 다시 시도
숫자(초) 또는 문자로 입력
- 혹시라도 2차 네임서버가 1차 네임서버에 접속을 실패하게 되면
다시 시도할 시간을 설정
6줄 : expire.
expire 는 만료일
숫자(초) 또는 문자로 입력
7줄 : minimum.
minimum은 데이터의 저장 한도를 나타내는 설정
맨 첫줄과 동일하게 값을 줌
8줄 : 2줄에 (를 열었으므로 )를 닫아줌
9줄 : IN NS FQDN(1차 네임서버)
-nameserver로 사용할 1차 네임 서버를 지정
10줄 : IN A IP Address
-사용할 네임서버에 IP Address를 지정(부여)
여기까지는 NS의 정보(Name Server)
-----------------------------------------------
지금부터는 host의 정보
hostname IN A IP Address
7) reverse zone 정의
reverse zone 정의할 때 forward zone 정의에서 NS의 정보는 동일 함
단! host의 정보는 다르게 작업해야 함
NS의 정보
-----------------------------------------------
지금부터는 host의 정보
host-ID IN PTR FQDN(1차 네임서버)
위 작업이 다 되었으면 forward zone 정의파일과 reverse zone 정의파일의
허가권과 소유권을 변경해야 함
허가권은 660으로 소유권은 root:named로...
허가권과 소유권이 모두 변경되었는지 확인 후
forward zone 파일 점검(체크)방법
사용형식
named-checkzone domain_name forward_zone_path
named.service를 재시작
8) nslookup(nameserver lookup)
- 도메인 네임과 IP Address를 확인하기 위해서 특정 네임서버에게 질의할 수 있는 기능을 가진 툴(도구)
사용형식
nslookup domain_name
또는
nslookup 입력 후 enter
domain_name
nslookup FQDN
또는
nslookup 입력 후 enter
FQDN
4> DNS 서비스 구축
bind 패키지 설치 유무를 확인 패키지명은 bind(berkly internet ~)로 시작함
// dns 관련 파일
[root@junga ~]# ls -l /etc/host.conf
-rw-r--r--. 1 root root 9 6월 7 2013 /etc/host.conf
[root@junga ~]#
[root@junga ~]# cat /etc/host.conf
multi on
[root@junga ~]# ls -l /etc/hosts
-rw-r--r--. 1 root root 158 6월 7 2013 /etc/hosts
[root@junga ~]#
[root@junga ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@junga ~]# ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 94 1월 30 13:00 /etc/resolv.conf
[root@junga ~]#
[root@junga ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search kgitbank
nameserver 168.126.63.1
nameserver 168.126.63.2
// => 내꺼 ip 보게 하려면,
① 맨 처음에 기입하거나
② 두 줄 주석 처리하거나
③ 랜선 뽑아서 밖으로 못나가게 하고 내꺼에 오게 하기
④ search abcd.co.kr
[root@junga ~]# hostname
junga.kgitbank
[root@junga ~]#
[root@junga ~]# ls -l /etc/named.conf
ls: cannot access /etc/named.conf: 그런 파일이나 디렉터리가 없습니다
[root@junga ~]#
[root@junga ~]# ls -l /etc/named.rfc1912.zones
ls: cannot access /etc/named.rfc1912.zones: 그런 파일이나 디렉터리가 없습니다
[root@junga ~]#
// dns 관련 패키지 설치(bind)
# rpm -qa | grep bind
keybinder3-0.3.0-1.el7.x86_64
bind-license-9.9.4-51.el7.noarch
bind-libs-9.9.4-51.el7.x86_64
bind-utils-9.9.4-51.el7.x86_64
rpcbind-0.2.0-42.el7.x86_64
bind-libs-lite-9.9.4-51.el7.x86_64
[root@junga ~]#
[root@junga ~]# yum install bind*
[root@junga ~]# ls -l /etc/named.rfc1912.zones
-rw-r----- 1 root named 931 6월 21 2007 /etc/named.rfc1912.zones
[root@junga ~]#
[root@junga ~]# vi /etc/named.conf
===========
// 2018.01.31 실습
# vi /etc/named.rfc1912.zones
// 다음 내용 추가
// 정방향
25 zone "testdns.com" IN {
26 type master;
27 file "testdns.for.zone";
28 allow-update { none; };
29 };
// 역방향
49 zone "46.168.192.in-addr.arpa" IN {
50 type master;
51 file "testdns.rev.zone";
52 allow-update { none; };
53 };
// 6) forward zone 정의
# vi /test/abcd // 빈 파일 열기
1 $TTL 604800 ; 1 week
2 @ IN SOA ns.testdns.com. root(
3 2018013100 ; seriali
4 21600 ; refresh (6 hours)
5 1800 ; retry (30 minutes)
6 604800 ; expire(1 week)
7 604800 ; minimum(1 week)
8 )
9 IN NS ns.testdns.com
10 IN A 192.168.46.90
11
12 ns IN A 192.168.46.90
:w /var/named/testdns.for.zone
// 7) reverse zone 정의
[root@junga ~]# cp /var/named/testdns.for.zone /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
1 $TTL 604800 ; 1 week
2 @ IN SOA ns.testdns.com. root(
3 2018013100 ; serㅑiali
4 21600 ; refresh (6 hours)
5 1800 ; retry (30 minutes)
6 604800 ; expire(1 week)
7 604800 ; minimum(1 week)
8 )
9 IN NS ns.testdns.com
10 IN A 192.168.46.90
11
12 ns IN A 192.168.46.90 // 지우고
=> 12 90 IN PTR ns.testdns.com.
wq:
// 해당 정의 파일들 허가권, 소유권 변경
[root@junga ~]# chmod 660 /var/named/testdns.for.zone
[root@junga ~]# chmod 660 /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# chown root:named /var/named/t*
[root@junga ~]#
[root@junga ~]# ls -l /var/named/t*
-rw-rw---- 1 root named 259 1월 31 14:22 /var/named/testdns.for.zone
-rw-rw---- 1 root named 259 1월 31 14:36 /var/named/testdns.rev.zone
// named.service 체크 및 재 시작
[root@junga ~]# systemctl restart named.service
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.
[root@junga ~]#
[root@junga ~]# systemctl is-active named.service
failed
[root@junga ~]#
[root@junga ~]# systemctl is-enabled named.service
disabled
[root@junga ~]#
[root@junga ~]# systemctl -l status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 수 2018-01-31 14:43:21 KST; 35s ago
Process: 5211 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=1/FAILURE)
1월 31 14:43:21 junga.kgitbank bash[5211]: dns_master_load: testdns.rev.zone:8: isc_lex_gettoken() failed: unbalanced parentheses
1월 31 14:43:21 junga.kgitbank bash[5211]: dns_master_load: testdns.rev.zone:8: unbalanced parentheses
1월 31 14:43:21 junga.kgitbank bash[5211]: testdns.rev.zone:12: unknown RR type 'ns.testdns.com.'
1월 31 14:43:21 junga.kgitbank bash[5211]: zone 46.168.192.in-addr.arpa/IN: loading from master file testdns.rev.zone failed: unexpected end of input
1월 31 14:43:21 junga.kgitbank bash[5211]: zone 46.168.192.in-addr.arpa/IN: not loaded due to errors.
1월 31 14:43:21 junga.kgitbank bash[5211]: _default/46.168.192.in-addr.arpa/IN: unexpected end of input
1월 31 14:43:21 junga.kgitbank systemd[1]: named.service: control process exited, code=exited status=1
1월 31 14:43:21 junga.kgitbank systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
1월 31 14:43:21 junga.kgitbank systemd[1]: Unit named.service entered failed state.
1월 31 14:43:21 junga.kgitbank systemd[1]: named.service failed.
[root@junga ~]#
[root@junga ~]# named-check
named-checkconf named-checkzone
[root@junga ~]# named-checkzone testdns.com /var/named/testdns.for.zone
dns_rdata_fromtext: /var/named/testdns.for.zone:2: near eol: unexpected end of input
dns_master_load: /var/named/testdns.for.zone:4: unexpected end of line
dns_master_load: /var/named/testdns.for.zone:3: unexpected end of input
dns_master_load: /var/named/testdns.for.zone:6: unexpected end of line
dns_master_load: /var/named/testdns.for.zone:5: unexpected end of input
dns_master_load: /var/named/testdns.for.zone:8: unexpected end of line
dns_master_load: /var/named/testdns.for.zone:7: unexpected end of input
dns_master_load: /var/named/testdns.for.zone:8: isc_lex_gettoken() failed: unbalanced parentheses
dns_master_load: /var/named/testdns.for.zone:8: unbalanced parentheses
zone testdns.com/IN: loading from master file /var/named/testdns.for.zone failed: unexpected end of input
zone testdns.com/IN: not loaded due to errors.
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.for.zone
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.
[root@junga ~]#
[root@junga ~]#
[root@junga ~]# systemctl -l status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 수 2018-01-31 14:47:31 KST; 18s ago
Process: 5465 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=1/FAILURE)
1월 31 14:47:31 junga.kgitbank bash[5465]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
1월 31 14:47:31 junga.kgitbank bash[5465]: zone 0.in-addr.arpa/IN: loaded serial 0
1월 31 14:47:31 junga.kgitbank bash[5465]: testdns.rev.zone:12: unknown RR type 'ns.testdns.com.'
1월 31 14:47:31 junga.kgitbank bash[5465]: zone 46.168.192.in-addr.arpa/IN: loading from master file testdns.rev.zone failed: unknown class/type
1월 31 14:47:31 junga.kgitbank bash[5465]: zone 46.168.192.in-addr.arpa/IN: not loaded due to errors.
1월 31 14:47:31 junga.kgitbank bash[5465]: _default/46.168.192.in-addr.arpa/IN: unknown class/type
1월 31 14:47:31 junga.kgitbank systemd[1]: named.service: control process exited, code=exited status=1
1월 31 14:47:31 junga.kgitbank systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
1월 31 14:47:31 junga.kgitbank systemd[1]: Unit named.service entered failed state.
1월 31 14:47:31 junga.kgitbank systemd[1]: named.service failed.
[root@junga ~]#
[root@junga ~]# ifconfig | head -2
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.46.90 netmask 255.255.255.0 broadcast 192.168.46.255
[root@junga ~]#
\[root@junga ~]#
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.
[root@junga ~]#
[root@junga ~]# systemctl is-active named.service
failed
[root@junga ~]#
[root@junga ~]# systemctl -l status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 수 2018-01-31 14:51:12 KST; 26s ago
Process: 5696 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=1/FAILURE)
1월 31 14:51:12 junga.kgitbank bash[5696]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
1월 31 14:51:12 junga.kgitbank bash[5696]: zone 0.in-addr.arpa/IN: loaded serial 0
1월 31 14:51:12 junga.kgitbank bash[5696]: testdns.rev.zone:12: unknown RR type 'ns.testdns.com.'
1월 31 14:51:12 junga.kgitbank bash[5696]: zone 46.168.192.in-addr.arpa/IN: loading from master file testdns.rev.zone failed: unknown class/type
1월 31 14:51:12 junga.kgitbank bash[5696]: zone 46.168.192.in-addr.arpa/IN: not loaded due to errors.
1월 31 14:51:12 junga.kgitbank bash[5696]: _default/46.168.192.in-addr.arpa/IN: unknown class/type
1월 31 14:51:12 junga.kgitbank systemd[1]: named.service: control process exited, code=exited status=1
1월 31 14:51:12 junga.kgitbank systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
1월 31 14:51:12 junga.kgitbank systemd[1]: Unit named.service entered failed state.
1월 31 14:51:12 junga.kgitbank systemd[1]: named.service failed.
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.for.zone
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe" for details.
[root@junga ~]#
[root@junga ~]# systemctl -l status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 수 2018-01-31 14:54:51 KST; 9s ago
Process: 5933 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=1/FAILURE)
1월 31 14:54:51 junga.kgitbank bash[5933]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
1월 31 14:54:51 junga.kgitbank bash[5933]: zone 0.in-addr.arpa/IN: loaded serial 0
1월 31 14:54:51 junga.kgitbank bash[5933]: testdns.rev.zone:12: unknown RR type 'ns.testdns.com.'
1월 31 14:54:51 junga.kgitbank bash[5933]: zone 46.168.192.in-addr.arpa/IN: loading from master file testdns.rev.zone failed: unknown class/type
1월 31 14:54:51 junga.kgitbank bash[5933]: zone 46.168.192.in-addr.arpa/IN: not loaded due to errors.
1월 31 14:54:51 junga.kgitbank bash[5933]: _default/46.168.192.in-addr.arpa/IN: unknown class/type
1월 31 14:54:51 junga.kgitbank systemd[1]: named.service: control process exited, code=exited status=1
1월 31 14:54:51 junga.kgitbank systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
1월 31 14:54:51 junga.kgitbank systemd[1]: Unit named.service entered failed state.
1월 31 14:54:51 junga.kgitbank systemd[1]: named.service failed.
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# vi /var/named/testdns.rev.zone
[root@junga ~]#
[root@junga ~]# systemctl restart named.service
[root@junga ~]#
[root@junga ~]#
[root@junga ~]# systemctl is-active named.service
active
[root@junga ~]#
[root@junga ~]# systemctl -l status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since 수 2018-01-31 15:00:12 KST; 42s ago
Process: 6159 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 6156 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 6162 (named)
CGroup: /system.slice/named.service
└─6162 /usr/sbin/named -u named -c /etc/named.conf
1월 31 15:00:12 junga.kgitbank named[6162]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
1월 31 15:00:12 junga.kgitbank named[6162]: all zones loaded
1월 31 15:00:12 junga.kgitbank named[6162]: running
1월 31 15:00:12 junga.kgitbank systemd[1]: Started Berkeley Internet Name Domain (DNS).
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './DNSKEY/IN': 2001:500:a8::e#53
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './NS/IN': 2001:500:a8::e#53
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './DNSKEY/IN': 2001:503:c27::2:30#53
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './NS/IN': 2001:503:c27::2:30#53
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './DNSKEY/IN': 2001:500:2::c#53
1월 31 15:00:12 junga.kgitbank named[6162]: error (network unreachable) resolving './NS/IN': 2001:500:2::c#53
// 2018.02.01 실습 추가분
[root@junga ~]# nslookup
> testdns.com
Server: 168.126.63.1
Address: 168.126.63.1#53
Non-authoritative answer:
Name: testdns.com
Address: 81.94.198.122
> exit
[root@junga ~]# ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 94 2월 1 12:43 /etc/resolv.conf
[root@junga ~]# vi /etc/resolv.conf
# Generated by NetworkManager
search kgitbank
nameserver 192.168.46.90 // 내꺼 ip 슈퍼 dns 앞에 추가 할 것!!!
nameserver 168.126.63.1
nameserver 168.126.63.2
~
[root@junga ~]#
[root@junga ~]# nslookup
> testdns.com
Server: 192.168.46.90
Address: 192.168.46.90#53
Name: testdns.com
Address: 192.168.46.90
>
> ns.testdns.com
Server: 192.168.46.90
Address: 192.168.46.90#53
Name: ns.testdns.com
Address: 192.168.46.90
<실습 1>
클라이언트에서 작업(스냅샷 돌리고)
네임서버 fifa.com을 구축
* dns 관련 파일
1) /etc/host.conf - 우선순위를 지정하는 파일
2) /etc/hosts - 호스트와 네임과 IP Address의 관계를 설정
3) /etc/resolv.conf (나가서 찾는당) - 호스트가 사용할 DNS 서버 주소를 설정하는 파일
① dns 관련 패키지 설치
# yum install bind*
...
<실습 2>
서버에서 작업해주세요(스냅샷 돌리고)
네임서버는 여러분의 이름으로 구축하세요. ex) junga.com
① named 패키지 설치(bind)
② 설정파일 설정
1) /etc/named.conf => 13, 19
2) /etc/named.rfc1912.zones => 정방향(25), 역방향 정의(49)
named.conf
y
3) 정방향, 역방향 정의 파일 기입
// 정방향 /var/named/junga.for.zone
1 $TTL 1W ; 1 week
2 @ IN SOA ns.junga.com. root(
3 2018020100 ; serial
4 6H ; refresh(6 hours)
5 30M ; retry (30 Minute)
6 1W ; expire (1 week)
7 1W ; minimum (1 week)
8 )
9 IN NS ns.junga.com.
10 IN A 192.168.46.90
11
12 ns IN A 192.168.46.90
// 역방향 junga.rev.zone
1 $TTL 1W ; 1 week
2 @ IN SOA ns.junga.com. root(
3 2018020100 ; serial
4 6H ; refresh(6 hours)
5 30M ; retry (30 Minute)
6 1W ; expire (1 week)
7 1W ; minute (1 week)
8 )
9 IN NS ns.junga.com.
10 IN A 192.168.46.90
11
12 ns IN A 192.168.46.90
12 90 IN PTR ns.junga.com.
4) 시스템 재 시작 및 nslookup
# vi /etc/resolv.conf
nameserver 192.168.46.90
추가
위 작업이 다 되었으면 확인 후 아래와 같이 nslookup으로 조회될 수 있게 작업
ex)
nslookup
blog.kildong.com
cafe.kildong.com
mail.kildon퍄g.com
<실습 3>
라운드 로빈???
=> IP만 추가???
nslookup
kildong.com
→
192.168.x.128
192.168.x.129
//정방향
# vi /var/named/junga.for.zone
1 $TTL 1W ; 1 week
2 @ IN SOA ns.junga.com. root(
3 2018020100 ; serial
4 6H ; refresh(6 hours)
5 30M ; retry (30 Minute)
6 1W ; expire (1 week)
7 1W ; minimum (1 week)
8 )
9 IN NS ns.junga.com.
10 IN A 192.168.46.90
11 IN A 192.168.46.91
12 IN A 192.168.46.92
13
14 ns IN A 192.168.46.90
15 www IN A 192.168.46.90
16 blog IN A 192.168.46.90
17 cafe IN A 192.168.46.90
18 mail IN A 192.168.46.90
// 시스템 재시작
[root@junga named]# nslookup
> junga.com
Server: 192.168.46.90
Address: 192.168.46.90#53
Name: junga.com
Address: 192.168.46.92
Name: junga.com
Address: 192.168.46.90
Name: junga.com
Address: 192.168.46.91
>
> junga.com
Server: 192.168.46.90
Address: 192.168.46.90#53
Name: junga.com
Address: 192.168.46.91
Name: junga.com
Address: 192.168.46.92
Name: junga.com
Address: 192.168.46.90
<실습4>
별칭
[root@junga named]# nslookup
> www.naver.com
Server: 192.168.46.90
Address: 192.168.46.90#53
Non-authoritative answer:
www.naver.com canonical name = www.naver.com.nheos.com.
Name: www.naver.com.nheos.com
Address: 125.209.222.142
Name: www.naver.com.nheos.com
Address: 210.89.164.90
# vi /var/named/junga.for.zone
1 $TTL 1W ; 1 week
2 @ IN SOA ns.junga.com. root(
3 2018020100 ; serial
4 6H ; refresh(6 hours)
5 30M ; retry (30 Minute)
6 1W ; expire (1 week)
7 1W ; minimum (1 week)
8 )
9 IN NS ns.junga.com.
10 IN A 192.168.46.90
11 IN A 192.168.46.91
12 IN A 192.168.46.92
13
14 ns IN A 192.168.46.90
15 www IN A 192.168.46.90
16 blog IN A 192.168.46.90
17 cafe IN A 192.168.46.90
18 mail IN A 192.168.46.90
19 seo IN CNAME www.junga.com. // www 는 위에 있는거이기 때문에 가능! 기존에 있는거로 추가할것!
// 데몬 재실행
[root@junga named]# nslookup
> seo.junga.com
Server: 192.168.46.90
Address: 192.168.46.90#53
seo.junga.com canonical name = www.junga.com.
Name: www.junga.com
Address: 192.168.46.90
'BigData_Off1 > 리눅스2' 카테고리의 다른 글
2018.02.05-18일차 Web Server (0) | 2018.02.05 |
---|---|
DNS 2(slave DNS), Web Server (0) | 2018.02.02 |
Autofs 2(① autofs 2nd, ② 실습1) (0) | 2018.01.29 |
Autofs 1(① autofs, ② 실습1) (0) | 2018.01.26 |
File Service 3(③auto mount ④NFS) (0) | 2018.01.24 |