ホスト名を使用して完全なBIND9 DNSサーバー設定を行うにはどうすればよいですか?


53

このようなサーバー構成を作成する方法について、完全なステップバイステップガイドが必要です。

誰でも助けてくれますか?

回答:


119

Ubuntuサーバー12のDNSサーバーを完成させます。

まず、サーバーのIPアドレスをDHCPから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       

(これは私のUbuntuサーバーのホスト名であり、異なる場合があります。必要に応じて変更できます)

ホスト名の後に、サーバーのドメイン名を作成する必要があります。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はローカルホスト用であり、2番目のIPアドレス127.0.1.1を192.168.1.5であるサーバーIPで変更しました。今度はホスト名nefitariを持つドメイン名を入力し、次にドメイン名autun.hom、エイリアスを入力しますネフィタリ。独自のhostname.abc.netまたはhostname.home.lanなどを選択できますが、このファイルへの変更はサーバーを再起動してログインする必要があることを忘れないでください。再起動が必要です

BIND9をインストールします

 sudo apt-get install bind9

インストール後、次のファイルを段階的に設定するだけです

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

次に、named.conf.options ファイルを構成します。このファイルはDNS IPに使用されます。つまり、サーバーは外部のDNSに接続する必要があります。ISPからドメイン名を購入すると、通常、独自のDNS IPが提供されます。GoogleなどのオープンDNS IPを使用できます。私の場合、自分のISP DNS 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を押してファイルを上書きします

次に、named.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を押してファイルを上書きします

次に、これらの2つのデータベースファイルをdbsautun.homdb.192をゾーンフォルダーに作成します

最初に/ etc / bind /にディレクトリゾーンを作成します

  sudo mkdir /etc/bind/zones

ファイルを作成する前に、さまざまなデバイスがあることを説明します

デバイスIP

  • サーバー自体 192.168.1.5
  • ゲートウェイ 192.168.1.1
  • Win7pc 192.168.1.50

ゾーンディレクトリで、最初にdb.autun.homの 2つのファイルを作成します。/ etc / bindフォルダーに既にあるdb.localを、その名前をdb.autun.homに変更して、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。ネームサーバーにアクセスする電子メールです。admin、root、host masterなどのようなwebuserの代わりに任意の名前を書くことができます。
  • Autun.hom。NSはネームサーバーを意味します
  • Autun.hom .IP 192.168.1.5への変更
  • @ 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はチェックを解決していることを意味しますANSWER SECTION: 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を取得する場合、ゾーンファイルの1つが正しく機能していないことを意味します

これで、ubuntu.comにpingを送信したり、ubuntu.comを最初に掘ったりできますが、ubuntu.comの名前を解決するにはミリ秒かかりますが、2目に実行すると、通常1から10ミリ秒で1、2、または3秒かかります秒は正常であり、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サフィックスに入力します:autun.hom
  • OKをクリック
  • 終了時に設定の検証をクリックします
  • OKをクリック

そして、あなたはそれを開いてCMD

ping gateway

それはあなたにいくつかの返信を与える必要があります

同様に

ping 192.168.1.1 or 5

それはあなたにいくつかの返信を与える必要があります

サーバーを外界に対してテストする

これで、ubuntu.comに初めてpingを送信したり、ubuntu.comを掘ったりすることができます。名前ubuntu.comを解決するには数ミリ秒かかりますが、2回目に実行すると、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サフィックスに入力します:autun.hom

OKをクリック

終了時に設定の検証をクリックします

OKをクリック

これで完了ですCMD

コード:

 ping gateway

それはあなたにいくつかの返信を与える必要があります

同様に

コード:

 ping 192.168.1.1 or 5

NSLOOKUP コードを使用できるいくつかの応答を提供する必要があります

 nslookup gateway

Linuxクライアント

コード:

 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個のuniqビューがあり、回答に1つだけの賛成票があることは残念です。あなたに役立ったなら、賛成してください!
-fotanus

12
/etc/resolv.confの編集に関する部分を除いて、この答えは正しいです。Ubuntu 12.04以降では、そのファイルを手動で編集するのではなく、そのようにresolvconfを構成します。/ etc / default / bind9でRESOLVCONF = yesを設定して、BIND 9が開始時にresolvconfでローカルリスンアドレス127.0.0.1を登録するようにします。/etc/resolv.confがへのシンボリックリンクであることを確認してください../run/resolvconf/resolv.conf
jdthood 14年

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-resolving-domain
パッチではない

私はUbuntuサーバー16.04でセットアップを取得しましたが、それでも動作します。DNSに関するServerguideチュートリアルは、この説明と比較すると悪夢です。ただし、リスト内の1つのエラーを修正する必要がありました。db.192前のファイルに欠落があります。また、FQDNを追加する必要があったため、私の作業行は次のようになりました。resolv.confセクションを無視し、jdthoodのアドバイスに従いました。リンクは、デフォルトのサーバーインストールから既に存在していました。IN NS nefitari.@@ IN NS nefitari.autun.hom.
キャットマン

1
@fotanusあまりにも長いので、人々がupvote \にスクロールバックするのを忘れていたからだと思う
-CodyBugstein

1

答えは、上記のすばらしい説明への単なる追加です。

トラブルシューティングのヒント

多くの「。」に非常に注意してください それぞれが重要であるため、構成ファイルで。単一の欠落した '。' DNSサーバーの動作を停止できます。明確なエラーメッセージを期待しないでください。

わかりやすいシリアル番号を使用することをお勧めします。セットアップが変更されるたびにシリアル番号をインクリメントすることは非常に重要です。たとえば、新しいエントリが追加されます。増分されない場合、セカンダリDNSは新しい設定の同期に失敗します。推奨される形式はYYYYMMDDssss「古い」シリアル番号です。インクリメントするときだから、あなたはインクリメントすべきss1で現在の日付に日付を設定します。これはセットアップのトラブルシューティングに非常に役立ちました。syslogには、使用したファイルの日付とシリアルが明確に表示されます。

Ubuntu 16.04では、resolv.confの変更は非推奨です。以下のようjdthood彼のコメントに書き込みは、以下の手順でステップを置き換える: -変更は、/ etc / default / 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。とてもいい質問です。わかりませんが、2番目のゾーンと2番目の逆方向ファイルを含めるだけで確認できます。nslookupコマンドで簡単にテストできます。または、おそらく172.16の両方を含むNetmaskを使用することをお勧めします。および172.20。ネットマスクは255.255.0.0ほど単純ではありませんが、0と255の横に他の数字が含まれていますが、ネット上では、わからない場合にそれを把握する方法を見つけることができます。解決した場合は、他の人のためにここに投稿することを検討してください。
キャットマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.