DNS的相关知识

  • DNS: 表示的是Domain Name Service,表示域名解析服务,www.baidu.com表示的是一个主机名FQDN:Full Qualified Domain Name:表示的是完全限定域名;DNS是用于实现名称解析的过程,这个转换的过程涉及到查询的过程,查询依赖的是数据库,用于实现FQDN-->IP的转换,双向转换是通过不同的机制来实现的,用于实现转换的是通过两个库来实现的,这两个库为libnss_files.so以及libnss_dns.so,借助于nsswitch.conf配置文件来实现名称解析的机制;
    DNS的相关知识_第1张图片
  • 这里的hosts: files dns:表示的含义就是通过调用libnss_files.so以及调用libnss_dns.so来实现域名解析的;
  • 对于/etc/hosts里面的书写格式
IPADDR  	FQDN 	ALIAS
172.16.0.1	www.**.com.  **.com 
  • 表示的含义分别是IP地址,主机名以及主机别名;

  • IANA:表示的互联网地址分配机构,用于管理顶级域名ICANN;

  • 对于分布式域名的服务器来说,下级是不知道上级存在的,但是上级是知道下级存在的,但是每一个都知道根所在的位置,对于根域来说只需要维护和顶级域名的关系就可以了;
    DNS的相关知识_第2张图片

  • 根域:是用来进行自引用的,是抽象的顶层存在;

  • 顶级域:是根域的直接下级,常见的顶级域名一共是13个,包括.net .org .com .gov .edu,顶级域包括三类:组织域.com .org .net .cc,国家域:.cn .tw hk反向域:是用于实现将IP--->FQDN;对于顶级域是交给对应的组织来进行管理的;

  • 为了防止网络中大量的流量是用来时进行名称解析,通常存在一个本地的域名解析服务器,用于缓存已经解析过的名称,对于本地的NS来说都是不知道上级所在的位置的,但是知道根所在的位置,对于本地的NS会直接查找根域查询根域所在的服务器,

  • 对于解析的方式来说存在两种:

    • 递归:A<-->B<-->C,对于这种方式,根是不会给任何服务器进行递归的;
    • 迭代:A-->B A<-->C;
  • 对于名称解析的过程:对于用户主机来说整个过程是递归的,但是对于NS来说,这个过程是迭代的;对于迭代过程以及从缓冲返回答案的过程都是非权威的; 对于服务器来说,不仅仅应该返回最终答案,还应该返回超时时间;

  • 域名解析最终都是两个ns之间来进行解析的;

  • 对于查找的模型:

    • 本地查找本地;
    • 本地查找外地;
    • 外地查找本地;
  • 对于外部请求的权威答案[也就是请求的结果在ns管理范围内],那么返回的就是一个全为答案,如果请求的是非权威答案,那么根据自己内部指定的策略,来决定是否对于这种请求进行响应;

  • 通常来说,一个ns可以为多个域来提供域名解析;,在查询的过程中.com是一个域,同样的在这个域里面存在的是一个ns服务器,有这个ns服务器来管理这个域,对于域名解析的每一个层级来说,都是需要维护一个数据库,来记录自己管理的域里面的信息的;维护这些数据的数据库就是授权数据库;

  • 对于FQDN<--->IP的对应关系来说,是不存在一一对应的关系的,可以多对多,并且可以利用一个FQDN和多个IP的对应关系可以实现负载均衡;

  • 对于根和定义域查询的过程都是迭代的,不允许为任何主机递归;

  • 本地请求域名解析的服务是stub resolve,通过配置文件/etc/resolve.conf来定义ns服务器的位置,这里面写入的IP不能够是根域以及顶级域的IP地址;

  • 根域名服务器:全球一共存在13台, 称为root server,对于根域名服务器中的数据是需要实时保持一致的;

  • 对于每一个域的ns服务器,都是一主多从的架构,主服务器主要是用于进行修改操作,从服务器主要是用于查询操作,这种称为主 DNS服务器,同时还存在辅助DNS服务器;对于主DNS服务器来说应该在数据更新之后,通知从服务器进行拉取操作;对于主DNS服务器出现故障,那么在一段时间从DNS会查询状态,如果一直故障,就会停止工作;

  • 对于主从之间的同步是通过版本号来完成的,如果主DNS服务器更新数据,那么从版本的服务器就会将数据+1,从服务器比较版本好不一致,就会进行数据的同步;

serial number   数据库版本号
refresh     数据同步更新时间
retry 再次尝试时间
expire 过期时间
nagetive answer TTL   否定答案的缓存时间
  • 还存在一种不提供任何的权威答案,但是提供缓存的服务器,称为缓存DNS服务器;
  • 常见的类型还包括转发器,对于请求的数据,不进行保存;
  • 对于数据库中每一个条目称为一个资源记录[Resoure Record] RR,资源记录的格式
NAME	TTL(时长)	IN(表明是互联网) 		RRT(资源记录类型)  	VALUE(数据)
www.lixun.com.		IN					A 					1.1.1.1
1.1.1.1				IN					PTR					www.lixun.com.
  • 资源记录类型:
  • SOA:start Of Authority:起始授权记录,必须是第一个记录,用于标识一个区域里面,主从服务器之间如何同步数据以及起始授权对象是谁;
Zone Name		TTL 	IN		SOA		FQDN   Admin_Mail(
											   serial number
											   refresh
											   retry
											   expire
											   na ttl)
lixun.com.		600		IN		SOA		ns1.lixun.com.	admin.lixun.com. (
													2018081501;最长为10位
													1H
													5M
													1W
													1D)
  • 时间单位:M(分钟),H(小时),D(天),W(周),默认单位是秒钟;

  • 邮箱格式:[email protected] ---> admin.lixun.com

  • NS[Name Server]:用于实现Zone Name --> FQDN,例如;

lixun.com		600		IN		NS		ns.lixun.com
ns.lixun.com	600		IN 		A 		1.1.1.2
//这两个记录是需要成组出现的
  • A:[address]:从FQDN-->IPv4称为A记录;
  • AAAA:[address]:表示从 FQDN-->IPv6记录;
  • PTR:[pointer]:表示的是实现从IP-->FQDN的解析记录;
  • MX:[Mail eXchanger]:表示的是Zone Name --> FQDN,用于解析邮件服务器,邮件服务器是存在优先级的概念的;
Zone Name 		TTL		IN		MX	Pri 	   Value
lixun.com.		600		IN		MX	10[优先级0-->99]	mail.lixun.com.
mail.lixun.com.	600		IN		A	1.1.1.2
  • CNAME[Cabinical Name正式名称]:是用于实现从FQDN-->FQDN的,用于指定别名记录;
www2.lixun.com.		IN		CNAME		www.lixun.com.
  • 域和区域:
  • 域:是一个逻辑概念;
  • 区域是一个物理概念;
  • 反向区域
0.168.192.in-addr.arpa.		IN		SOA
1.0.168.192.in-addr.arpa.	IN		PTR		www.lixun.com.  //不能够简写
  • 正向区域是可以进行简写的,但是对于反向区域是不能够进行简写的;
  • DNS服务器和从DNS服务器进行数据同步的类型包括两种:
    • 完全区域传送:axfrDNS服务器的数据是全新的,需要进行完全同步;
    • 增量区域传送:ixfr在同步的过程中,只同步发生改变的数据;
  • 区域类型:
    • 主区域:master
    • 从区域:slave
    • 提示区域:hint,可以通过定义提示区域,来指定根服务器的地址;
    • 转发区域:是用来防止每一次的查找操作都从跟开始,例如对于*.com,如果知道.comns服务器的地址,就在提示区域里面定义,直接查询.comns服务器,不用借助于查找根域名服务器;
  • 规划
负责解析的域名:lixun.com		
负责解析的网段地址:172.15.23.0/24
ns的地址为:172.25.23.1
web服务器的地址为:172.25.23.1 172.25.23.3
mail服务器的地址为:172.25.23.2
ftp 使用www主机的别名
  • 通过bind来实现关于上述规划的实现

  • bind软件的相关信息

    • /etc/named.conf:是主要的配置文件,BIND进程的工作属性,区域的工作属性,区域的定义;
    • /etc/rndc.key:Remote Name Domain Controller,表示远程控制工具,这只是远程工作的一个秘钥文件,bind主要使用的是/etc/rndc.conf文件;
    • 区域数据文件:在/var/named/目录底下,区域数据文件需要自己去创建,可以自命名;
    • /etc/rc.d/init.d/named:是一个服务控制脚本,可以直接使用,支持的命令包含 configtest用于测试语法是否出错;
    • 运行的进程程序是named;
    • bind-chroot:用于切换根,默认情况下,运行于根目录下,为了安全起见需要伪造一个根目录提供给named进程使用,这样即使named进程被劫持,系统任然是安全的,这里不适用伪根目录;
    • /etc/named.conf:options是全局选项是对全局生效的,logging是定义日志的相关信息的,zone是用来定义区域的,其中会包含其他文件;
    • /etc/named.rfc1912.conf:这里面都是区域文件;
    • /var/named/named.ca:这里面都是13个根节点服务器的地址,可以手动生成/usr/bin/dig;
      DNS的相关知识_第3张图片
  • 指定根域名服务器来解析
    DNS的相关知识_第4张图片

  • /var/named/named.localhost:用于专门将localhost解析为本机的正反解析;

  • DNS:

    • 监听的端口是53/udp, 53/tcp协议,客户端的查询使用的udp,主从之间同步数据时使用的是tcp协议;同时rndc监听的是953端口的tcp,和rndc端口;使用0.0.0.0:53号端口便是所有的主机都会进行监听;所以一般使用这种格式;也可以省略地址不写;
    • directory:表示数据文件目录,这个很重要;
    • rescursion:表示是否进行递归,权限是root用户named组;
    • allow-query:表示允许那个主机进行查询;
    • allow-transfer:用于指定那个主机可以进行区域传送,这是为了安全进行的设置;
    • notify:表示启用通知功能;
  • 配置文件/etc/named.conf的说明

options {                                   //全局选项,对于每一个zone生效
	listen-on port 53 { 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     { localhost; };  //表示允许那些主机进行查询

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;         //表示是否进行递归查询

	dnssec-enable yes;     
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";

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

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
	type hint;
	file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
  • 对于这个文件来说,单个语句必须以;结尾,在{}前后必须有空格;
  • 全局选项定义:
options {
	directory “/varnamed”
};
  • 根区域:
zone “ZONE_NAME” IN {
type {master | slave |Hint| forward}
}
  • 主区域的定义:
Zone “0.0.127.in-addr.arpa” IN {
	type master;;
	filename “named.loopback”;
}
  • 从区域定义:
file "区域数据文件" IN {
	master {master;}
};
  • 一个配置文件示例:
options {
   directory "/var/named/";
};
zone "." IN {
   type hint;
   file "named.ca";
};
zone "localhost" IN {
   type master;
   file "named.localhost";
};

zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.loopback";
};
  • 修改权限和属主以及属组,并且启动
[root@lixun etc]# chown root:named /etc/named.conf
[root@lixun etc]# chmod 640 /etc/named.conf
  • 检查语法错误:
[root@lixun etc]# named-checkconf 
  • 检查区域文件是否出错
    这里写图片描述
  • 服务已经正常启动
    DNS的相关知识_第5张图片
  • 定义正向解析,解析lixun.com这个域
zone "lixun.com" IN {
   type master;
   file "lixun.com.zone";
};
  • 添加文件lixun.com.zone
$TTL 600
lixun.com.      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)     
                IN      NS      ns1
                IN      MX      10      mail
ns1             IN      A       172.25.23.1
mail            IN      A       172.25.23.1
www             IN      A       172.25.23.1
www             IN      A       172.25.23.2
ftp             IN      CNAME   www

  • 修改文件的权限和属组
[root@lixun etc]# chown root:named /var/named/lixun.com.zone
[root@lixun etc]# chmod 640 /var/named/lixun.com.zone
  • 检查配置文件的语法错误
    这里写图片描述
  • 查询某个域的NS记录
    DNS的相关知识_第6张图片
  • 指定某个NS来查找结果
    DNS的相关知识_第7张图片
  • 可以根据IP查找FQDN,通过-x选项来进行
  • 使用host命令也可以进行查询
    这里写图片描述
  • nslookup
    DNS的相关知识_第8张图片
  • 反向区域的配置
  • 添加反向域的信息
zone "23.25.172.in-addr.arpa" IN {
   type master;
   file "172.25.23.zone";
};
  • 创建文件
[root@lixun etc]# cp /var/named/lixun.com.zone /var/named/172.25.23.zone -p
  • 修改这个文件如下
$TTL 600
@		      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)
                IN      NS      ns1.lixun.com.
1               IN      PTR     ns1.lixun.com.
1               IN      PTR     www.lixun.com.
2               IN      PTR     mail.lixun.com.
3               IN      PTR     www.lixun.com.
  • 检查配置文件的语法错误
[root@lixun named]# named-checkzone  "23.25.172.in-addr.arpa" 172.25.23.zone 
zone 23.25.172.in-addr.arpa/IN: loaded serial 2018081501
OK
  • 重新启动服务器
systemctl restart named
  • 查询ptr记录
    DNS的相关知识_第9张图片
  • 泛域名解析的A记录可以通过
*.lixun.com.	IN		A		172.25.23.3 //用于确保用户再输入错误的情况下,可以得到一个页面;
  • 关于递归的限制问题:
options {
   directory "/var/named/";
   allow-recursion { 172.25.23.0/24; };  //表示只给这个网段进行递归
};
  • 一般的查询过程
    DNS的相关知识_第10张图片
  • 追踪解析的过程

[root@lixun named]# dig  +trace -t A www.qq.com @127.0.0.1

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> +trace -t A www.qq.com @127.0.0.1
;; global options: +cmd
.			517280	IN	NS	j.root-servers.net.
.			517280	IN	NS	m.root-servers.net.
.			517280	IN	NS	l.root-servers.net.
.			517280	IN	NS	e.root-servers.net.
.			517280	IN	NS	d.root-servers.net.
.			517280	IN	NS	k.root-servers.net.
.			517280	IN	NS	a.root-servers.net.
.			517280	IN	NS	c.root-servers.net.
.			517280	IN	NS	g.root-servers.net.
.			517280	IN	NS	b.root-servers.net.
.			517280	IN	NS	f.root-servers.net.
.			517280	IN	NS	i.root-servers.net.
.			517280	IN	NS	h.root-servers.net.
.			518360	IN	RRSIG	NS 8 0 518400 20180828050000 20180815040000 41656 . mHsJgO/MPvKYjdZ88qrTf9db72xwMEQPm5+PrtjcV5TVIDzVYYM0k3th PgNhdByW9zljyZV44g9XdsJLf0BTrF1/i1b8KRPk/F60r+0r3rW3eNQ3 bT8xE+qljkZy0/bBBgKRii1JT1yOEY4HlzKXq1pKt6LQVfZfPL6B7c6w QCo3NG5sPEuhmjqT+PhN0pM0ZK+siHNyyFwpagIsHFjZvtPYqOBMGdVc NBHuW7kGNjzcx0RDX422iIEeRZmxm8+Wdn//9uPVaiVPeFyiFWlLcFah lyE6uymhSdyPr3Uh5ri606/I64Q/+jk17K2yac9yTSeL4BGDeYbpgi/i ZGN7Ug==
;; Received 1097 bytes from 127.0.0.1#53(127.0.0.1) in 3 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20180828050000 20180815040000 41656 . TB5BzFBRkI5DtohvrrxsoKtko1yfnPkaE2qRD2vSJ/ZKhAWfGDFm0ovI R62+HlVe+XS5JVhqWEkMJ9JxklvrMRciKnmPFIbAXxd6Jj3PU6a32rxn n1J2rP8iLTr+74fwmNgnz6CTiJS1OexGeDoXbNt1PHdR+/1zTQovt9Zw 8UmEFl69+2qrwG1n5JZm6Jbi+2iKVkFdd00iSqmLZz0PWOThCmfeQ/Sh pl2lMGxPgwd73dGehDg/vCgW60LLkev4NpHibxqkF+tNcetf+/pPINk4 LNguOe5fSEVFFGS0MTQKJqIYh2amEOpLskPoq3assodTifr94mtOOJqQ yDsVJQ==
;; Received 1170 bytes from 193.0.14.129#53(k.root-servers.net) in 226 ms

qq.com.			172800	IN	NS	ns1.qq.com.
qq.com.			172800	IN	NS	ns2.qq.com.
qq.com.			172800	IN	NS	ns3.qq.com.
qq.com.			172800	IN	NS	ns4.qq.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20180820044557 20180813033557 46475 com. cTxZP9z7uYuaBI0fbLH3nPSOzDcxOEvnBjtzaumObV/iZY3apUNIf0hm BQ7UXVnQ832Uo0ceKtnkrt8OMyPVB5K+VTygONbJh5ANYkFKc4W8P97D toy5KgxctiyDVssrbBtU3v3sGfJuM10jiGA7IjtxI0LMHsH7kQBQMuC8 kmA=
J97567G9DNF0C32H8NOSB0GCO4QCQMHJ.com. 86400 IN NSEC3 1 1 0 - J976TGIABNDMDDT91K24Q2V3GFDKKDGK NS DS RRSIG
J97567G9DNF0C32H8NOSB0GCO4QCQMHJ.com. 86400 IN RRSIG NSEC3 8 2 86400 20180819043725 20180812032725 46475 com. a0aaa2DoHX8FL2W0oq4NMoD0Rd1p9Y1YKnYON6rh8vEIWir+8ODTjJyB IKlI4hRUw5R0jJQimNZnJxMlyH00epfiiHg4jIPvROlxUqkKRJtxd4nV XirVYdvS2Nozma22lh1IQY6yngMZQJHqM+eNPukNtPYC8w5TJgI1fI/z wn8=
;; Received 724 bytes from 192.55.83.30#53(m.gtld-servers.net) in 212 ms

www.qq.com.		86400	IN	NS	ns-os1.qq.com.
www.qq.com.		86400	IN	NS	ns-cmn1.qq.com.
www.qq.com.		86400	IN	NS	ns-tel1.qq.com.
www.qq.com.		86400	IN	NS	ns-cnc1.qq.com.
;; Received 302 bytes from 58.144.154.100#53(ns3.qq.com) in 29 ms

www.qq.com.		300	IN	A	180.163.26.39
;; Received 55 bytes from 111.161.107.195#53(ns-cnc1.qq.com) in 37 ms
  • 同样的还可以定义允许查询的请求
 allow-query { 172.25.23.0/24; };
  • 完全区域传送的方式,可以获得对方区域里面的所有数据

DNS的相关知识_第11张图片

  • 获取增量区域传送的内容
    DNS的相关知识_第12张图片
  • allow-transfer:因为区域传送是很不安全的,所以需要通过选型来定义那些主机是可以进行区域传送的;
options {
   directory "/var/named/";
   allow-recursion { 172.16.0.0/24; };
   allow-transfer { 172.25.23.0/24 };
};
  • 如果是在某个区域里面定义,表示限定范围为某个区域,否则就是对于全局生效的

  • 配置一个从DNS服务器的过程:

options {
   directory "/var/named/";
   allow-recursion { 172.16.0.0/24; };
};
zone "." IN {
   type hint;
   file "named.ca";
};
zone "localhost" IN {
   type master;
   file "named.localhost";
};

zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.loopback";
};
zone "lixun.com" IN {
   type slave;
   file "slaves/lixun.com.zone";
   masters { 172.25.23.1; };
   allow-transfer { none };
};

zone "23.25.172.in-addr.arpa" IN {
   type slave;
   file "slaves/172.25.23.zone";
   master { 172.25.23.1 };
};
  • DNS的配置如下
options {
   directory "/var/named/";
   allow-recursion { 172.16.0.0/24; };
};
zone "." IN {
   type hint;
   file "named.ca";
};
zone "localhost" IN {
   type master;
   file "named.localhost";
};

zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.loopback";
};
zone "lixun.com" IN {
   type master;
   file "lixun.com.zone";
   allow-transfer { 172.25.23.2 };
};

zone "23.25.172.in-addr.arpa" IN {
   type master;
   file "172.25.23.zone";
   allow-transfer { 172.25.23.2 };
};
  • 因为现在存在两个DNS服务器了,所以需要说明这个位置
$TTL 600
lixun.com.      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)
                IN      NS      ns1
                IN      NS      ns2
                IN      MX      10      mail
ns1             IN      A       172.25.23.1
ns2             IN      A       172.25.23.2
mail            IN      A       172.25.23.1
www             IN      A       172.25.23.1
www             IN      A       172.25.23.2
ftp             IN      CNAME   www
  • DNS子域授权的相关知识
SUB_ZONE_NAME 	IN		NS		NSserver_Zone_Name
NSserver_Zone_Name	IN	A	IP
  • 授权两个子域
fin.lixun.com.		IN		NS		ns1.fin.lixun.com.
ns1.fin.lixun.com.	IN		A		172.25.23.100

market.lixun.com.	IN		NS		ns1.marker.lixun.com.
ns1.market.lixun.com.	IN	A		172.25.23.200
  • 修改配置文件如下
添加:
fin             IN      NS      ns1.fin
ns1.fin         IN      A       172.25.23.100

market          IN      NS      ns1.market
ns2.market      IN      A       172.25.23.200
  • 需要分别在两个子域服务器上面添加下面的信息

$TTL 86400
@		IN		SOA		ns1.fin.lixun.com.		admin.fin.lixun.com. (
												2018081501
												2H
												10M
												7D
												2D
												)
		IN      NS       ns1
		IN      MX   10       mail
ns1		IN		A		172.25.23.100
mail	IN		A		172.25.23.101
www		IN		A		172.25.23.102		
  • 在另一台主机上面的配置如下
$TTL 86400
@		IN		SOA		ns1.market.lixun.com.		admin.market.lixun.com. (
												2018081501
												2H
												10M
												7D
												2D
												)
		IN      NS       ns1
		IN      MX   10       mail
ns1		IN		A		172.25.23.200
mail	IN		A		172.25.23.201
www		IN		A		172.25.23.202
  • 定义转发域
  • forward的两种方式:
    • only:对于请求只进行转发,并且要求一定要得到结果,否则就会出错;
    • first:首先将请求进行转发,如果得不到结果,就自己查找根域;
options {
   directory "/var/named/";
   forward first;   
   forwarders { 172.25.23.1 };   //可以将子域查找不到的请求转发到父域;
};
  • 对于请求的不是自己负责的子域的请求就进行转发,如果只需要对某个域进行转发,就需要在域里面定义转发选项,通常建议这种选项;

  • DNSACL的定义:

acl  innet  {
	172.25.23.0/24;
	172.25.25.0/24;
};
  • DNS视图的相关知识
  • 通过视图来实现DNS智能响应的过程
view	VIEW_NAME {
	
};
  • 如果使用了视图,那么所有的区域都必须定义在视图里面;
acl telecom {
   172.25.23.0/24;
};

acl unicom {
    192.168.10.0/24;
};


options {
   directory "/var/named/";
   allow-recursion { 172.16.0.0/24; };
};

view telecom {
   match-clients  { telecom };
   zone "lixun.com" IN {
        type master;
        file "telecom.lixun.com.zone";
   };
};

view unioncom {
    match-clients { unicom };
    zone "lixun.com" IN {
	type master;
	file "unicom.lixun.com.zone";
    };
};


view other {
    match-clients { any };
    zone "lixun.com" IN {
	type master;
	file "other.lixun.com.zone";
    };
};
  • 然后分别定义上面两个文件,用于返回不同的IP地址,一个是telecom
$TTL 600
lixun.com.      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)
                IN      NS      ns1
                IN      NS      ns2
                IN      MX      10      mail
ns1             IN      A       172.25.23.1
mail            IN      A       172.25.23.1
www             IN      A       172.25.23.1
www             IN      A       172.25.23.2
ftp             IN      CNAME   www
  • 这个是union的配置
$TTL 600
lixun.com.      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)
                IN      NS      ns1
                IN      MX      10      mail
ns1             IN      A       192.168.23.1
mail            IN      A       192.168.23.2
www             IN      A       192.168.23.3
www             IN      A       192.168.23.1
ftp             IN      CNAME   www
  • 关于other的定义如下:
$TTL 600
lixun.com.      IN      SOA     ns1.lixun.com.  admin.lixun.com. (
                                                                2018081501
                                                                1H
                                                                4M
                                                                2D
                                                                6H)
                IN      NS      ns1
                IN      MX      10      mail
ns1             IN      A       172.25.23.1
mail            IN      A       172.25.23.1
www             IN      A       172.25.23.1
www             IN      A       172.25.23.2
ftp             IN      CNAME   www
  • 可以通过视图的机制来为不同的客户端实现解析不同的IP地址;
  • querylog yes;:表示打开记录日志的功能,可以通过category来自定义日志的来源,channel用于定义日志应该记录在哪里;

你可能感兴趣的:(Linux运维笔记)