NDS domain name server (域名服務)
協議: DNS
UDP :53
TCP :53
實現軟件 : bind(Berkeley Internet Name Domain) PowerDNS , dnsmasq
名稱解析:將一種格式的信息轉化為另外一種格式,以某關鍵字為標准查找某一數據庫的過程
passwd <--> nsswitch轉換
login:nsswitch為login提供服務
nsswitch配置文件在/etc/nsswitch
hosts:files dns
files /ect/hosts (存放主機名或者別名和IP)
dns 不用host文件 集中向一個服務器提出申請
根域(.)-->一級域(ICCNA)-->二級域(組織域) namespace:名稱空間 容納名稱的整體范圍 一級域: 組織域:.com , .org , .mil , .gov , .edu , .net,.jp,.ir(伊朗),.iq(伊拉克),.us,.uk 國家域: .cn , .hk , .tw 反向域: .in-addr.arpa
FQDN:Full Qualified Domain Name 完全域名解析
FQDN –> IP 正向解析
IP –> FQDN 反向解析
遞歸查詢 :只發出一次請求對方給出最終答案
迭代查詢 :發起一次請求,不一定得到答案
課戶端指向的DNS服務器,一定是允許給本地主機做遞歸的
數據庫每一個條叫一個資源記錄(Resource Record),資源記錄有類型 ,用於表示資源的功能
SOA : start of authority 起始授權
NS : Name Server, 域名服務器
MX : Mail eXchanger 郵件交換器
A:Address,(FQDN-->IP) 地址記錄 正解
PTR: PoiTeR,(IP-->FQDN) 指針記錄 反解
AAAA: Address,FQDN-->IPv6
CNAME:Canonical Name,正式名稱(別名記錄)
<!-- 早期的DNS 只支持 FODN-->iP ,正方向解析數據不同,不能存放於同一個數據庫進行 -->
域: Domain ,邏輯概念
區域: zone ,物理概念 也就是數據文件
DNS服務器類型:
主DNS服務器
輔助DNS服務器
緩沖名稱服務器
轉發服務器
DNS的數據庫文件(區域數據文件,區域自身有名字):文本文件,只能包含資源記錄或宏定義,每行一個
資源記錄的格式
name [ ttl 緩存紀錄] IN RRtype(資源記錄類型) Value
列子:
www 600 IN A 1.2.3.4
www.magedu.com. 600 IN A 1.2.3.4
SOA: 只能一個
name : 只能是區域名稱,通常可以簡寫為@,例如:magedu.com.
value: 有n個數值,最主要的是主DNS服務器的FQDN,點不可省略
<!-- 注意:SOA 必須是區域數據庫文件第一條記錄-->
例子:
@ 600 IN SOA na.magedu.com. 郵箱地址(dnsadmin.magedu.com. ;把@變為.了 )( 序列號(serial number) ; 注釋內容,十進制數據,不能超過10位,通常使用日期,例如2014031001
刷新時間(refresh time) ;即每隔多久到主服務器檢查一次
重試時間(retry time) ;應該小於refresh time
過期時間(expire time)
netgative answer ttl ;否定答案的ttl 客戶端可以緩存多久的
)
<!-- ;是注釋-->
NS: 可以有多條
name: 區域名稱,通常可以簡寫為@
value : DNS 服務器的FQDN(可以使用相對名稱)
例如: @ 600 IN NS ns
A:
name : FQDN ( 可以使用相對名稱)
value: IP
列子:
www 600 IN A 1.2.3.4
www 600 IN A 1.2.3.5
ftp 600 IN A 1.2.3.5
AAAA : ipv6
MX :可以有多個
name : 區域名稱,用於標示 smtp 服務器
value :包含優先級和FQDN
優先級的: 0-99 數字越小,級別越高
列子:
@ 600 IN MX 10 mail
@ 600 IN MX 20 mail2
CNAME : 別名
name : FQDN
value :FQDN
列子: ftp IN CNAME www
PTR: 指針紀錄 IP-->FQDN 只能記錄在方向區域數據文件中,反向區域名稱為逆向網絡地址加 .in-addr.arpa. 後綴組成
name: IP ,主機地址反過來寫 例如: 172.16.100.7 的name 為7.100,完全格式為:7.100.16.172
value : FQDN
列子:
4.3.2 600 IN PTR www.maged.com.
定義: 輔助DNS服務器從主DNS服務器或其他的輔助DNS服務器請求數據傳輸過程
完全區域傳送:傳送區域的所有數據,AXFR
增量區域傳送:傳送區域中改變的數據部分,IXFR
acl telecom{
1.2.0.0/16
4.5.8.0
}
acl unicom{
6.4.0.0/16
4.5.3.0
}
view { //一個邏輯的dns服務器
recursion no; 不給遞歸
match-clients {telecom}; //telecom 是一個acl 范圍
zone "magelinux.com" IN {
type master ;
file "magelinux.com.internal"; //文件可以是同一個
};
};
view {
match-clients{ unicom }; //unicom 是一個 acl 范圍
zone "magelinux.com" IN {
type master;
file "magelinux.com.external";
};
};
缺陷: 如果IP地址沒有收集齊全,就悲劇了, 所以最好還是定義一個Other (默認)
view {
match -clients {any ;}
zone "magelinux.com" IN {
type master;
file "magelinux.com.other";
};
};
只要寫入view,所有的都應該寫在view中
自上而下匹配
主配置文件: :定義區域 /etc/named.conf
案例: magelinux.com
主配置文件 定義區域 /etc/named.conf
至少有三個區域:
根,localhost ,127.0.0.1
options {
listen -on port 53 { any;};
//全局選項
directory "/var/named" ;
allow-query { any; }; 允許所有客戶端查詢
recursion yes | on ; 是否運行遞歸
} ;
zone "zone name" IN {
//定義區域的
type{hint(根)|master(主)|slave(從)|forward(轉發)}
file “named.ca”
} ;
loggin {
//定義日志的
};
include "文件位置" 加載別的文件
<!--
named-checkconf 檢查主配置文件 service named configtest
named -u named 手動啟動
name-checkzone "區域" “區域文件位置” 檢查配置文件 -->
定義監聽的地址
recursion 是否允許遞歸查詢
dig 命令
dig [-t type] [-x a ddr] name @DNS服務器
+[no]trace [不]適用迭代
+[no]tcp 是否使用tcp
+[no]recurse:是否使用遞歸
host
host[-t type] {name} [server]
nslookup
nslookup>
server DNS_SERVER_IP
set q=TYPE
{name}
區域數據文件 /var/named/
用戶: named
組: named
第一條必須SOA
應該具有NS記錄,但不能出現MX和A 記錄
較常見的即為PTR紀錄
名稱為逆向的主機地址
反解:
zone "100.16.172.in-addr.arpa " IN {
type master ;
file "172.16.100.zone";
}
在 /var/named/下創建172.16.100.zone

tail /var/log/messages 檢查日志
dig -x 172.16.100.7
檢查區域 named-checkzone "100.16.172.in-addr.arpa" 172.16.100.zone
用dig 模擬完全區域傳送
#dig -t axfr 區域名稱 @server
主從同步: /etc/resolv.conf
nameserver Master_DNS_IP
nameserver SLAVE_DNS _IP
主從版本:
主: bind版本可以低於從的版本
從: 主的版本不能高於從的版本 兼容問題
向區域中添加從服務器的關鍵兩步 :
1. 在上級獲得授權)
2. 在區域數據文件中為從服務器添加一天ns記錄和對應的A記錄 或PTR紀錄
在/etc/named.rfc1912.zones下
zone "magelinux.com" IN {
type slave;
masters { 172.16.100.7 ; };
file "slaves/magelinux.com.zone";
}
區域傳送安全控制:
allow-transfer { IP ; }; 指定IP做區域傳送
遠程管理bind的工具
Rndc : 密鑰
rndc :保存於rndc 的配置文件中
bind: 持有一半點的密鑰,保存於主配置文件中
rndc 的配置文件 /etc/rndc.conf
CentOS ,RHEL : /etc/rndc.key
reconfig 只重新讀取配置文件並且加載新增加的區域
querylog: 關閉或開啟查詢日志
stop 關閉服務
flush 清空服務器的緩存
flushname name:只清空指定名稱相關的緩存
trace:打開debug,調試模式,debug有級別的概念,每執行一次提升一個等級
trace LEVEL:指定debug的級別
如果rndc無法正常工作,可嘗試使用rndc-confgen生成/etc/rndc。conf配置文件,並將配置文件中的後半部分復制到BIND的主配置文件中按指示啟用即可
rndc-confgen > /etc/rndc.conf
定義: 在父域的配置文件中添加如下項:
授權的子區域名稱
子區域的名稱服務器
子區域的名稱服務器的IP地址
名稱 IN NS IP dns.tech 子域名
glue record 膠水效果
定義: 解析某本機不負責的區域內的名稱時不轉發給根,而是轉給制定的主機 轉發非本機負責解析的所有區域
options{
forward only|frist
forwarders{ ip; }
}
轉發某特定區域
zone"特定區域" IN{
type forward;
forwarders{ ip; }
forward only | frist
<!-- only:服務器將只會請求 forwarders中的DNS主機
frist: 服務器首先請求 forwarders list ,如果 forwarders list 中的DNS主機不應答,該主機將自己去找應答-->
}
運行使用轉發的前提: 本機要在對方的允許的遞歸主機列表中
allow-transfer{};通常都需要啟用,從服務器
allow-query{};此項僅用於服務器是緩存名稱服務器時,只開放查詢功能給本地客戶端
allow-recursion{可以使用網段};允許遞歸的白名單
allow-update{ none; }:允許動態更新數據文件的主機白名單
acl ACL_NAME{
172.16.0.0/16
192.168.0.0/24
127.0.0.0/8
}
訪問控制列表只有定義後才能使用,通常acl要定義在named.conf的最上方
BIND有四個內置的acl
any:任何主機
none:無一主機
local:本機
localnet:本機所在的網絡
view,編譯安裝named,如何實現對named做壓力測試,BIND dlz
1.修改/etc/named.conf
listen-on port 53 {any;};
allow-query {any;};
2.修改/etc/named.rfc1912.zones 添加要解析的域
zone "xxx.com" IN {
type master;
file "xxx.com.zone";
allow-update {none;};
} ;
3. 添加數據庫文件/var/named/xxx.com.zone
xxx.com. IN SOA ns1.xxx.com. root.xxx.com. (20160402 1d 1h 1w 1h)
xxx.com. IN NS ns1.xxx.com.
ns1.xxx.com. IN A 192.168.30.98
www.xxx.com IN A 192.168.30.98
4.重啟服務
service named restart
5. 修改/var/named/xxx.com.zone 文件的用戶和用戶組
chown named.named /var/named/ —R
6.檢查nameserver 是否為本機IP
nameserver 192.168.30.98
7.重啟服務
service named restart
8. nslookup 測試 nslookup IP
$TTL 600
@ IN SOA dns.magelinux.com. dnsadmin.magelinux.com. (
20160410 1H 5M 3D 12H)
IN NS dns
IN MX 10 dns
www IN A 192.168.1.11
dns IN A 192.168.1.10
mail IN A 192.168.1.12
pop IN CNAME mail
ftp IN CNAME www
//加入信息
tech IN NS dns.tech.magelinux.com.
dns.tech.magelinux.com. IN A 192.168.10
要在另外一台服務器中增加
vim /etc/named.rfc1912.zones
zone "tech.magelinux.com" IN {
type master;
file "tech.magelinxu.com.zone";
}
創建一個 techo.magelinux.com.zone
$TTL 600
@ IN SOA dns.tech.mageliunx.com (20160410 1H 5M 3D 1D)
IN NS dns
IN MX 10 mail
dns IN A 192.168.2.10
www IN A 192.168.2.11
ftp IN A 192.168.2.12
更改屬組 和權限