DNS
在Linux中,域名服务(DNS)是由柏克莱网间名域(Berkeley Internet Name Domain--BIND)软件实现的
一。基础
1。安装包
bind,bind-utils(第一张盘)
cache-server-* 含配置范例(第三张)
2。使用端口:53(不是25,25是邮件端口)
3。配置文件:/etc/named.conf
默认zone file 保存位置 /var/named/
4。配置文件检查 方法: named-checkzone,name-checkconf
无任何返回,则正确。
5.客户端配置文件 是/etc/resolve.conf
6。守护进程 named
7。分类 master(prime) ,slave,cache dns
8。logs 记录在 /var/log/messages
9。图形的配置用 redhat-config-bind
二。named.conf 举例
/etc/named.conf
第一段 全局配置
options {
directory “/var/named/”;---定义zone保存位置
--选择项forwards;作用把无法解析的 转发给该IP转发 (注意两个分号)
如果 还加入参数 forward only; 那么该机器将指作为一个高速缓存的DNS(即cache dns)
--选择项allow-query; 指定允许 来解析的客户端 IP
如果指定该项 那么 客户机器上设定/etc/resolve.conf 里的DNS地址还不够,还必须 DNS允许其解析,才能解析。
--选择项allow-transfer; 指定 允许复制本 主DNS zone数据的从DNS IP地址
如果选择这项 ,那么在slave dns里的/etc/named.conf里设置是这样的。
zone “example1.com” IN {
type slave;-----指定是从DNS
masters { 192.168.0.254; };该IP是主DNS的IP
file “db.example1-slave”;
};
};
注意:其中IP的写法 如果涉及多个IP,可以用分号间隔,如果是某段IP 用,IP/24(掩码)的方式表示。
…………
zone “example1.com” IN {---域名
type master;
file “example1.com”; -----保存zone数据的文件名,自己定义
allow-update { none; };
-----动态DNS,
allow-update
Specifies which hosts are allowed to submit Dynamic DNS updates to the
server. The default is to deny updates from all hosts.
};
zone “0.168.192.in-addr.arpa” IN { ---反向域名必须以.in-addr.arpa结尾)
type master;
file “db.192.168.0”;
};
三、zone举例
正向:example1.com
$TTL 86400 是文件开头,数字表示默认存活期,用秒计算的
@ IN SOA server1.example1.com. Root.server1.example1.com.
----上句话中 @表示本域名,SOA表示开始定义起始授权,server1.example1.com.表示本区域授权给哪台机器,建议用本机HOSTNAME,root.server1.example.com. 表示管理人员其中root.表示是root@只是@在DNS是本域的意思
(
2003070401;serial 序列号 可以是任何数字,一般:年月日修改数.
----注意每次修改DNS必须修改该数字,修改后的比前要大,否则 不生效。通常可以加1
1H; refresh 是SOA信息的刷新时间.
-----从DNS向主DNS复制数据的时间间隔,最短10分钟,但是我在EL3上测 试是5分钟
1M; Retry是与授权服务器联系的频率.
一旦从DNS查询复制数据失败,下一次重查的时间间隔
1W; Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
----如果在这个时间内还没有联系到主DNS,宣布数据过期
1D ) Minimum 区域中记录的存活时间.
----前提是record没有设TTL,而且DB也没有设的参考
IN NS server1.example1.com. ----NS 作用指定域名服务器,通常是在互连网上注册后的名字。
其中IN前面没有任何文字,意思是自动沿用上一个
和example.com IN NS server1.example1.com. 一样 (必须)
IN A 192.168.0.254 ----A记录,域名和IP的映射 (必须)
server1 IN A 192.168.0.254
station1 IN A 192.168.0.1
www1 IN CNAME server1.example1.com. ----别名(假名)。作用把一个域名设定成另一个域名(可选)
@ IN MX 5 server1.example1.com. ----MX记录 定义本域里的邮件服务器,如果域里有多个邮件服 务器,那么10这个数字决定优先,数字越小越优先。
server1.example1.com IN MX 10 server1.example1.com.
----------------------------------------------------------------------
总结:基本格式如下
格式就是:[domain] [class] <type> <rdata>
[domain]如: server1.example1.com ,www.
Www是简写,实际会默认添上定义这个文件的那个 zone “example1.com”里的
example1.com,即:www=www.example1.com.这个段可以升略不写,默认跟前一行的
[domain]相同.@表示”example1.com”.
[class]一般为internet类,即:IN ,可以省去不写.
<type> 分别有SOA,NS,A,MX,CNAME,及反向数据库里的PTR.
假名不可以放在NS MX 的<rdata>字段.
完整域名后一定要加.号,否则会自动为你加”example1.com”.
三、客户端配置
修改/etc/resolv.conf
添加
nameserver IP(dns ip)
修改 host.conf (可选)
确保order hosts,bind中 host在前,表示先用host解析,再用DNS
即使resolv.conf 中设置了三个以上的DNS,在解析的时候如果前面三个都不起作用,linux也不会再去请求后面的了。
四、补充:
這裡我們只是看看幾個記錄名稱而已﹕
類別名稱 代表意思
TXT 只是一些說明文字﹐可以用來說明主機/網路環境設定
NS 名稱伺服器﹐也就是該zone指定的DNS伺服器名稱
MX 郵件伺服器﹐負責經由DNS查詢進行郵件傳遞的郵件伺服器。這樣的好處是﹕如果您要更換郵件伺服器的話﹐只需修改DNS記錄就可以了﹐而對方的郵件伺服器則無需理會您要使用的究竟是哪一台電腦來負責郵件交換。同時﹐您也可以指定多台郵件伺服器來分擔郵件交換工作﹐在MX後面的號數用來指定伺服器的使用順序﹐ 數字越低越優先。
A 用來對應主機名稱和其IP地址﹐這個記錄最常用﹐而且也是最重要的記錄之一
HINFO 和TXT差不多﹐是回答“Host Information”查詢用的
CNAME 是一個“別名”記錄﹐可以給A記錄使用另外一個(或多個)名稱讓外面查詢。CNAME可以對應一個A記錄﹐但不鼓勵對應另一個CNAME記錄。
AAAA 和A記錄一樣﹐只不過對應的是IP v6 格式
五、验证
驗證DNS工作
當您建立好一個DNS伺服器之後﹐除了可以直接使用命令 ping (這個會在後面章節說明)直接ping一下上面的記錄之外﹐最好還是使用“nslookup”這個命令進行檢測或除錯﹐(Windows9x系統並不包含此命令)。
如果我們先將查詢模式設為any之後﹐再輸入同樣的主機名稱﹕
> set q=any
您就可以看到更多的資料了﹐例如﹕MX﹑NS﹑和它們的IP地址等信息。假如您使用“除錯模式”的話﹐看到的資料還將更多﹗
> set debug
另外﹐您還可以用 set q=mx 或 set q=ptr 等模式來查詢特定的記錄﹐也可以用 ls 後接 domain name 來查看某個 domain 的所有主機記錄。善用 nslookup 我們可以找到許多 DNS 的信息﹐而當有問題發生的時候﹐這個工具就變得非常有用了。
六、关于做轮寻,实现负载均衡
www in A 192.168.0.3
www in A 192.168.0.4
www in A 192.168.0.5
在zone里加入 如上的多条指向 同一个域名 而A记录是不同IP的,可以实现负载均衡。
但无法做到和四层交换意义上的 完全流量一致。
(***听人说可以实现 还望各位 达人指教**)
七、几个值得借鉴的写法
1。直接把某个域名交由另一个解析,用别名
custom21cn.allyes.com. IN CNAME custom21cn.cdn.21cn.com.
2。统配符*的使用
*.sina.allyes.com. IN CNAME allyes.sina.com.cn.
update-policy