这是一项学校作业,我的 DNS 绑定配置遇到问题。我应该设置一个 DNS 服务器,我需要设置 SOA、NS 和粘合记录、www、邮件和子域名称服务器的 A 记录,以及 CNAME。
我正在尝试为以下域设置 DNS 服务器:mcduckcorp.duckburg.cali。
我有三个不同的数据库文件:mcduckcorp.db、duckburg.db 和 cali.db。我使用命令“named-checkzone”进行了检查,结果如下:
麦克杜克公司.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
这是配置文件:
麦克杜克公司.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
作为示例和家庭作业等。保证这些域名永远不会分配给任何人,并且任何人都可以安全使用。正是为了这个目的而存在。行中的
30
和之间不应有空格。d
$TTL
在
mcduckcorp.db
你首先定义www.mcduckcorp.duckburg.cali
.作为 IP 地址 192.168.1.10 的 A 记录。稍后您将其定义为指向 的 CNAME
squirrel.mcduckcorp.duckburg.cali
。这是行不通的。A别名记录定义指向另一个域名的别名。记录看起来像:
alias-name IN CNAME canonical-name
别名不能有任何其他数据记录,不能有
A
或MX
或NS
或其他任何东西 - 它只是指向其他地方(指向规范名称)的别名。换句话说,别名“继承”全部它所指向的名称的数据,并且不能以任何方式修改它(不能添加、删除或编辑)。
您的作业要求您显示 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 记录。