域名系统(DNS.Domain name system)在TCP/IP结构的网络中是一种很重要的服务,它用于将易于记忆的域名和不易记忆的IP地址进行转换。承担DNS解析任务的网络主机被称为DNS服务器(DNS SERVER)。建立一台DNS SERVER需要以下条件:
1、一个IP地址
2、域名
3、网络连接(不包括用调制解调器进行的连接)
首先运行netconfig命令
给linux系统指定一个ip地址。
第一项:ip地址 (在这里我设定成为10.0.0.15)
第二项:子网掩码
第三项:默认网关
第四项:nameserver
修改后运行/etc/init.d/network restart 生效
察看ip运行 ifconfig
named 基于BIND(Berkeley Internet Name Domain)建立
服务器关键配置文件
/etc/named.conf
/var/named/chroot/var/named/*
相关配置文件:
/etc/nsswitch
这里面的hosts这项觉得域名搜索顺序:例如:hosts: files dns
这代表先搜索/etc/hosts后搜索named配置
/etc/sysconfig/network
修改/etc/sysconfig/network
给机器定义计算机名 格式:pcname.domainname.com/net/...
这里我给你大家定义成rain.fish.com我的域名就是fish.com
这个配置文件修改以后需要重新启动才能生效
所以为了同步我们用下面这个命令完成生效:hostname rain.fish.com
好了现在我们运行hostname就可以察看。
/etc/resolv.conf
这里修改我们的dns地址如果要用本机测试的话。就把nameserver修改成为自己机器的ip地址。例如
nameserver 10.0.0.15
下面开始正式配置dns服务器:
1:修改named.conf
vi /etc/named.conf
定义域: 加入正反向搜索
如下:
zone "fish.com" IN { #正向搜索
type master;
file "fish.com.zone"; #定义正向搜索的文件
};
zone "0.0.10.in-addr.arpa" IN { #反向搜索
type master;
file "fish.com.local"; #定义反向搜索的文件
};
2:cd /var/named/chroot/var/named
注意:如果是红帽九路径是/var/named
然后我们可以拷贝模板文件
正向: cp localhost.zone fish.com.zone -p #注意-p 如果没有这个参数就要多执行一步chown named.named fish.com.zone
反向: cp named.local fish.com.local -p #同上chown named.named fish.com.local,目的是把文件的属主属组改成named
然后我们开始修改fish.com.zone
初始如下:
$TTL 86400
@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A 127.0.0.1
IN AAAA ::1
下面我们来修改(保持原有格式不要变化):
$TTL 86400
@ IN SOA fish.com. root.fish.com. ( #将原有的@改成fish.com.(主机名) 将原有的root修改为root.fish.com.
42 ; serial number #将42随便更改一个数字如43,不改有可能不能生效
3H ; refresh
15M ; retry
1W ; expiration
1d) ; minimum
IN NS rain.fish.com. #dns主机名
IN NS 10.0.0.15. #dns ip
IN MX 10 mail.fish.com. # 邮件服务器定义
IN A 10.0.0.15 #域名纪录(A 纪录)
#这条看起来是空的,但他解析的fish.com
www IN A 10.0.0.15 #域名纪录(A 纪录)
ns IN A 10.0.0.15 #下面多个域名都指向10.0.0.15因为我们做测试
ftp IN A 10.0.0.15 #将来还有很多服务器都要使用这台机器
mail IN A 10.0.0.15 #您可以根据您的要求自己定义
下面给您不+注释的纪录(跟上面内容一样,方便您修改)
$TTL 86400
@ IN SOA rain.fish.com. root.fish.com. (
43 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS rain.fish.com.
IN NS 10.0.0.15.
IN MX 10 mail.fish.com.
IN A 10.0.0.15
www IN A 10.0.0.15
ns IN A 10.0.0.15
ftp IN A 10.0.0.15
mail IN A 10.0.0.15
下面修改反向:
vi fish.com.local
最后修改成如下:
$TTL 86400
@ IN SOA rain.fish.com. root.fish.com. (
1997022701 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS rain.fish.com.
15 IN PTR fish.com.
15 IN PTR www.fish.com.
15 IN PTR ftp.fish.com.
15 IN PTR mail.fish.com.
这时就算dns配置完毕.
重新启动named服务 /etc/init.d/named restart
15.0.0.10.in-addr.arpa name = fish.com.
15.0.0.10.in-addr.arpa name = mail.fish.com.
15.0.0.10.in-addr.arpa name = ftp.fish.com.
15.0.0.10.in-addr.arpa name = www.fish.com.
说明反向正常
补充:
1、Caching Only DNS Server 客户端向缓存DNS服务器申请DNS资源纪录时,如果本地缓存中存在DNS资源纪录,则解析;如果不存在,将请求转发到另外一台DNS服务器,得到结果后返回给客户端,并且将新的DNS资源纪录写入缓存全局设置Option中,加入:forwarders { dnsserverip; };forward only;
2、Slave DNS Server辅DNS服务器用来复制主DNS服务器的资源纪录,并提供给客户端做查询,辅DNS的资源纪录在规定的时间内随着主DNS服务器的资源纪录而变化修改/etc/named.conf加入如下定义域zone "fish.com" IN { #设置主区域名称 type slave; #类型为slave master { masterdnsip; }; #指定master dns IP地址 file "fish.com.zone"; #设置域文件名称};
zone “0.0.10.in-addr.arpa" IN { type slave; master { masterdnsip; }; file “0.0.10.in-addr.arpa.zone"; };注意事项: 辅DNS服务器从主DNS服务器下载资源纪录后,需要在/var/named/chroot/var/named目录中写文件,用来记录资源纪录,但是运行DNS服务器的用户是named对此目录没有写权限,所以需要更改目录权限。
扩展部分(DNS负载均衡)环境分析:由于公司web服务器访问量过多,服务器压力过大,所以我们准备在加入3台web服务器。www.fish.com IN 0 A 10.0.0.40www.fish.com IN 0 A 10.0.0.41www.fish.com IN 0 A 10.0.0.42www.fish.com IN 0 A 10.0.0.43