linux学习笔记9-DNS服务器

 


DNS简介

什么DNS

名:Domain Name System

用:管理主机的“户籍”--主机名:IP

一个分布式数据系统

DNS服务器的起源

早的主机解析,依靠hosts文件,由NIC(Network Information Center)维护,后来主机数量变得非常庞大,网络越来越得复杂,就产生了DNS服务器

DNS的结构

用术语

DNS服务器:提供域名解析服务的主机

DNS客户机:需要查询主机域名信息的主机,任何联网的主机都需要查询域名,所以任意主机都是DNS客户机。DNS客户机需要知道DNS服务器在哪里,Linux/etc/resolv.conf指定。

向解析:根据主机名称解析IP地址

反向解析:根据IP地址解析主机名称

DNS解析流程

使chinaitlab.com域名服务器解析www.chinaitlab.com

务器软件的安装

BIND

bind http://www.isc.org

http://ftp.isc.org/isc/bind9/9.4.3/bind-9.4.3.tar.gz

编译安装

tar xvzf bind-9.4.3.tar.gz

cd bind-9.4.3

./configure --sysconfdir=/etc

make

make install

vi /etc/named.conf

vi /var/named/domain.com.zone

named

配置文件

options { directory “/var/named”; };

zone “.” {

type hint;

file “named.ca”;

};

zone “localhost” {

type master;

file “named.local”;

};

服务器

/etc/named.conf

zone “.” {

type hint;

file “named.ca”;

};

named.ca文件:

echo “nameserver IP” > /etc/resolv.conf可以通过合法IP192.168.0.1来上网

dig -t NS .

dig -t NS . > /var/named/named.ca

more /var/named/named.ca

RNDC控制服务器

1.产生rndc控制文件

rndc-confgen > /etc/rndc.conf

tail +13 /etc/rndc.conf >> /etc/named.conf

2.启动named服务器,监视/var/log/messages

named

tail /var/log/messages

rndc和解析的效果

rndc status

echo “nameserver 127.0.0.1” > /etc/resolv.conf

host www.chinaitlab.com

加本地域

zone “localhost” {

type master;

file “named.local”;

};

vi /var/named/named.local

@ 1D IN SOA localhost. Root (

//@表示zoneroot@localhost.也就是说这个域出了问题应该发邮件给root, 但是有@就只能用root.localhost.又有@,可以简写成root 1D表示SOA本身的记录的生存期限是1

2004081201 //serial

1H //1小时refresh

15M //15分钟retry

1W //1expire

1D ) //1TTL

IN NS @ //这里应该写成localhost. IN NS localhost. 又可以@ IN NS @ 又因为前面己有@所以可以写成IN NS @

IN A 127.0.0.1

//这里应该写成localhost. IN A 127.0.0.1 又可以@ IN A 127.0.0.1 又因为前面己有@所以可以写成IN A 127.0.0.1

测试

rndc reload

host localhost

加一个正向区

/etc/named.conf

zone "chinaitlab.com" {

type master;

file "chinaitlab.com.zone";

};

vi /var/named/chinaitlab.com.zone

www IN A 192.168.0.101

mail IN A 192.168.0.101

dns IN A 192.168.0.101

...

向区文件

@ IN SOA chinaitlab.com root.chinaitlab.com. (

2004081201 ;serial

36000 ;refresh

7200 ;retry

3600000 ;expire

86400 ) ;TTL

IN NS ns.chinaitlab.com.

IN MX 10 mail.china.com.com.

ns IN A 192.168.0.101

www IN A 192.168.0.101

mail IN A 192.168.0.101

news IN CNAME www

调试

重起服务器

rndc reload

tail /var/log/messages

测试解析

host -t SOA chinaitlab.com

host -t NS chinaitlab.com

host www.chinaitlab.com

host news.chinaitlab.com

dig www.chinaitlab.com

echo "search chinaitlab.com" >> /etc/resolv.conf //表示DNS默认搜索域的范围,作为后缀出现

host www

more /etc/resolv.conf

nameserver 127.0.0.1

search chinaitlab.com


主要的配置过程总结

首先在主文件里面加一个新的区

more /etc/resolv.conf

先指名一个域,再指名类型,及维护的数据库文件名

建区文件

more /var/named/chinaitlab.com.zone

$TTL 1D定义一个全局的生存期限

$origin chinaitlab.com.定义全局的默认域的后缀,可要可不要


127.0.0的反向区

vi /etc/named

zone "0.0.127.in-addr.arpa" { //0.0.127网段后面是网段的反向地址

type master;

file "127.0.0.zone";

};

vi /var/named/127.0.0.zone

more /var/named/127.0.0.zone

@ IN SOA @ root.localhost. ( 2004081201 1H 15M 1W 1D )

//这里的@表示反向区名0.0.127.in-addr.arpa. 管理员地址root.localhost.

IN NS localhost.

//NS记录指向自己的服务器,表示当前反向区的DNS服务器是localhost

1 IN PTR localhost.

//1表示区的IP地址127.0.0.1 也可以写成1. 0.0.127.in-addr.arpa

rndc reload

host 127.0.0.1

dig -x 127.0.0.1

dig -t PTR 1.0.0.127.in-addr.arpa

增加一个反向区

vi /etc/named.conf

zone "0.168.192.in-addr.arpa" {

type master;

file "192.168.0.zone";

};

vi /var/named/192.168.0.zone

vi /var/named/192.168.0.zone


@ IN SOA chinaitlab.com. root.chinaitlab.com. (

2004081201

36000

7200

3600000

86400 )

IN NS chinaitlab.com.

101 IN PTR www.chinaitlab.com.

102 IN PTR ftp.chinaitlab.com.

103.0.168.192.in-addr.arpa. IN PTR mail.chinaitlab.com.

子域授权

主服务器的vi /var/named/chinaitlab.com.zone

domain IN NS ns.domain

(domain.chinaitlab.com IN NS ns.domain.chinaitlab.com)

ns.domain IN A 192.168.0.101 把子域 domain.chinaitlab.com 授权给 192.168.0.101主机

也可以写成

domain IN NS domain

IN A 192.168.0.101

ping 192.168.0.101

vi /etc/named.conf //在子域服务器192.168.0.101主机上添加新的区

zone "domain.chinaitlab.com" {

type master;

file "domain.chinaitlab.com.zone";

};

子域服务器的区文件domain.chinaitlab.com.zone

vi /var/named/domain.chinaitlab.com.zone

$TTL 1D

@ IN SOA @ root ( 2004081201 1H 15M 1W 1D )

IN NS ns

ns IN A 192.168.0.101

www IN A 192.168.0.200

测试

host ns.domain.chinaitlab.com

host www.domain.chinaitlab.com

同时在主域服务器也能查到

host ns.domain.chinaitlab.com

host www.domain.chinaitlab.com

辅助域名服务器

host -t SOA chinaitlab.com确认主服务器可以解析到chinaitlab.com信息

在输助域名服务器上配置同步

主配置文件/etc/name.conf

zone "chinaitlab.com" {

type slave;

file "chinaitlab.com.zone";

masters { 192.168.0.101; };

};

ls -ld /var/named/

ps aux |grep named

chmod g+w /var/named改变成可写,才能从主域名服务器同步数据库到辅助域名服务器

ls /var/named可以看到 chinaitlab.com.zone,说明同步成功

子域服务器如何刷新主域服务器的数据库?

是靠

2004081201 ;serial需手工改动编号

36000 ;refresh1小时刷新一次,如果发生变化则同步(1 hour)

900 ;retry 表示若同步失败,则隔15分钟尝试一次(15 minutes)

604800 ;expire 表示一个星期都尝试失败就放弃尝试(1 week)

86400 ;TTL mininum最小生存期限 (1 day)

来同步的

安全管理与控制

希望named以普通身份执行,要建一个named身份的权限

因为普通用户执行守护进程的时间需要写ls /var/run/这个目录,这个目录包涵的是每个进程的pid进程文件,而普通用户是无权写ls /var/run/目录的

首先vi /etc/named.conf指定自己的特定的pid文件

options {

directory "/var/named";

pid-file "/var/run/named/named.pid";

};


useradd -s /bin/false -d /dev/null named 不让named用户使用shell,也不让它有home目录

ls /home/

id named

mkdir /var/run/named

chown named.named /var/run/named /var/run/named赋给named.named

chmod 700 /var/run/named 保证named可以写这个目录

killall -9 named

named -u named 表示以named身份执行

tail /var/log/messages查看日志有没有错误

ps aux | grep named查看是否以named身份执行

为了保证每次服务器启动都是以这个方式执行

which named查看name命令路径

echo "/usr/local/sbin/named -u named" >> /etc/rc.local 把命令追加到/etc/rc.local,开机自动运行

同时在辅助域名服务器ls -ld /var/named目录也要让named可写

常用配置选项

options {

directory “/var/named”; 默认数据库存放位置

forwarders {192.168.0.101;};如果不能解析就转发给谁

allow-transfer {192.168.0.101;};允许某个地址同步你的数据库,控制辅助域名服务品

allow-query {192.168.0/24;};允许查询的客户机的查询范围

};

zone “chinaitlab.com” {

type master;

file “chinaitlab.com.zone”;

allow-transfer { “192.168.1.1”; };

};

配置过程

vi /etc/namd.conf

more /etc/rndc.conf rndc-confgen产生

ls /var/named

dig -t NS .把主域服务器找同步到本地服务器

如果要更新主域服务器的数据库要手工修改主域服务器的序列号

否则辅助域名服务器不知道主域服务器发生过变化




实验

wget http://ftp.isc.org/isc/bind9/9.5.0-P2/bind-9.5.0-P2.tar.gz

rm -rf bind-9.4.3.tar.gz

tar zxvf bind-9.5.0-P2.tar.gz

cd bind-9.5.0-P2

./configure –sysconfdir=/etc

make

make install

ls /usr/local/bin/应用程序安装位置

ls /usr/local/sbin/服务器程序安装位置

vi /etc/named.conf

more /etc/named.conf

options {

directory "/var/named";

};

zone "." {

type hint;

file "named.ca";

};

echo "nameserver 192.168.0.101" > /etc/resolv.conf

dig -t NS.挖掘根目录的DNS服务器 -t表示类型,有NSA类型

echo "nameserver 192.5.5.241" > /etc/resolv.conf

dig -t NS . > /var/named/named.ca

named

rndc status

ps aux | grep named

tail /var/log/messages

nameserver 127.0.0.1

named

/usr/local/sbin/rndc-confgen > /etc/rndc.conf

cat -n /etc/rndc.conf打印出行数

tail +13 /etc/rndc.conf >> /etc/named.conf从文件的最后13行追加到/etc/named.conf

vi /etc/named.conf

:.,$-1s/^#/ //

:.表示当前行,表示到那里$表示到最后一行-1表示倒数第二行

s表示替换/^#/ 行首的#,空格用转义字符/ //表示删除 

killall -9 named 杀死named进程

named重启DNS

ps aux | grep named查看named进程

rndc status查看named状态

more /etc/resolv.conf 确认一下目前的DNS是自己

nameserver 127.0.0.1

host www.chinaitlab.com如果能找到IP地址说明我们解析成功

我们用户环境总是有个主机localhost

要取替more /etc/hosts文件,要为localhost解析,要把localhost域加进DNS

在用host localhost解析不到

dig host都是把域发你指定的nameserver来查询的

vi /etc/named.conf

zone "localhost" {

type master;

file "named.local";

};

vi /var/named/named.local



@ 1D IN SOA localhost. root (

2004081201

1H

15M

1W

1D )

IN NS @

IN A 127.0.0.1

killall -9 named

named

host localhost

dig localhost

dig -t NS localhost

dig -t A localhost

host -t NS localhost

host -t A localhost

加一个新域 chinaitlab.com

vi /etc/named.conf

zone "chinaitlab.com" {

type master;

file "chinaitlab.com.zone";

};

more /var/named/chinaitlab.com.zone

@ 1D IN SOA chinaitlab.com. root (

2004081201

1H

15M

1W

1D )

IN NS ns

IN MX 10 mail

ns IN A 192.168.0.101

wwww IN A 192.168.0.103

mail IN A 192.168.0.104

news IN CNAME www

调试

rndc reload

tail /var/log/messages 查看日志有没有错误

more /var/named/chinaitlab.com.zone

@ 1D IN SOA chinaitlab.com. root (

2004081201

1H

15M

1W

1D )

IN NS @

IN A 192.168.0.101

IN MX 10 mail

www IN A 192.168.0.101

mail IN A 192.168.0.101

news IN CNAME www



host chinaitlab.com

host www.chinaitlab.com

more /var/named/chinaitlab.com.zone

@ 1D IN SOA chinaitlab.com. root (

2004081201

1H

15M

1W

1D )

IN NS @

IN A 192.168.0.101

IN MX 10 mail

www IN A 192.168.0.101

mail IN A 192.168.0.103

ftp IN A 192.168.0.102

news IN CNAME www

host -t NS chinaitlab.com 查看 chinaitlab.comDNS是谁

host -t A chinaitlab.com 查看A记录

测试工具

host -t SOA chinaitlab.com

host -t NS chinaitlab.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值