Linux DNS 서버 구성
기본 이론:
DNS 시스템의 기능은 도메인 이름과 IP를 일치시키는 것입니다.
정방향 해결: 도메인 이름(호스트 이름)을 기준으로 해당 IP 주소를 찾습니다.
역분석: IP 주소를 기준으로 해당 도메인 이름(호스트 이름)을 쿼리합니다.
쿼리
재귀 쿼리: 대부분의 클라이언트가 도메인 이름을 DNS 서버로 확인하는 방식입니다.
반복 쿼리: 대부분의 DNS 서버가 도메인 이름을 다른 DNS 서버로 확인하는 방식입니다.
DNS 서버 유형
캐싱 도메인 이름 서버: 캐시 전용 서버라고도 합니다. 다른 도메인 이름 서버에 질의하여 도메인 이름 및 IP 주소의 해당 레코드를 얻고, 도메인 이름 질의 결과를 로컬에 캐시하여 반복 질의 속도를 향상시킵니다.
주 도메인 이름 서버: 고유한 특정 DNS 영역의 공식 서버입니다. 해당 지역의 모든 도메인 이름과 IP의 매핑 기록을 유지 관리하는 역할을 담당합니다.
슬레이브 도메인 이름 서버: 보조 도메인 이름 서버라고도 합니다. 유지 관리하는 도메인 이름과 IP 주소 간의 매핑 기록은 기본 도메인 이름 서버에서 나옵니다.
환경 준비:
selinux 및 iptables 임시 종료
#setenforce 0
#service iptables stop
관련 소프트웨어 패키지 쿼리:
[root@localhost ~]# yum search bin
로드된 플러그인: product-id,refresh-packagekit,subscription-manager
Red Hat 리포지토리 업데이트.
===================================== === ============================================== = N/ S 일치: 바인딩 =========================================== === =======================================
PackageKit-device -rebind.i686: PackageKit용 장치 리바인드 기능
bind.i686: BIND(Berkeley Internet Name Domain) DNS(Domain Name System) 서버
bind-chroot. i686: ISC BIND DNS 서버용 chroot 런타임 환경(named(8))
bind-utils.i686: DNS 이름 서버 쿼리를 위한 유틸리티
각 소프트웨어 패키지의 기능은 다음과 같습니다.
p>
bind: 도메인 이름 서비스를 제공하는 주요 프로그램 및 관련 문서입니다.
bind-chroot: 보안 강화를 위해 바인드용으로 위장된 루트 디렉터리를 제공합니다.
bind-utils: DNS 서버 테스트용 도구(예: nslookup, dig 등)를 제공합니다.
BIND 소프트웨어 패키지 설치 #yum install *bind*
DNS 서버 구성:
서버측 프로그램 바인딩
주 실행 프로그램: /usr/sbin/named
서비스 스크립트: etc/init.d/named
기본 수신 포트: 53
주 구성 파일: / etc/named.conf
DNS 확인 레코드를 저장하는 데이터 파일: /var/named/chroot/var/named
바인드 프로그램의 구성 파일 목록 조회
[ root@localhost ~]# rpm -qc 바인딩
/etc/logrotate.d/named
/etc/named.conf
/ etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var /named/named .empty
/var/named/named.localhost
/var/named/named.loopback
라는 이름의 기본 구성 파일을 봅니다. conf
#vim /etc/named.conf
주요 구성 파일 분석:
전역 구성 섹션:
기본 전역 구성 항목은 다음과 같습니다:
p>10 options {
11 Listen-on port 53 { 127.0.0.1 } //수신 포트 및 인터페이스 IP 주소
< p> 12 Listen-on-v6 포트 53 {::1; };13 디렉토리 "/var/named"; //DNS 영역의 데이터 파일 기본 저장 위치
< p> 14 덤프 파일 "/var/named/data/cache_dump.db";15 통계 파일 "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/ data/named_mem_stats.txt";
17 make-query { localhost }; //DNS 쿼리를 허용하는 클라이언트 목록, 모두를 의미합니다
18 재귀 yes; //클라이언트가 재귀 쿼리를 수행하도록 허용할지 여부
19
20 dnssec-enable yes;
21 d
nssec-validation yes;
22 dnssec-lookaside auto;
23
24 /* ISC DLV 키 경로 */
25 bindkeys-file "/etc/named.iscdlv.key";
26 }
전역 구성에는 다음 옵션도 있습니다:
Forwarders {202.102 .24.68; 12.3.3.3; //이 도메인 이름 서버에서 확인할 수 없는 항목을 다른 DNS 서버의 IP 주소로 전달합니다.
기본 영역 구성 항목은 다음과 같습니다.< /p>
35 zone "." IN {
36 유형 힌트; 힌트는 루트 영역이고, 마스터는 기본 영역이고, 슬레이브는 보조 영역입니다.
37 file "named.ca"; //이 영역에 해당하는 영역 데이터 구성 파일의 이름
38 };
영역 구성에는 다음과 같은 옵션도 있습니다:
allow-transfer {189.98.90.23;} //슬레이브 도메인 이름 다운로드 허용 영역 데이터베이스의 서버 IP 주소
allow-update {none;}; //동적으로 업데이트된 클라이언트 IP 주소를 허용합니다(없음은 모두 금지됨을 의미함)
다음 영역 구성을 추가합니다.
zone "my.com" IN {
type master; //메인 영역
file “my.com”; 이 영역에 해당하는 데이터 구성 파일
allow- transfer {192.168.153.1;} //슬레이브 도메인 이름 서버의 IP 주소가 지역 데이터베이스를 다운로드하도록 허용합니다.
허용- update {none;};
};
zone “153.168.192.in-addr.arpa” IN { //IP192.168.153.130에 대한 역분석을 나타냅니다.
type master; //Main zone
file “ 192.168.153.my.arpa"; //이 영역에 해당하는 지역 데이터 구성 파일의 이름
};
구성이 완료된 후 다음 명령을 실행하여 명명된.conf 파일의 구문을 검사할 수 있습니다.
#named-checkconf
참고: 역방향 네트워크 주소.in-addr.arpa는 역방향 영역을 나타냅니다.
기본 구성 파일의 마지막 줄은 다음과 같습니다. < /p>
include "/etc/named.rfc1912.zones" //이 파일에는 /etc/named.rfc1912.zones 파일이 포함되어 있습니다.
영역 데이터 구성 파일:
< p> 먼저 명명된.localhost의 내용을 살펴보세요:$TTL 1D // 생존 시간
@ IN SOA @ rname.invalid ( //” rname.invalid”DNS 영역 주소
0; 일련번호 //일련번호 업데이트
1D; 새로고침 //업데이트 시간
1H;
1W; 만료 //만료 시간
3H); 최소 //잘못된 주소 확인 레코드에 대한 기본 캐시 시간
NS @ //이름 서버 도메인 이름 서비스 레코드
p>127.0.0.1 //주소는 순방향 구문 분석 영역 데이터 파일에만 사용됩니다.
AAAA::1
해당 영역 데이터 2개 생성 구성 파일 :
#touch my.com
#touch 192.168.153.my.arpa
#vim my.com
$TTL 86400
@ IN SOA my.com. ( //admin.myNaN은 지역 관리자의 이메일 주소입니다.
200900201
3H
15M
1W
1D
)
@ IN NS ns1.my.com. // 현재 도메인의 DNS 서버 주소
IN MX 10 mail.my.com. //현재 도메인의 메일 서버 도메인 이름 주소를 설정하는 데 사용됩니다. 숫자가 높을수록 우선순위가 낮아집니다. p>
ns1 IN A 192.168.153.130
mail IN A 192.168.153.130
www IN A 192.168.153.130
ftp IN CNAME www //CNAME 별칭(표준 이름) 레코드, ftp.my.com 및 www.my.com은 동일한 IP에 해당합니다.
[root@localhostnamed]# vim 192.168.153.my.arpa
$TTL 86400
@ IN SOA my.com.(
200900201
3H
15M
1W
1D
)
@ IN NS ns1.my.com.
130 IN PTR ftp.my.com
시작 DNS 서비스
[root@localhost ~]# 서비스 이름은 start입니다.
테스트:
테스트용 FTP 서버 구성:
# service vsftpd start //vsftpd 서비스 시작
현재 네트워크 카드 구성:
eth0: 192.168.0.1/24
eth1: 192.168.153.130/24< /p>
[root@localhost 이름]# nslookup 192.168.153.130
서버: 127.0.0.1
주소: 127.0.0.1#53
130.153.168.192.in-addr.arpa 이름 = www.my.com.
[root@localhost ~]# nslookup ftp.my.com
서버: 127.0.0.1< /p>
주소: 127.0.0.1#53
ftp.my.com 정식 이름 = www.my.com.
이름: www.my.com p>
주소: 192.168.153.130
테스트 성공