Linux

由於錯誤未載入 DNS 綁定

  • September 28, 2019

這是一項學校作業,我的 DNS 綁定配置有問題。我應該設置一個 DNS 伺服器,我需要設置 SOA、NS 和粘合記錄、www、郵件和子域名稱伺服器的 A 記錄,以及一個 CNAME。

我正在嘗試為以下域設置 DNS 伺服器:mcduckcorp.duckburg.cali。

我有三個不同的數據庫文件,mcduckcorp.db、duckburg.db 和 cali.db。我使用命令“named-checkzone”進行了檢查,結果如下:

mcduckcorp.db:

dns_master_load: /etc/bind/mcduckcorp.db:1: extra input text
dns_master_load: /etc/bind/mcduckcorp.db:16: www.mcduckcorp.duckburg.cali: CNAME and other data
zone mcduckcorp.duckburg.cali/IN: loading from master file /etc/bind/mcduckcorp.db failed: extra input text
zone mcduckcorp.duckburg.cali/IN: not loaded due to errors

鴨堡.db:

dns_master_load: /etc/bind/duckburg.db:1: extra input text
zone duckburg.cali/IN: loading from master file /etc/bind/duckburg.db failed: extra input text
zone duckburg.cali/IN: not loaded due to errors

校準數據庫

dns_master_load: /etc/bind/cali.db:1: extra input text
zone cali/IN: loading from master file /etc/bind/cali.db failed: extra input text
zone cali/IN: not loaded due to errors

這裡是配置文件:

mcduckcorp.db:

$TTL 30 d
$ORIGIN mcduckcorp.duckburg.cali. 
@ IN SOA ns1.mcduckcorp.duckburg.cali. mail.mcduckcorp.duckburg.cali. (
           2019092700 ;serial
           86400 ;refresh
           7200 ;retry
           3600000 ;expiration
           172800) ;minimum

@ IN NS ns1.mcduckcorp.duckburg.cali.
ns1.mcduckcorp.duckburg.cali.   IN   A   192.168.1.10
mail.mcduckcorp.duckburg.cali.  IN   A   192.168.1.10
www.mcduckcorp.duckburg.cali.   IN   A   192.168.1.10

www   IN   CNAME   squirrel

鴨堡.db:

$TTL 30 d
$ORIGIN duckburg.cali.
@ IN SOA ns1.duckburg.cali. mail.duckburg.cali. (
                       2019092700 ;serial
                       86400 ;refresh
                       7200 ;retry
                       3600000 ;expiration
                       172800) ;minimum

@ IN NS ns1.duckburg.cali.
ns1.duckburg.cali.              IN   A   192.168.1.10
mail.mcduckcorp.duckburg.cali.  IN   A   192.168.1.10
www.mcduckcorp.duckburg.cali.   IN   A   192.168.1.10

subdomain   IN   NS   ns1.mcduckcorp.duckburg.cali.
ns1.mcduckcorp.duckburg.cali.   IN   A   192.168.1.10

www   IN   CNAME   squirrel

校準數據庫:

$TTL 30 d
$ORIGIN cali.
@ IN SOA ns1.cali. mail.cali. (
                       201909700 ;serial
                       86400 ;refresh
                       7200 ;retry
                       3600000 ;expiration
                       172800) ;minimum

@ IN NS ns1.cali.
ns1.cali.                       IN   A   192.168.1.10
mail.mcduckcorp.duckburg.cali.  IN   A   192.168.1.10
www.mcduckcorp.duckburg.cali.   IN   A   192.168.1.10

subdomain   IN   NS   ns1.duckburg.cali.
ns1.duckburg.cali.              IN   A   192.168.1.10

www   IN   CNAME   squirrel

我顯然犯了一個(或幾個)錯誤,但我不確定出了什麼問題。任何幫助,將不勝感激!

您的區域文件存在一些明顯的問題:

  1. 您永遠不應該使用不屬於您的域,即使是範例和作業。它們現在可能不存在,但將來可能存在。

使用example.org, example.com,example.net例如和家庭作業等。保證這些域永遠不會分配給任何人,並且任何人都可以安全使用。正是為了這個目的而存在。 2. 30行和d行之間不應有空格$TTL。 3. 在mcduckcorp.db你首先定義www.mcduckcorp.duckburg.cali. 作為 IP 地址為 192.168.1.10 的 A 記錄。

稍後您將其定義為指向 的 CNAME squirrel.mcduckcorp.duckburg.cali。這是行不通的。

CNAME定義指向另一個域名的別名。記錄如下:

alias-name IN CNAME canonical-name

alias-name 不能有任何其他數據記錄,不是Aor MXorNS或其他任何東西——它只是一個指向其他地方的別名(指向規範名稱)。換句話說,別名“繼承”了它所指向的名稱的所有數據,並且不能以任何方式對其進行修改(不能添加、刪除或編輯)。

您的作業要求您展示 A 記錄和 CNAME 記錄的範例。嘗試為域本身創建一個 A 記錄,然後創建www一個指向它的別名。例如

   @   IN A     192.168.1.10
   www IN CNAME @

www將“繼承”與@($ORIGIN、域本身)關聯的所有記錄。這包括 A 記錄、任何 NS 或 MX 或 TXT 以及可能存在的任何其他記錄。

NS 記錄在此幾乎無關緊要,但 MX 記錄可能很有用,例如,如果郵件伺服器domain.example.com配置為也處理www.domain.example.com.

或者,您可以為 製作一個 A 記錄www,然後製作squirrel一個指向它的別名。例如

   www      IN A     192.168.1.10
   squirrel IN CNAME www

在這裡,squirrel 繼承了 的所有內容www,它只有一個 A 記錄。

引用自:https://unix.stackexchange.com/questions/544057