DNS(Domain Name Service)인터넷 서비스를 매핑하는 IP 주소와 완전한 도메인 이름(FQDN)습니다. 이러한 방식으로 DNS 는 IP 주소를 기억할 필요성을 완화시킵니다. DNS 를 실행하는 컴퓨터를 이름 서버라고합니다. 우분투는 Linux 에서 네임 서버를 유지하는 데 사용되는 가장 일반적인 프로그램 인 BIND(Berkley Internet Naming Daemon)와 함께 제공됩니다.,
에서는 터미널 프롬프트에 다음과 같이 입력한 명령어를 설치하 dns
sudo apt install bind9
매우 유용한 패키지에 대한 테스트 및 DNS 문제 해결이dnsutils
패키지입니다. 매우 자주 이러한 도구가 될 것이 설치되어 있는지를 확인 및/또는 설치dnsutils
다음과 같이 입력합니다.
sudo apt install dnsutils
구성
있을 구성하는 방법에는 여러 가지 BIND9. 가장 일반적인 구성하는 네임 서버를 캐싱,기본 서버 및 보조 서버입니다.,
-
때로 구성된 네임 서버를 캐싱 BIND9 에 대한 답을 찾을 수 있습니다 이름을 쿼리와 응답을 생각할 때 도메인이 다시 조회.
-
주 server,BIND9 데이터를 읽고 영역에 대한 파일에서 해당 호스트하고 신뢰할 수 있는 영역입니다.
-
보조 server,BIND9 얻는 영역에서 데이터를 다른 네임 서버에 대해 신뢰할 수 있는 영역입니다.
개요
DNS 구성 파일은/etc/bind
디렉토리에 저장됩니다., 기본 구성 파일은/etc/bind/named.conf
에서는 레이아웃에 의해 제공됩 패키지를 포함한 파일이 있습니다.
파일/etc/bind/db.root
에서 설명하는 데 사용되는 루트 네임 서버. 이것이 지금 제공하는 대신에 의해/usr/share/dns/root.hints
파일와 함께 제공되는dns-root-data
패키지에서 참조named.conf.default-zones
구성 파일이다.
그것은 구성하는 동일한 서버를 캐싱 이름 server,기본 및 보조:모든 영역 제공합니다., 서버는 다른 영역에 대한 보조 서비스를 제공하면서 한 영역에 대한 권한(SOA)의 시작일 수 있습니다. 로컬 LAN 의 호스트에 대한 캐싱 서비스를 제공하는 모든 동안.
캐싱 네임 서버
기본 구성은 캐싱 서버 역할을합니다. 단순히 주석을 제거하고 편집/etc/bind/named.conf.options
를 설정하는 IP 주소는 ISP 의 DNS 서버:
forwarders { 1.2.3.4; 5.6.7.8;};
참고.
바꾸기
1.2.3.4
및5.6.7.8
IP 주소의 실제적인 네임 서버.,
새 구성을 사용하려면 DNS 서버를 다시 시작하십시오. 터미널 프롬프트에서:
sudo systemctl restart bind9.service
캐싱 DNS 서버 테스트에 대한 자세한 내용은 dig 를 참조하십시오.
기본 서버
이 섹션에서 BIND9 는 도메인example.com
에 대한 기본 서버로 구성됩니다. 간단히example.com
를 FQDN(정규화된 도메인 이름)으로 바꿉니다.,
앞으로 파일 영역
추가 DNS 영역을 BIND9,돌 BIND9 으로 주 server,첫 번째 편집/etc/bind/named.conf.local
zone "example.com" { type master; file "/etc/bind/db.example.com";};
참고.
경우 바인딩을 것을 받는 자동 업데이트 파일로와 DDNS, 다음 사용하는
/var/lib/bind/db.example.com
아닌/etc/bind/db.example.com
모두 여기에 복사합니다.,
지금 사용하고 기존 파일 영역으로 템플릿을 만드는/etc/bind/db.example.com
file:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
편집하는 새로운 영역 파일/etc/bind/db.example.com
고 변화localhost.
을 FQDN 의 서버를 떠나,추가적인.
니다., 변화127.0.0.1
하는 네임 서버의 IP 주소와root.localhost
유효한 이메일 주소,하지만.
대신의 일반적인@
기호,또 다시 떠나는.
니다. 주석을 변경하여 이 파일의 도메인을 나타냅니다.
기본 도메인에 대한 a 레코드를 만듭니다.example.com
. 또한,A 레코드를 작성한ns.example.com
이름이 서버는 이 예에서는 다음과 같습니다.
증가시켜야 합 일련 번호를 모든 시간을 변경하는 영역을 파일입니다., BIND9 를 다시 시작하기 전에 여러 번 변경하는 경우 직렬을 한 번 증가하면됩니다.
이제 영역 파일의 맨 아래에 DNS 레코드를 추가할 수 있습니다. 자세한 내용은 일반 레코드 유형을 참조하십시오.,
참고.
많은 관리자를 사용하여 마지막 날짜를 편집으로 직렬의 영역,등 2020012100 는 yyyymmddss(디 ss 은 일련번호)
일단 당신이 당신 변경 사항을 영역 파일 BIND9 다시 시작해야에 대한 변경 사항을 적용하기:
sudo systemctl restart bind9.service
역대 파일
이제는 지역 설정 및 해결에 이름을 IP 주소를 역대를 추가할 수 있습 확인 하도록 DNS 주소를 이용합니다.,
편집/etc/bind/named.conf.local
그리고 다음을 추가합니다:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};
참고.
바꾸기
1.168.192
첫 번째와 세 개의 옥텟을 무엇이든의 네트워크를 사용하고 있습니다. 또한 영역 파일의 이름을/etc/bind/db.192
적절하게 지정하십시오. 네트워크의 첫 번째 옥텟과 일치해야합니다.,
이제 만들기/etc/bind/db.192
파일:
sudo cp /etc/bind/db.127 /etc/bind/db.192
다음 편집/etc/bind/db.192
변경 같은 옵션으로/etc/bind/db.example.com
:
일련 번호에서 역대될 필요가 증가에서 각각의 변경 뿐만 아니라. 에 대한 각각의 레코드를 구성하는/etc/bind/db.example.com
에,그것은 다른 주소를 만들어야 합 PTR record 에서/etc/bind/db.192
.,
을 만든 후에는 역대 파일을 다시 시작 BIND9:
sudo systemctl restart bind9.service
보조 Server
한 번은 주 서버가 구성되었을 보조 서버에 추천을 유지하기 위해서 도메인의 가용성해야한 기본 사용할 수 없게 됩니다.
먼저 기본 서버에서 영역 전송을 허용해야합니다., 추가allow-transfer
옵션을 예방향 및 역방향 영역에서 정의/etc/bind/named.conf.local
참고.
바꾸기
192.168.1.11
의 IP 주소로 귀하의 차 네임 서버.
다시 시작 BIND9 기본 서버에서:
sudo systemctl restart bind9.service
다음,보조 서버에 설치하 bind9 패키지에서와 같은 방식으로 기본입니다., 편집/etc/bind/named.conf.local
그리고 다음을 추가한 선언에 대한 정방향 및 역방향 영역:
참고.
바꾸기
192.168.1.10
의 IP 주소를 기본 네임 서버.,
다시 시작 BIND9 보조 서버에서:
sudo systemctl restart bind9.service
에서는/var/log/syslog
과 같은 로그가 표시되어야 합니 다음과(노선이 있었는 분할에 맞는 형식의 이 문서):
참고.
참고:은 영역만을 전송하는 경우에 일련 번호를 기본보다 큰 중 하나에 차 있습니다., 를 원하는 경우 기본 DNS 알리는 다른 보조 DNS 서버의 영역이 변경,추가할 수 있습니다
also-notify { ipaddress; };
을/etc/bind/named.conf.local
에서와 같 아래 예제:
참고.
기본 디렉토리는 비-신뢰할 수 있는 파일 영역은
/var/cache/bind/
. 이 디렉토리는 또한 AppArmor 에서 명명 된 데몬이 쓸 수 있도록 구성됩니다. AppArmor 에 대한 자세한 내용은 보안-AppArmor 를 참조하십시오.,
문제 해결
이 섹션에서는 DNS 및 BIND9 구성의 문제 진단에 대해 다룹니다.
테스트
resolv.conf
bind9 테스트의 첫 번째 단계는 네임 서버의 IP 주소를 hosts resolver 에 추가하는 것입니다. 기본 네임 서버뿐만 아니라 다른 호스트를 구성하여 사물을 다시 확인해야합니다. 를 참조하 DNS 클라이언트 구성을 추가하는 방법에 대한 자세한 내용 네임 서버 주소를 네트워크 클라이언트입니다., 결국 당신의nameserver
줄에는/etc/resolv.conf
해야에서 가리키는127.0.0.53
그리고 당신이 있어야search
매개변수에 대한 귀하의 도메인에 있습니다. 무언가 이것을 좋아한다:
nameserver 127.0.0.53search example.com
을 확인하는 DNS 서버가 귀하의 지역 해결 프로그램을 사용하여 실행합니다.
systemd-resolve --status
참고.
을 추가해야의 IP 주소를 차 네임 서버 클라이언트 구성에서 주 시스를 사용할 수 없게 됩니다.,
파기
설치한 경우 dnsutils 포장을 테스트할 수 있습니다 설정을 사용하여 DNS lookup utility 파:
-
를 설치한 후 BIND9 사용하여 발굴에 대한 루프백 인터페이스를 확인 그것은 포트에서 수신 53.,i>
구성한 경우 BIND9 으로 캐싱하는 네임 서버”파”라는 외부 도메인을 확인하는 쿼리 시간:
dig ubuntu.com
주 쿼리 시간의 끝을 향해서 명령 출력:
;; Query time: 49 msec
후 두 번째 발굴이 있어야 합 개선:
;; Query time: 1 msec
핑
을 증명하기 위해 지금 어떻게 응용 프로그램을 사용하의 DNS 를 해결할 호스트 이름을 ping 유틸리티를 사용하여 ICMP echo 요청은:
ping example.com
이 테스트는 경우 네임 서버를 해결할 수 있습니다 이름ns.example.com
하는 IP 주소가 있습니다., 명령과 비슷한 결과가 나타나야 합니다:
라는 이름의-checkzone
좋은 방법을 테스트하는 영역에 파일을 사용하여named-checkzone
유틸리티 설치된bind9
패키지입니다. 이 유틸리티를 사용하면 BIND9 를 다시 시작하고 변경 사항을 라이브로 만들기 전에 구성이 올바른지 확인할 수 있습니다.,
-
을 테스트하는 우리의 예에서 기존 파일에 다음과 같이 입력한 명령 프롬프트에서:
named-checkzone example.com /etc/bind/db.example.com
경우 모든 것이 제대로 구성되어 출력이 표시되어야 합니다.
zone example.com/IN: loaded serial 6OK
-
마찬가지로,을 테스트하는 역대 파일에 다음과 같이 입력합니다.
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
출력 비슷해야 합니다:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK
참고.
의 일련 번호는 당신의 영역 파일 것입니다 아마 다를 수 있습니다.,
빠른 임시 쿼리를 로깅
와rndc
도구를 빠르게 설정할 수 있습니다 쿼리에 로그온하고프지 않고,서비스를 다시 시작하거나 변경하는 구성 파일입니다.
로 돌 쿼리에 로그인을 실행합니다.
sudo rndc querylog on
마찬가지로,그것을 해제하는 명령을 실행합니다.
sudo rndc querylog off
로그를 보내질 것입 syslog 에 표시됩니다/var/log/syslog
의 기본값:
참고.
의 양을 생성된 로그를 사용하여
querylog
될 수 있다.,
로깅
BIND9 의 다양한 로깅을 구성 옵션을 사용할 수 있지만,두 개의 주요 그들은 채널 및 카테고리,구성하는 로그를 이동,그리고 어떤 정보를 기록,각각합니다.
지 않은 경우 로깅 옵션이 구성되어 있는 기본 구성.
logging { category default { default_syslog; default_debug; }; category unmatched { null; };};
대신 구성 BIND9 을 보내 디버그 메시지와 관련된 DNS 쿼리하여 별도의 파일입니다.메시지를 보낼 파일과 카테고리를 지정하도록 채널을 구성해야합니다., 이 예에서 범주는 모든 쿼리를 기록합니다. 편집/etc/bind/named.conf.local
그리고 다음을 추가합니다:
logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};
참고.
디버깅 옵션에서 설정할 수 있습니다 1~3. 레벨이 지정되지 않은 경우 레벨 1 이 기본값입니다.,
-
이라는 데몬으로 실행되 bind 사용자는
/var/log/named
디렉토리 만들어야 하고 이 소유권을 변경한다.sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
-
이제 다시 시작 BIND9 에 대한 변경 사항을 적용하기:
sudo systemctl restart bind9.service
해야 합 파일을 볼/var/log/named/query.log
채워진 쿼리 정보입니다. 이것은 BIND9 로깅 옵션의 간단한 예입니다. 고급 옵션의 적용 범위는 자세한 내용을 참조하십시오.,
공통 레코드 유형
이 섹션에서는 가장 일반적인 DNS 레코드 유형 중 일부를 다룹니다.
-
A
레코드:이 레코드는 ip 주소를 호스트 이름에 매핑합니다.www IN A 192.168.1.12
-
CNAME
기록을 만드는 데 사용되는 별칭을 기존의 기록이다. 을 만들 수 없다CNAME
기록을 가리키는 또 다른CNAME
기록합니다.web IN CNAME www
-
MX
기록:를 정의하는 데 사용되는 이메일로 보내야 합니다.,CNAME
가 아닌A
레코드를 가리켜 야합니다.@ IN MX 1 mail.example.com.mail IN A 192.168.1.13
-
NS
기록:정의하는 데 사용하는 서버에 봉사하는 사본의 영역입니다.CNAME
가 아닌A
레코드를 가리켜 야합니다. 기본 및 보조 서버가 정의되는 곳입니다.@ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11
더 많은 정보
-
업스트림 BIND9 문서
-
Bind9.net 는 링크가 큰 컬렉션의 DNS 및 BIND9 리소스입니다.,
-
DNS 와 BIND 는 이제 5 판으로 인기있는 책입니다. IPV6 책에 DNS 및 바인드도 지금있다.
-
BIND9 지원을 요청하고 Ubuntu Server 커뮤니티에 참여하기 좋은 곳은 freenode 의#ubuntu-server IRC 채널입니다.나는 이것이 어떻게 작동하는지 잘 모르겠습니다. 포럼에서이 문서를 개선하는 데 도움이됩니다.