DNS笔记&主从服务器搭建实验

DNS笔记  DNS正反主从服务搭建

==========================理论部分=========================

DNS:Domain Name Service协议,属于应用层协议

使用端口53/TCP  53/UDP

作用:提供域名和IP的解析服务,在互联网中属于非常重要的基础服务

.  根域

.com  .edu  .gov  .org  等等  顶级域,用来指示某个国家或地区或组织使用的名称类型

baidu.com  qq.com    等等,二级域名,个人或者组织在互联网上使用的的注册名称

正向解析:将域名解析为IP

反向解析:将IP解析为域名

注意:正向解析和反向解析是两个不同的名称空间,两颗不同的解析树

DNS查询类型

迭代查询  interration

一次,客户机把查询请求发送给DNS,剩下的由DNS来去查询,返回最终结果

递归查询  recursion

多次,查询请求发送给DNS,DNS告诉客户机应该找谁谁谁去查询,然后客户机自己一级级的找

DNS服务器类型:

主DNS

从DNS

缓存DNS

转发器

主DNS:维护所负责的域内解析库,由管理员来维护

从DNS:从主DNS服务器那里或者其他的DNS服务器那里“复制”一份(区域传送)解析库文件

序列号:解析库的版本号,解析库内发生变化,手动增加版本号

刷新时间:主、从服务器同步时间间隔

重试时间:请求失败后,再次请求同步的时间间隔

过期时间:从DNS始终联系不到主DNS服务器,多久后放弃服务器角色停止提供服务

“通知”机制:主DNS更新解析库后,主动通知从DNS进行同步更新

区域传送:

全量传送:传送整个解析库

增量传送:传送变化的部分

FQDN:full qualified domain name 完全合格域名

www.magedu.com.

DNS查询解析过程:

1)客户机提交域名解析请求,并将该请求发送给本地的DNS服务器(提交之前会检查hosts文件)

2)本地DNS会查找本地缓存中有没有,有就返回结果给客户机,没有就把请求发送给根服务器(客户机-->本地DNS :迭代查询)

3)根名称服务器返回给本地DNS服务器一个所查询到的顶级域名服务器的地址(递归查询)

4)本地DNS服务器,再像返回的顶级域名服务器发起请求(递归查询)

5)收到该查询请求的顶级域名服务器查询缓存,有结果则返回,没有结果,则返回下级的域名服务器地址

6)可能要重复上个动作,直至本地DNS查询到结果,最后将结果缓存本地并告知客户机结果

解析答案:

肯定答案:正确解析请求内容

否定答案:请求的条目不存在等原因无法返回结果

权威答案:DNS服务器在自己的区域文件中找到了客户机要查询的记录,返回的就是权威答案

非权威答案:DNS服务器在自己的区域文件中没有找到客户机要的结果,而是通过递归的方法找到结果返回给客户机,这个答案就是非权威答案

区域解析库,由众多RR组成

资源记录 resource record

记录类型  A AAAA CNAME NS SOA MX PTR 等

SOA

Start Of Authority起始授权记录,一个区域解析库中有且只能有一个SOA记录,而且必须出现在解析库的第一条

A

Internet Address,作用将FQDN-->IP

AAAA

ipv6,FQDN-->IP

PTR

PoinTeR  IP-->FQDN 反向解析

NS

Name Server,当前区域的DNS服务器

CNAME

Canonical Name 别名记录

MX

Mail eXchanger 邮件交换记录

资源记录定义的格式:

语法:name  [TTL] IN  RR_TYPE  value

注意:TTL可从全局继承,@ 可引用当前区域的名字

SOA记录格式:

name  当前区域的名称,例如"magedu.com."

value  有多部分组成

1)当前区域的主DNS的FQDN,也可以使用当前区域的名称,简写@

2)当前区域管理员邮箱地址,但地址中不能使用@,一般使用.代替,例如:[email protected] -->  admin.magedu.com

3)[主从服务协调属性的定义以及否定答案的统一TTL]

例如:

magedu.com.  IN  SOA  ns1.magedu.com. mail.magedu.com. (

20151216001; //序列号

2H;          //刷新时间

10M;         //重试时间

1W;          //过期时间

1D;          //否定答案的TTL

)

NS格式:

name  当前区域的名字

value  当前区域主DNS的FQDN,如"ns1.magedu.com."

注意:一个区域中可以有多个NS记录

例如:

magedu.com.  IN  NS  ns1.magedu.com.

IN  NS  ns2.magedu.com.    //如果前面不写名字,则是继承前面的名称

注意:

1)相邻的的连个资源记录name相同时,后面的可省略

2)对NS记录而言,任何一个NS记录后面的服务器名字,都应该有一条A记录  (glue record 粘合记录)

MX

name  当前区域的名字

value  当前区域的某邮件服务器(SMTP服务器)的主机名

一个区域内,MX记录可有有多个,但每个value之前都应该有个0-99的数字,表示优先级,数字越小优先级越高

例如:

magedu.com. IN MX 10 smtp1.magedu.com.

IN MX 20 smtp2.magedu.com.

注意:对于MX而言,任何一个MX记录后面的服务器名字,都应该有一条A记录

A

name  某主机的FQDN,如"www.magedu.com."

value  主机对应的IP地址

例如:

www.magedu.com.   IN   A   172.20.1.34

注意:

1)同一个名字可以有多个不同的值,但需要有多条记录来实现(轮询解析)

2)同一个值可以有多个不同的名字,通过多个名字来实现,多条记录

3)可以使用泛域名解析

如:  *.magedu.com.  IN  A  10.1.1.1

magedu.com.  IN  A  10.1.1.1

避免用户写错名称时给出错误答案,可使用泛域名来指向至某特定地址

AAAA

name  FQDN

value  IPV6

PTR

name  IP,有特定的格式,要把IP反过来写,如172.16.100.1要写成1.100.16.172,而且要有特定后缀in-addr.arpa.

value  FQDN

例如:

1.100.16.172.in-addr.arpa.  IN  PTR  www.magedu.com.

可简写,网络地址可省,仅写主机地址,如192.168.1.1/24  192.168.1  可省

1   IN  PTR    www.magedu.com.

注意:网络地址及后缀可省,但主机地址依然要反着写

CNAME

name  别名的FQDN

value  正式名字的FQDN

例如;

web.magedu.com.  IN  CNAME  www.magedu.com.

bind部分

子域授权:

每个域名称服务器,都是通过上级名称服务器在解析库进行授权

bind的安装配置:

程序包叫bind,程序名叫named,由主包和多个支包组成

bind

bind-utils

bind-lib

bind-chroot  不建议安装

bind

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf   /etc/named.rfc1912.zones   /etc/rndc.key

解析库文件:/var/named/ZONE_NAME.zone

注意:

1)一台物理服务器可以同时为多个区域提供解析

2)必须要有根区域   named.ca

3)应该有两个(如果使用IPV6,应该更多)实现localhost和本地回环地址的解析库

rndc:remote name domain controller  默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程,提供辅助性的管理

端口:953/TCP

主配置文件:/etc/named.conf

全局配置options{}

里面定义了监听地址、端口、解析库路径等

日志子系统配置logging{}

根"."  type hint  file named.ca     //named.ca在/var/named/下,是个相对路径

区域定义:本机能够为那哪些zones进行解析,就要定义那些zone

zone "ZONE_NAME"  in {}

缓存名称服务器的配置:

编辑/var/named.conf

关闭dnssec: dnssec-enable   no

all-query   允许那些主机查询   { any; }

recursion  yes ;  允许递归

listen-on port 53 { 监听的IP(本机IP); 127.0.0.1; };

主DNS服务器的配置:

1、在缓存名称服务器的基础上,编辑/etc/named.rfc1912.zones(在/etc/named.conf中有写:include "/etc/named.rfc1912.zones";)添加区域

格式:

zone "ZONE_NAME"  IN {

type  { master|slave|hint|forward };

file  "ZONE_NAME.zone";   文件名要用引号引起来,否则语法错误

};

如:

zone "magedu.com" IN {

type master;

file "magedu.com.zone";

};

2、定义区域解析库文件:/var/named/

/var/named/下手动建立

宏定义:变量定义,自动引用

$TTL 86400    单位是秒,也就是1天 1D

$ORIGIN magedu.com.   区域名的宏定义

@ IN SOA ns1.magedu.com.  mail.magedu.com. (

20151216001   序列号

1H            刷新时间

5M            重试时间

7M            过期时间

1D              否定答案的TTL

)

IN  NS  ns1.magedu.com.   .magedu.com.  可省略

IN  NS  ns2                 省略写法

IN  MX  10  mx1

IN  MX  20  mx2

ns1  IN  A  1.1.1.1

ns2  IN  A  1.1.1.2

mx1  IN  A  1.1.1.1

mx2  IN  A  1.1.1.2

www  IN  A  1.1.1.3

web  IN  CNAME  www

*   IN  A   1.1.1.5

IN A 1.1.1.5

named-checkconf 命令,检查配置文件语法错误

named-checkzone "ZONE_NAME"  /var/named/ZONE_NAME.zone 检查区域解析库

named-checkzone "magedu.com" /var/named/magedu.com.zone

区域解析库文件创建好以后,记得修改权限和属组

chmode 640 ZONE_NAME.zone

chown  :named ZONE_NAME.zone

dig 命令

格式;dig [@server] [-t type] name

注意;dig测试DNS系统,因此不会检查hosts文件

查询选项;

+[no]trace      跟踪解析过程

+[no]recurce    进行递归解析

host命令

格式:host  [-t type] name [server]

nslookup命令

交互式

nslookup>

server IP     设置使用那台DNS进行查询

set q=RR_TYPE

NAME            解析名称

反向解析:

区域名称:网络地址反写.in-addr.arpa.

172.16.1 --> 1.16.172.in-addr.arpa.

1、定义区域

zone "ZONE_NAME" IN {

type {master|slave|forward};

file "网络地址.zone";

};

2、提供区域解析文件

注意;不需要MX A AAAA,以PTR记录为主

如:

$TTL 86400

$ORIGIN 1.16.172.in-addr.arpa.

@ IN SOA ns1.magedu.com. mail.magedu.com. (

20151216001

1H

5M

1w

1D

)

IN  NS  ns1.magedu.com.  需要全写,不能像正向中省略,前面有ORIGIN定义,省略了就变成了ns1.1.16.172.in-addr.arpa.

IN  NS  ns2.magedu.com.

33  IN  PTR  ns1.magedu.com.

34  IN  PTR  ns2.magedu.com.

33  IN  PTR  mail.magedu.com.

注意:依然记得要修改权限和属组

测试反向解析:

dig -x IP @SERVER

模拟区域传送

dig -t axfr magedu.com  @172.20.1.33  全量查询

dig  -t  axfr 1.20.172.in-addr.arpa @172.20.1.33  反向的全量查询

主从复制:

定义从区域服务器的方法

zone "ZONE_NAME" IN {

type slave;

masters { master_ip; };

file "slaves/ZONE_NAME.zone";

};

正向的从服务器:/etc/named.rfc1912.zones

zone  "magedu.com" IN {

type slave;

master { 172.20.1.33; };

file "slaves/magedu.com.zone";  slaves目录也是相对于/var/named/,slaves目前权限预先定义好了

};

注意:在主DNS服务器中一定要有ns2.magedu.com.(即从服务器)而且得有ns2的A记录,否则DNS有更新记录时,不会通知到各个从DNS服务器更新

主从复制时注意事项:

1)应该为一台独立的名称服务器

2)主服务的区域解析库中必须有NS记录指向从服务器

3)从服务器只需要定义区域,而无需提供解析库文件,同步的解析库文件放置在/var/named/slaves/下

4)主DNS服务器允许从服务器作区域传送

5)主从服务器时间应该同步,可使用ntp工具进行

6)bind版本应保持一致,否则应该从高主低

反向的从服务器:/etc/named/named.rfc1912.zones

zone "1.20.172.in-addr.arpa" IN {

type slave;

masters { 172.20.1.33; };

file "slaves/172.20.1.zone";

};

rndc命令

953/TCP

格式:rndc COMMAND

COMMAND:

reload  重新加载配置文件和解析库文件

reload zone 重新加载区域解析库文件

retranster zone 手动启动区域传送过程,而无需增加序列号

notify zone 重新对区域传送发通知

reconfig  重新加载配置文件

querylog  开启或关闭查询日志,一般不开启,除非用来定位错误

trace LEVEL  开启程序debug,调试级别越高,记录越详细,0为不开启,正常情况下不应该开启

status  查看运行状态

=========================实验部分========================

规划:

172.20.1.33和172.20.1.34,其中

1.33为正向解析,从服务器为1.34

1.34为反向解析,从服务器为1.33

1.33正向DNS配置:

yum安装bind过程略

#yum install -y bind 即可

编辑配置文件 #vim /etc/named.conf

修改:

options {

listen-on port 53 { 172.20.1.33; 127.0.0.1; };  修改,增加监听本机IP

//      listen-on-v6 port 53 { ::1; };          注释掉IPV6

directory       "/var/named";

dump-file       "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { any; };   修改,允许所有查询

recursion yes;

dnssec-enable no;       修改,禁止dnssec

//      dnssec-validation yes;      注释

//      dnssec-lookaside auto;      注释

/* Path to ISC DLV key */   注释

//      bindkeys-file "/etc/named.iscdlv.key";      注释

//      managed-keys-directory "/var/named/dynamic";    注释

};

编辑/etc/named.rfc1912.zones

增加:

zone "linuxtest.com" IN {

type master;

file "linuxtest.com.zone";

};

新建linuxtest.com的解析库

vim  /var/named/linuxtest.com.zone

内容:

$TTL 86400

$ORIGIN linuxtest.com.

@ IN SOA ns1.linuxtest.com.  wkp.linuxtest.com. (

20151217001

1H

5M

1W

1D

)

IN NS ns1.linuxtest.com.

IN NS ns2.linuxtest.com.

ns1     IN A 172.20.1.33

ns2     IN A 172.20.1.34

www     IN A 172.20.1.33

web     IN CNAME www

mail1   IN A 172.20.1.33

mail2   IN A 172.20.1.34

@       IN MX 10 mail1

IN MX 20 mail2

修改区域解析库文件权限

[[email protected] named]# chmod 640 linuxtest.com.zone

[[email protected] named]# chown :named linuxtest.com.zone

至此,主DNS正向解析部分已完成,下面是在1.34上做从DNS

修改主配置文件:  /etc/named.conf

options {

listen-on port 53 { 172.20.1.34; 127.0.0.1; };

//      listen-on-v6 port 53 { ::1; };

directory       "/var/named";

dump-file       "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { any; };

recursion yes;

dnssec-enable no;

//      dnssec-validation yes;

//      dnssec-lookaside auto;

/* Path to ISC DLV key */

//      bindkeys-file "/etc/named.iscdlv.key";

//      managed-keys-directory "/var/named/dynamic";

};

修改配置文件/etc/named.rfc1912.zones

添加:

zone "linuxtest.com" IN {

type slave;

file "slaves/linuxtest.com.zone";

master { 172.20.1.33;  };

};

注意:实验时可关闭iptables,或者允许53/TCP,时间也要同步,否则可能会出现不能同步的情况

在1.34上做反向解析的主DNS

修改配置文件:vim  /etc/named.rfc1912.zones

添加:

zone "1.20.172.in-addr.arpa" IN {

type master;

file "172.20.1.zone";

};

添加解析库文件/var/named/172.20.1.zone

$TTL 86400

$ORIGIN 1.20.172.in-addr.arpa.

@ IN SOA ns2.linuxtest.com. wkp.linuxtest.com. (

20151218001

1H

5M

1W

1D

)

IN NS ns1.linuxtest.com.

IN NS ns2.linuxtest.com.

33      IN PTR ns1.linuxtest.com.

34      IN PTR ns2.linuxtest.com.

33      IN PTR mail1.linuxtest.com.

34      IN PTR mail2.linuxtest.com.

修改权限以及属组

[[email protected] named]# chown :named 172.20.1.zone

[[email protected] named]# chmod 640 172.20.1.zone

[[email protected] named]# rndc reload

重读配置文件和解析库

测试解析:

[[email protected] named]# dig -x 172.20.1.33 @172.20.1.34

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -x 172.20.1.33 @172.20.1.34

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22105

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:

;33.1.20.172.in-addr.arpa.INPTR

;; ANSWER SECTION:

33.1.20.172.in-addr.arpa. 86400INPTRns1.linuxtest.com.

33.1.20.172.in-addr.arpa. 86400INPTRmail1.linuxtest.com.

;; AUTHORITY SECTION:

1.20.172.in-addr.arpa.86400INNSns2.linuxtest.com.

1.20.172.in-addr.arpa.86400INNSns1.linuxtest.com.

;; ADDITIONAL SECTION:

ns1.linuxtest.com.86400INA172.20.1.33

ns2.linuxtest.com.86400INA172.20.1.34

;; Query time: 1 msec

;; SERVER: 172.20.1.34#53(172.20.1.34)

;; WHEN: Fri Dec 18 15:15:42 2015

;; MSG SIZE  rcvd: 157

在1.33上做反向解析的从服务器

修改主配置文件:vim /etc/named.rfc1912.zones

zone "1.20.172.in-addr.arpa" {

type slave;

file "slaves/172.20.1.zone";

masters { 172.20.1.34; };

};

[[email protected] named]# rndc reload

server reload successful

[[email protected] named]# tail /var/log/messages

在日中中可以看到同步的日志消息

[[email protected] named]# ll /var/named/slaves/

总用量 4

-rw-r--r-- 1 named named 456 12月 18 15:20 172.20.1.zone

解析库文件已存在,同步成功。

DNS笔记&主从服务器搭建实验

时间: 2024-10-11 00:00:34

DNS笔记&主从服务器搭建实验的相关文章

Centos6.5配置DNS的主从服务器

DNS:主机地址--IP地址实验:IP 地址:master:172.16.100.101/24slave: 172.16.100.102/24区域:ynsc.com主机解析:www.ynsc.com --172.16.100.101ftp.ynsc.com --172.16.100.102mail.ynsc.com --172.16.100.103dns.ynsc.com --172.16.100.101实验步骤:/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,

LINUX 6作为DHCP服务器搭建实验—— 使用DHCP中继链路

LINUX 6作为DHCP服务器搭建实验-- 并使用DHCP中继链路 - -----------------------------------DHCP------------------------------------------- DHCP中继代理 --帮助DHCP服务的广播跨越VLAN - DHCP的分配方式:1.自动分配:分配到一个IP地址后永久使用2.手动分配:由DHCP服务器管理员专门指定IP地址3.动态分配:使用完后释放该IP,供其他客户机使用 - DHCP的优点:1.减少管理

实战录&#160;| Redis的主从服务器搭建

<实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全平台工程师田全磊,将带来Redis的主从服务器搭建. Redis是一个简单快捷的key-value存储系统.它提供了丰富的数据存储结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.同时Redis提供还对这些数据结构的丰富操作. Redis哨兵模式介

DNS之主从服务器的构建和dig命令的使用

一般来说我们的DNS服务器为了安全不能对所有用户(如通过互联网访问的用户)进行递归,否则DNS服务器容易受到攻击,很不安全 用户请求有以下几种: 有主机通过互联网请求本地NS管理的主机(如ns1.fade.com)的权威答案,应该给予响应(此处不是递归) 有主机从互联网请求本地没有的主机(如请求www.baidu.com 此处是递归 )则不应该给予响应 本地用户通过本地的NS请求www.baidu.com的解析(此处是递归),但应该给予响应 #vim /etc/named.conf option

linux-第十二课时笔记-[FTP服务器搭建]-[本地FTP]-[02]

FTP本地服务器搭建 yum安装vsftpd服务: [[email protected] ~]# yum -y install vsftpd 创建本地两个用户: [[email protected] ~]# useradd test1 [[email protected] ~]# useradd test2 [[email protected] ~]# echo "123" | passwd --stdin test1 &> /dev/null [[email prote

mysql主从服务器搭建

当业务流量过大时,我们的一台服务器可能难以负载,我们需要用到主从服务器的配置. 具体配置如下: 172.17.10.57位主服务器 172.17.55.206 从服务器 正确的安装数据库后,确保两台的能互通. mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,"%"表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.16

DNS主从服务器搭建

参考文档 http://blog.51cto.com/yichenyang/1911098http://blog.51cto.com/wubinary/1379595 一.安装 [[email protected] etc]# yum -y install bind[[email protected] etc]# rpm -qa |grep bindbind-9.9.4-61.el7.x86_64rpcbind-0.2.0-42.el7.x86_64bind-libs-9.9.4-61.el7.

linux-第十二课时笔记-[FTP服务器搭建]-[虚拟用户FTP]-[03]

FTP虚拟用户服务器搭建: 创捷一个账号列表: [[email protected] vsftpd]# echo -e "msl23\n123\nbenet\n123" >> vusers.list [[email protected] vsftpd]# cat vusers.list msl23 123 benet 123 [[email protected] vsftpd]# 使用db_load把别表变为数据库: [[email protected] vsftpd]#

DNS域名解析————主从服务器

1.在第一台Linux虚拟机中,进行DNS主域名服务器设置,并验证: 2.在第二台Linux虚拟机中,设置DNS从域名服务器,并进行验证: 原文地址:http://blog.51cto.com/13659182/2121799