named파일 수정
패키지명 : bind
데 몬 명 : named
설정파일
- 메인 설정파일 : /etc/named.conf
- 추가 설정파일 : /var/named/???.zone
???.cache
/etc/named.conf 파일 vi로 수정
options {
listen-on port 53 { Server_IPv4; }; // -> 기본값은 127.0.0.1 IPv4 Loopback 나에게만 귀기울이고 있겠다.
listen-on v6 port 53 { Server_IPv6; }; ::1; // -> 0000:0000:0000:0000:0000:0000:0000:0001 IPv6 Loopback
recursion yse; // 재귀적 질의
allow-query { Client_IP; Client_Network; }; // 자신의 도메인에 응답
Authoritative Answer
allow-query-cache { Client_IP; Client_Network; }; // 타 도메인에 응답
Non-Authoritative answer
};
localhost = 127.0.0.1 // (나 자신, 서버 자신)
ZONE "도메인" IN {
type master/slave/hint;
file ".....zone/....cache";
};
ZONE "." IN {
type hint;
file "root.cache"; <- /var/named/root
};
[root@ns1 ~]# nslookup www.nate.com 168.126.63.1
Server: 168.126.63.1
Address: 168.126.63.1#53
Non-authoritative answer:
Name: www.nate.com
Address: 120.50.131.112
[root@ns1 ~]#
[root@ns1 ~]# nslookup www.nate.com 223.62.230.13
Server: 223.62.230.13
Address: 223.62.230.13#53
Name: www.nate.com
Address: 120.50.131.112
[root@ns1 ~]#
vi /etc/named.conf로 수정
options {
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";
listen-on port 53 { 수신대기할_서버_IPv4; };
listen-on-v6 port 53 { 수신대기할_서버_IPv4; };
recursion yes; # 재귀질의 허용여부
allow-query { 운영중인_도메인질의_허용_IP; }; # Authoratative Answer
allow-query-cache { 캐쉬DB_도메인질의_허용_IP; }; # Non-Authoratative Answer
};
ZONE "." IN { # zone "도메인" IN {
type hint; # type master/slave/hint;
file "root.cache"; # file "파일명.zone/cache"; /var/named/
}; # };
[root@ns1 ~]# named-checkconf /etc/named.conf
-> named.conf 파일의 문법 검사 해주는 명령어 (수정한뒤에 검사해준다.)
[root@ns1 ~]# cd /var/named/
[root@ns1 named]# ls
chroot data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@ns1 named]# mv named.ca root.cache
[root@ns1 named]# ls
chroot data dynamic named.empty named.localhost named.loopback root.cache slaves
[root@ns1 named]#
named.ca -> root.cache로 이름 변경
C:\Users\st01>nslookup www.naver.com 192.168.0.21
DNS request timed out.
timeout was 2 seconds.
서버: UnKnown
Address: 192.168.0.21
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** UnKnown에 대한 요청이 제한 시간을 초과했습니다.
C:\Users\st01>
-> 7계층 문제
[root@ns1 named]# firewall-cmd --add-port=53/udp --permanent (상시열기)
[root@ns1 named]# firewall-cmd --add-port=53/udp
vi /etc/named.conf
9 listen-on port 53 { 127.0.0.1 192.168.0.21; }; <- Linux IP주소
10 listen-on-v6 port 53 { ::1; };
11 recursion yes;
12 allow-query { localhost; };
13 allow-query-cache { localhost 192.168.0.20; }; <- WIN10 IP주소
C:\Users\st01>nslookup www.naver.com 192.168.0.21
서버: UnKnown
Address: 192.168.0.21
권한 없는 응답:
이름: www.naver.com.nheos.com
Addresses: 223.130.195.200
223.130.195.95
Aliases: www.naver.com
-> Linux IP주소로 질의 한 것을 확인 할 수 있다.
nmcli con mod ens33 ipv4.dns 127.0.0.1
[root@ns1 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search kck.co.ki
nameserver 168.126.63.1
nameserver 168.126.63.2
[root@ns1 named]# nmcli con up ens33
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@ns1 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search kck.co.ki
nameserver 127.0.0.1
INTERNIC : root 도메인 사이트로 최신의 root도메인 정보를 받을 수 있다.
CentOS7 1st
[root@ns1 named]# vi /etc/named.conf
[root@ns1 named]# named-checkconf
zone "kck.co.ki" IN { -> 내가 사용할 도메인명
type master; -> 첫번째 ns1 두번째는 slave
file "kck.co.ki.zone";
};
[root@ns1 named]# touch kck.co.ki.zone
[root@ns1 named]#
-> zone 파일을 만들어 /etc/named.conf 파일에 해당 내용을 추가해준다.
DNS Record (질문의 종류) www.naver.com. IN A
www.naver.com. IN A
naver.com. IN NS
naver.com. IN SOA
kck.co.ki. IN SOA
A : IPv4 Address(정방향: 호스트명 -> IPv4 주소)
질의형식-> nslookup -type=a www.google.com
AAAA : IPv6 Address(정방향: 호스트명 -> IPv6 주소)
질의형식-> nslookup -type=aaaa www.google.com
SOA : Start Of Authority(권한의 시작), Master 네임서버/관리자 E-Mail
질의형식-> nslookup -type=soa google.com(도메인명)
NS : NameServer (네임서버, Master/Slave의 구분은 없음)
질의형식-> nslookup -type=ns google.com(도메인명)
MX : MaileXchanger (메일 교환기, 수긴메일 서버)
질의형식-> nslookup -type=mx google.com(도메인명)
PTR : Pointer(역방향: IP 주소 -> 도메인네임)
질의형식-> nslookup -type=ptr 1.163.126.168.in-addr.arpa
(168.126.63.1 역방향(호스트명))
CNAME : Canonnical NAME (별칭/별명)
질의형식-> nslookup -type=cname www.google.com(호스트명)
이러한 질의형식을 넣을 수 있고 named.conf파일과 마찬가지로 zone 파일도
명령어로 가능하다.
1. named-checkconf : named.conf 파일을 문법 검사
예) named-checkconf : /etc/named.conf 파일의 문법 검사
named-checkconf 경로/named.conf : 다른위치 named.conf 파일의 문법 검사
2. named-checkzone : /var/named 디렉토리에 있는 도메인.zone 파일의 문법 검사
형식) named-checkzone 도메인명 경로/도메인명.zone
예) named-checkzone kck.co.ki /var/named/kck.co.ki.zone
/etc/named.conf에 zone파일의 위치와 내용을 추가해준다.
zone "kck.co.ki" IN {
type master; // 1번째 네임서버
file "kck.co.ki.zone";
};
/var/named/도메인명.zone 파일을 만드는 형식들
$ORIGIN 초기값 <- @와 동일하게 해석, 모든 호스트명에 추가되는 이름
$TTL Cache타임 <- Cache에 저장할 시간(Positive, 긍정) ※TTL(Time To Live) 살아있는 횟수 (루프방지)
도메인명. IN SOA Master네임서버. 관리자E-Mail (
YYYYMMDDnn ; Serial Number (최종 갱신 날짜/시간/횟수)
갱신주기 ; Refresh
재시도주기 ; Retry
만료일 ; Expire
기본TTL ) ; Default TTL (Cache에 저장할 시간/ Negative, 부정) 없는정보 저장값
1. FQDN (Fully Qualified Domain Name) 형식
$ORIGIN kck.co.ki.
$TTL 1D
kck.co.ki. IN SOA ns1.kck.co.ki. root.kck.co.ki. (
2022122700 ; Serial Number
3H ; Refresh (갱신주기)
15M ; Retry (재시도)
1W ; Expire (만료일)
1D ) ; TTL
kck.co.ki. IN NS ns1.kck.co.ki.
ns1.kck.co.ki. IN A 192.168.0.21
www.kck.co.ki. IN A 192.168.0.22
2. 생략 : ORIGIN으로 지정된 도메인은 아래에 @으로 대체해서 사용할 수 있다.
$ORIGIN kck.co.ki. 사용하면, kck.co.ki. => @
. 으로 마무리되지 않은 모든 도메인네임은 자동으로 @(ORIGIN)이 따라 붙는다.
www.kck.co.ki. -해석-> www.kck.co.ki.
www -해석-> www.kck.co.ki.
<-ORIGIN->
www.kck.co.ki -해석-> www.kck.co.ki.kck.co.ki.
<-ORIGIN->
$ORIGIN을 지정하지 않을 경우, /etc/named.conf 파일에
설정된 zone "도메인명" IN { 에 사용된 도메인명이
자동으로 설정된다.
$ORIGIN kck.co.ki.
$TTL 1D
@ IN SOA ns1 root (
2022122800 ; Serial Number
3H ; Refresh (갱신주기)
15M ; Retry (재시도)
1W ; Expire (만료일)
1D ) ; TTL
@ <- 생략가능 IN NS ns1
ns1 IN A 192.168.0.21
www IN A 192.168.0.22
www <-생략가능 IN A 192.168.0.23
3. 생략 : 실수로 .을 생략해도 .만 추가한다.
$ORIGIN 도메인명은 zone파일안에서 여러번 재정의가 가능하다.
$ORIGIN .
$TTL 1D
kck.co.ki IN SOA ns1.kck.co.ki root.kck.co.ki (
2022122700 ; Serial Number
3H ; Refresh (갱신주기)
15M ; Retry (재시도)
1W ; Expire (만료일)
1D ) ; TTL
kck.co.ki IN NS ns1.kck.co.ki
ns1.kck.co.ki IN A 192.168.0.21
www.kck.co.ki IN A 192.168.0.22
/etc/named.conf 파일에서 recursion을 no로 바꾸면 재귀적 질의를 하지 않는다는 뜻으로
'리눅스' 카테고리의 다른 글
리눅스 서버 (0) | 2022.12.27 |
---|---|
RPM(Redhat Package Manager), yum,history,tar (0) | 2022.12.27 |
파일검색 which, whereis, locate, find (0) | 2022.12.27 |
리눅스 파일출력, 퍼미션 명령어 (0) | 2022.12.27 |
리눅스 기초 명령어 - cron&rsync, service booting (0) | 2022.10.20 |