一,DNS
DNS:Domain Name Server
UDP/53,TCP/53
DNS:名称解析
nsswitch.conf
hosts: files dns
file:/etc/hosts
dns:DNS services
DNS:FQDN <-->ip
FQDN:Full Qualified Domain Name
DNS:层级结构
. 根
组织类TLD:
com
net
mil
edu
gov
org TLD:Top Level Domain
国家类TLD:
cn
jp
uk
反向解析TLD:
二级域:可申请
解析类型:
正向解析:
反向解析:
查询类型:
query:
迭代查询:发出多次请求
递归查询:客户端只发出一次请求
二段式工作:
TTL:存活时间 缓存
DNS区域角色:
主:master
从:slave
转发:forward
根: hint
主--->从:从还可以有从
主--从: 完全区域传送 axfr 从主动同步 pull
主--从: 增量区域传送 ixfr 主通知机制 类似 push 通过版本号同步
2H(refresh:刷新), (retry:重试)超过某段时间后从服务器也停止工作
正向解析:正向库
反向解析:反向库
magedu.com domain
正向数据区域 zone
反向数据区域 zone
服务器角色类型:
主dns服务器
从dns服务器
缓存服务器
转发服务器
数据库文件的格式:宏定义,数据库条目
每个条目叫资源记录:(Resource Record,RR)
资源记录的格式:
name [ttl] CLASS RTYPE RDATY
资源类型 资源数据
RType:
A(address): FQDN -----IP
AAAA(ipv6):FQDN -----IP
PTR(pointor): IP--------FQDN
NS(name server): -----FQDN
CNAME:----------------FQDN
MX:(Mail eXcanger)(优先级0-99)-------FQDN
SOA:(Start Of Authority):起始授权记录
对于任何区域文件,SOA必须定义第一条
RData:
A:IP
AAAA:ipv6
PTR:FQDN
NS:FQDN
MX:FQDN
CNAME:FQDN
SOA: FQDN(主DNS的FQDN) contact(mailbox,不能用@,用.替换) (
serial number
refresh time
retry time
expire time
negetive answer ttl )
任何FQDN必须以 。结尾
除了soa任何记录不能换行
第一个记录只能是SOA
name:
A:FQDN
AAAA:FQDN
PTR:IP
NS:zone
MX:zone
CNAME:FQDN
宏:变量
$TTL 全局TTL
$ORIGIN 名称附加后缀
DNS软件:Bind (Berkeley Information Name Domain)
PowerDNS
dig -t 类型 域或FQDN
host
nslookup
服务器端:
/etc/named.conf 主配置文件
rndc:Remote Name Domain Controller 远程控制dns
127.0.0.1:953 只监听了
stop :停止服务
start:开始服务
reload:重新加载配置文件与zone
reload zone:重新加载zone文件
reconfig 重新加载config文件
/etc/init.d/named 启动脚本
named二进制命令
bind的工作目录 :/var/named
区域数据文件存储目录
缓存DNS服务器:
根区域:表明跟服务器在哪
本地正向区域:localhost----127.0.0.1
本地反向区域:127.0.0.1---localhost
主配置文件结构:/etc/named.conf (640,owner:root,group:named)
全局选项段:{
};
区域声明端:
zone “ZONE_NAME” IN {
};
反向区域的区域名称:network-address(reverse).in-addr.arpa
RTR记录的“Name”是ip地址剩余的部分(主机地址)反过来写
当前区域名称可以用@代替
DNS,一个FQDN可以对多个ip地址,实现轮询的负载均衡
rndc-confgen > /etc/rndc.conf
DNS:中从复制
allow-transfer { ip/net; ip/net; };
DNS面临的安全问题:
Host Enumberation:主机枚举
TSIG:事务签名
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST ns-ns2.magedu.com
在通信双方的named.conf中定义密钥的格式如下:
key "ns-ns2.magedu.com." {
algorithm hmac-md5;
secret "C6Kai60IwnD9oeIwyyYYhQ==";
};而后在每个主机上定义分别定义通信的对方,比如这里在ns.magedu.com上定义:
server 172.16.100.2
keys { ns-ns2.magedu.com.; };
};如果主服务器仅允许通过认证的从服务器进行区域传送,则可以使用类似如下格式定义传送限制:
allow-transfer { key "ns-ns2.magedu.com."; };Cache poisoning:缓存毒化
DNSSEC
Attacking the parent zone:父域攻击
父域授权:
zone “ZONE” IN {
type slave;
file “slaves/zone.zone”;
masters { };
};
转发域:
forward first :转发的目标服务器没有响应,就去找根
forward only:转发的目标服务器没有响应,就返回查不到。
zone “ZONE” IN {
type forward;
forward { first|only};
forwarders { iP ;};
forwarders { };
allow-query {};
查询方式:
递归:任何客户均可以此DNS为其DNS服务器
迭代:
recursion yes|no;
allow-recursion {};
BIND:ACL
acl “ACL_NAME” {
IP;
CIDR网络地址;
TSIG密钥;
};
bind内置的acl:
none,any,localhost,localnets
view :将一个区域切割为多个不同的逻辑视图,以实现对不同客户来源响应不同的内容
只要顶一个view,所有的zone都只能定义在view当中
view “VIEW_NAME” {
match-clients {172.16.0.0/16; };
zone “magedu.com” IN{
};\\\如果需要所递归查询,根区域只需要声明在允许递归的客户端列表所在的vim中
};
view “VIEW_NAME” {
match-clients { any; };
zone “magedu.com” IN {
};
};
只能DNS:分网解析
www.dnspod.cn 智能解析
dig txt chaos version.bind.
bind 日志系统
channel 用于记录产生的日志信息记录位置
category 用于定义记录什么信息
logging {
channel <string>; {
file <logfile>;;
syslog <optional_facility>;;
null;
stderr;
severity <logseverity>;;
print-time <boolean>;;
print-severity <boolean>;;
print-category <boolean>;;
};
category <string>; { <string>;; ... };
};
泛域名解析 ; magedu.com www.magedu.com