호스트 이름으로 완전한 BIND9 DNS 서버 구성을 수행하려면 어떻게합니까?


53

그러한 서버 구성을 생성하는 방법에 대한 완전한 단계별 가이드가 필요합니다.

누구든지 나를 도울 수 있습니까?

답변:


119

우분투 서버 12에서 완전한 DNS 서버.

우선 다음 명령을 사용하려면 서버의 DHCP IP 주소를 STATIC으로 변경하십시오.

sudo nano /etc/network/interfaces

그리고 추가하십시오 :

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

네트워킹 데몬 재시작

sudo /etc/init.d/networking restart

Linux Ubuntu에서 DNS 서버를 구성하기 전에 먼저 도메인 이름을 지정해야합니다. 먼저 호스트 이름 명령을 확인하십시오.

sudo nano /etc/hostname

 nefitari       

(이것은 내 우분투 서버 호스트 이름과 다를 수 있습니다. 필요에 따라 변경할 수 있습니다)

이제 호스트 이름 뒤에 서버의 도메인 이름을 만들어야합니다. servername.domain.com이라고 가정하면 가정용으로 서버를 구성 할 때마다 .com을 사용하지 말고 .hom 또는 .net 또는 원하는 것을 사용하는 것이 좋습니다. 아래 명령을 내리십시오

  sudo nano /etc/hosts

그것이 없다면 추가하십시오 :

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

내 파일 127.0.0.1은 localhost 용이며 192.168.1.5 인 서버 IP로 두 번째 IP 주소 127.0.1.1을 변경했습니다. 이제 호스트 이름이 nefitari 인 도메인 이름을 입력 한 다음 도메인 이름은 autun.hom 이고 별명을 입력하십시오 네 피타 리 . 자신의 hostname.abc.net 또는 hostname.home.lan 등을 선택할 수 있지만이 파일로 변경하면 서버를 다시 시작한 다음 로그인해야합니다. 다시 시작해야합니다

이제 BIND9를 설치하십시오

 sudo apt-get install bind9

설치 후 아래 파일을 단계별로 구성하십시오.

  • 명명 된 conf.options
  • Named.conf.local
  • /etc/resolv.conf

이제 named.conf.options 파일 구성 이 파일은 DNS IP에 사용됩니다. 이는 서버가 외부의 일부 DNS에 연결해야 함을 의미합니다. ISP에서 도메인 이름을 구매하면 일반적으로 자체 DNS IP를 제공합니다. Google의 공개 DNS IP를 사용할 수 있습니다. 필자의 경우 ISP ISP IP를 사용하고 있습니다.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** 파일을 저장하고 *** 제어 x를 사용하여 종료하십시오 *** y를 누르고 파일을 덮어 씁니다.

이제 이름.conf.local 인 파일을 편집하십시오. 이것은 포워드 존과 리버스 존을 정의하는 파일입니다. 즉, 도메인 이름을 입력하면 IP 주소로 변환되고 IP 주소를 입력하면 단순히 이름으로 변환됩니다.

sudo nano /etc/bind/named.conf.local

표시됩니다:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** 파일을 저장하고 *** 제어 x를 사용하여 종료하십시오 *** y를 누르고 파일을 덮어 씁니다.

이제이 두 데이터베이스 파일 을 영역 폴더에 db.autun.homdb.192로 만듭니다 .

먼저 / etc / bind /에 디렉토리 영역을 만드십시오.

  sudo mkdir /etc/bind/zones

파일을 만들기 전에 다른 장치가 있음을 알려드립니다

장치 IP

  • 서버 자체 192.168.1.5
  • 게이트웨이 192.168.1.1
  • Win7pc 192.168.1.50

이제 zones 디렉토리에서 두 개의 파일을 먼저 db.autun.hom 파일로 만듭니다 . 이름을 db.autun.hom 로 변경하여 / etc / bind 폴더 에 이미 존재 하는 db.local 을 zones 폴더로 복사하고 있습니다 . 이 IP를 db.autun.hom 파일에 넣겠습니다. 시작하자

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

이제 아래 명령을 사용하여 파일을 편집하십시오.

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

저장 후 종료

  • Webuser.autun.hom. 이름 서버에 액세스 할 이메일입니다. 대신 관리자, 루트 또는 호스트 마스터 등과 같은 웹 사용자 이름을 쓸 수 있습니다.
  • Autun.hom. 내 NS는 이름 서버를 의미합니다
  • IP 192.168.1.5로 변경되는 Autun.hom
  • @ IN A 127.0.0.1 및 AAAA :: 1 은 db.local이 이미 / etc / bind에 존재하므로 해당 파일의 복사본 일 뿐이므로 필요하지 않아야합니다. 따라서 삭제할 필요가 없습니다.
  • Nefitari 를 IP 192.168.1.5로 변경
  • IP 게이트웨이 192.168.1.1
  • Win7pc Windows PC 또는 Linux 클라이언트의 이름을 원하는 이름으로 지정할 수 있지만 해당 클라이언트의 IP를 파일에 올바르게 삽입해야합니다. 내 경우에는 Windows PC 192.168.1.50의 IP를 주었다
  • 마지막으로 CNAME을 사용 한다는 것은 정식 이름을 의미하며 nefitari의 별칭 일뿐입니다. nefitari.autun.hom 대신 www.autun.hom를 입력하여 서버에 액세스 할 수 있음을 의미합니다. 이것을 생략하거나 주석을 달 수 있습니다. 그것은 당신에게 달려 있습니다.

이제 역방향 조회 영역 파일을 만듭니다.

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

이제 아래 명령을 사용하여 파일을 편집하십시오.

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

저장 후 종료

이제 영역 파일을 다 사용했으면 앞으로 영역 파일에 대해 아래 명령을 입력하여 영역 파일이 올바르게 작동하는지 확인해야합니다.

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

이제 리버스 존 파일을 확인하십시오

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

named-checkzone의 출력이 위와 동일하면 정상적으로 작동합니다. 그렇지 않으면 파일에 실수가 있습니다.

이제 resolv.conf 파일을 편집하십시오.

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

resolv.conf 파일에 다음 줄을 입력하고 저장하십시오

바인드 재시작

sudo /etc/init.d/bind9 restart

바인드 시작 후 로그 파일에서 설정을 확인하십시오.

tail -f /var/log/syslog

로그에 오류가 없어야합니다

앞으로 영역 확인

host –l autun.hom

출력은 다음과 같아야합니다

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

이제 NSLOOKUP을 사용하십시오.

nslookup autun.hom

산출

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

DIG 사용

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

출력은 위와 유사하고 상태를 점검하십시오 . NOERROR 는 점검을 해결 중임을 의미합니다 . 답변 섹션 : gateway.autun.hom는 192.168.1.1로 해석됩니다.

리버스 존 점검

 host 192.168.1.1

산출

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

아래와 같은 오류가 발생하면

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

즉 , 리버스 영역의 /etc/bind/named.conf.local 파일에서 실수를 한 것입니다. 서버 IP가 192.168.1.5 인 경우 리버스 영역은 다음과 같습니다.

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

때때로 사람들은 (예를 들어) IP를 뒤집는 데 실수를했습니다.

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

NSLOOKUP 사용

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

NXDOMAIN 또는 SERVFAIL과 같은 오류가 발생하면 영역 파일 중 하나가 올바르게 작동하지 않는 것입니다.

지금 당신은 할 수 ubuntu.com를 핑 (ping) 또는 ubuntu.com 발굴 이 소요됩니다 처음 이름 ubuntu.com를 해결하기 위해 밀리 초를하지만, 당신이 그것을 실행할 때 두 번째 시간이 걸릴 것입니다 1, 2 또는 3 초 일반적으로 1 밀리 10을 형성 초 는 정상이며 DNS가 제대로 작동하고 있음을 의미합니다

클라이언트 구성

창쪽

  • 개방형 네트워크 연결
  • 어댑터 설정 변경을 선택하십시오.
  • 속성 선택
  • 인터넷 프로토콜 버전 IPv4 선택

그리고 여기에 IP 주소를 제공하십시오 (제 경우에는 192.168.1.50입니다 win7pc를 기억하십니까)

  • IP 주소 192.168.1.50
  • 서브넷 마스크 255.255.255.0
  • 기본 게이트웨이 192.168.1.1
  • 기본 DNS 192.168.1.5 (새로운 BIND DNS 서버 IP)
  • 같은 창에서 Advance를 선택하십시오
  • DNS 탭을 선택 하십시오
  • 이 연결에 대한 DNS 접미사에 여기에 텍스트 상자를 입력하십시오.
  • 클릭 확인
  • 종료시 설정 확인을 클릭하십시오
  • 확인을 클릭하십시오

그리고 당신은 열린 CMD로 끝났습니다.

ping gateway

그것은 당신에게 몇 가지 대답을 제공해야합니다

비슷하게

ping 192.168.1.1 or 5

그것은 당신에게 몇 가지 대답을 제공해야합니다

외부 세계로 서버 테스트

이제 ubuntu.com 또는 dig ubuntu.com을 처음으로 ping 할 수 있습니다. ubuntu.com이라는 이름을 확인하는 데 몇 밀리 초가 걸리지 만 두 번째로 실행하면 정상 시간은 1-10 밀리 초입니다. DNS가 제대로 작동한다는 의미입니다. 클라이언트 구성

창쪽

개방형 네트워크 연결 선택 어댑터 설정 변경 속성 선택 인터넷 프로토콜 버전 IPv4 선택

그리고 여기에 IP 주소를 제공하십시오 (제 경우에는 192.168.1.50입니다 win7pc를 기억하십니까)

IP 주소 192.168.1.50

서브넷 마스크 255.255.255.0

기본 게이트웨이 192.168.1.1

기본 DNS 192.168.1.5 (새로운 BIND DNS 서버 IP)

같은 창에서 고급을 선택하십시오.

DNS 탭을 선택 하십시오

이 연결에 대한 DNS 접미사에 여기에 텍스트 상자를 입력하십시오.

클릭 확인

종료시 설정 확인을 클릭하십시오

클릭 확인

그리고 당신은 열린 CMD 로 끝났습니다.

암호:

 ping gateway

그것은 당신에게 몇 가지 대답을 제공해야합니다

비슷하게

암호:

 ping 192.168.1.1 or 5

NSLOOKUP 코드를 사용할 수있는 답장을 제공해야합니다 .

 nslookup gateway

리눅스 클라이언트

암호:

 sudo nano /etc/network/interfaces

다음 줄을 입력하십시오

암호:

 auto eth0
 iface eth0 inet dhcp

이제 네트워크 데몬을 다시 시작하십시오.

암호:

 sudo /etc/init.d/networking restart

클라이언트 갱신 IP 명령을 강제로

암호:

 sudo dhclient -r

이제 새로운 IP를 얻으십시오 :

암호:

 sudo dhclient

네트워크에서 DHCP 서버를 실행중인 경우 dhcpd.conf 파일에 도메인 이름 및 이름 서버를 입력하십시오. 예를 들어 nefitari.autun.hom라는 DNS 서버가 있고 IP 주소는 아래와 같이 192.168.1.5입니다.

암호:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

출처


7
이 페이지의 조회수가 3726 회이고 답변이 하나만 있다는 것은 부끄러운 일입니다. 도움이 되었으면 투표하십시오!
fotanus

12
이 답변은 /etc/resolv.conf 편집에 대한 부분을 제외하고는 정확합니다. Ubuntu 12.04부터는 파일을 직접 편집하지 않지만 그렇게하려면 resolvconf를 구성하십시오. / etc / default / bind9에서 RESOLVCONF = yes를 설정하여 이름 지정된 BIND 9가 시작될 때 로컬 청취 주소 127.0.0.1을 resolvconf에 등록하게하십시오. /etc/resolv.conf가에 대한 심볼릭 링크인지 확인하십시오 ../run/resolvconf/resolv.conf.
jdthood

1
syslog 오류 (network unreachable) resolving './NS/IN': 2001:500:3::42#53-ipv6을 사용하여 재귀 적으로 쿼리를 해결하려는 바인드에서 발생했습니다 . 편집 /etc/default/bind9하고 사용하면 문제가 OPTIONS="-u bind -4"해결됩니다. 추가 정보 : serverfault.com/questions/77325/unreachable-resolveving-domain
패치가 아닙니다.

방금 Ubuntu 서버 16.04로 설정을했는데 여전히 작동합니다. DNS에 대한 Serverguide 자습서는이 설명과 비교하면 악몽입니다. 그러나 목록에서 하나의 오류 를 수정해야했습니다 . db.192이전 파일 IN NS nefitari.에서 @누락되었습니다. 또한 FQDN을 추가해야했기 때문에 작업 라인이 다음과 같이 보였습니다 @ IN NS nefitari.autun.hom.. resolv.conf 섹션을 무시하고 jdthood의 조언을 따랐습니다. 기본 서버 설치에서 이미 링크가있었습니다.
CatMan

1
@fotanus 나는 사람들이 찬성 투표로 백업 스크롤 \하는 것을 잊었다 너무 오래 때문에 그것의 생각
CodyBugstein

1

대답은 위의 훌륭한 설명에 추가 된 것입니다.

문제 해결 팁

많은 '.'에 매우주의하십시오. 구성 파일에서 각각 중요합니다. 누락 된 '.' DNS 서버가 작동하지 못하게 할 수 있습니다. 명확한 오류 메시지를 기 대해서는 안됩니다.

더 많은 일련 번호를 사용하는 것이 좋습니다. 설정을 수정할 때마다 일련 번호를 증가시키는 것이 중요합니다 (예 : 새 항목 추가). 증가하지 않으면 보조 DNS가 새 설정을 동기화하지 못합니다. 제안 된 형식은입니다 YYYYMMDDss. 여기서 ss"오래된"일련 번호입니다. 증가 때, 당신은 증가한다 ss+1 하고 현재 날짜로 날짜를 설정합니다. 설정 문제를 해결하는 데 매우 유용한 것으로 나타났습니다. syslog에는 사용 된 파일의 날짜와 일련 번호가 명확하게 표시됩니다.

우분투 16.04에서는 resolv.conf 변경이 더 이상 사용되지 않습니다. 으로 jdthood이 자신의 의견의 글을 다음의 절차와 단계를 대체 : - 변경은 / etc / 기본 / BIND9 : 새로운 뜻을 같이해야한다 :

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

IPV6 문제에 대해서는 패치아닌 의견을 참조하십시오 .

  • /etc/resolv.conf의 심볼릭 링크를 /run/resolvconf/resolv.conf에 넣습니다.

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

오프라인 설정

전달 섹션을 건너 뛸 수 있기 때문에 설정이 동일하고 약간 더 쉽습니다. 존재하지 않아도되므로 편집 할 필요가 없습니다 /etc/bind/names.con.options.

B 급 네트워크

클래스 B 네트워크에 대해이 작업을 수행하는 데 약간의 변경이 필요합니다 (의견이 있기 전에 집에서도 로컬 네트워크가 클래스 C 네트워크 대신 클래스 B가 될 수없는 이유는 없습니다) . 이 예에서는 네트워크 번호 172.20.xx를 사용합니다 (자세한 정보는 Google rfc1918의 경우 공식 표기법은 172.20.0.0입니다).

첫 번째 답변의 설명을 사용하고 모든 IP 192.168.xx를 172.20.xx로 바꾸고 서버 IP 172.20.0.100에 사용하고 다음과 같이 파일을 수정하십시오.

  • 파일 이름 db.192이됩니다 db.172.
  • 파일 named.conf.local은 다른 리버스 존 섹션을 얻습니다.

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • 리버스 존 파일은 다음과 같이 변경됩니다.

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

나머지는 동일합니다.

누군가에게 유용하기를 바랍니다.


172.16 및 172.20 주소를 모두 사용하려는 경우이 기능이 작동합니까?
kojow7

@ kojow7. 아주 좋은 질문입니다. 나는 모르지만 당신은 두 번째 영역과 두 번째 리버스 파일을 포함하도록 확인할 수 있습니다. nslookup 명령으로 쉽게 테스트 할 수 있습니다. 또는 172.16을 모두 포함하는 넷 마스크를 사용하는 것이 좋습니다. 및 172.20. 넷 마스크는 255.255.0.0만큼 단순하지는 않지만 0과 255 이외의 다른 숫자를 포함하지만 인터넷에서는 아직 알지 못하는 경우이를 알아내는 방법을 자습서에서 찾을 수 있습니다. 당신이 그것을 해결 한 경우 다른 사람들의 이익을 위해 여기에 게시하는 것을 고려하십시오.
CatMan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.