DNS(Domain Name Service)

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.45.6.7.8IP 주소의 실제적인 네임 서버.,

새 구성을 사용하려면 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.comfile:

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 채널입니다.나는 이것이 어떻게 작동하는지 잘 모르겠습니다. 포럼에서이 문서를 개선하는 데 도움이됩니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다

도구 모음으로 건너뛰기