⑴ 在網路中提供域名與ip地址解析服務的伺服器是什麼
完成ip地址和域名之間轉換工作的是DNS伺服器。
DNS(Domain Name System,域名系統),網際網路上作為域名和IP地址相互映射的一個分布式資料庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析
⑵ 將IP地址解析為主機名的伺服器是什麼
DNS域名伺服器
⑶ 在dns伺服器中,把ip地址解析為域名,使用什麼域
域名系統,在TCP/IP 網路中有非常重要的地位,能夠提供域名與IP地址的解析服務,而不用去記住能夠被機器直接讀取的IP數串。
通過域名,最終得到該域名對應的IP地址的過程叫做域名解析。
DNS協議運行在UDP協議之上,使用埠53號
DNS域名空間中,樹的最大深度不得超過127層,樹種每個節點最長可以存儲63個字元。
2、域和域名
DNS樹的每一個完全合格域名(FQDN)標識。FQDN能准確表示出其對於DNS域樹根的位置,也就是節點到DNS樹根的完整表述方式。
例如:google為com域的子域,其表示方法為googgle.com,而www為google域中的子域,可以使用www.google.com表示。
注意:FQDN有嚴格的命名限制,長度不能超過256位元組,只允許使用字元a-z,0-9,A-Z和減號(-)。
.號只允許在域名標志之間和域名結尾使用。
域名不區分大小寫,從最頂層到下層,可以分成:根域、頂級域、二級域、子域。
互聯網的域名空間最頂層的是根域(root),記錄這Interne的重要DNS信息,有Internet域名注冊授權機構管理,該機構把域名空間各部分的管理責任分配給鏈接到Internet的各個組織。
全球有13個根域伺服器:
1個為主根域伺服器,在美國;其餘12個為輔助根域伺服器,
其中9個在美國;歐洲2個,分別在英國和瑞迪;亞洲一個,在日本。
3、域名的分類和等級
域名可以分為3中類型的頂級域分別是:
組織域:採用3個字元表示,表示組織的主要功能和活動,比如com為商業機構組織,e為教育機構組織,gov為政府機構組織,mil為軍事機構組織,net為網路機構組織,org為非盈利機構組織,int為國際機構組織。
地址域:採用兩個字元的國家或地區代號,如cn表示中國,jp表示日本、hk表示香港,kr表示韓國,us表示美國。
反向域:特殊域,名字為in-addr.arpa,用於將IP地址映射到名字(反向查詢)
二、DNS相關概念
1、DNS伺服器
運行DNS伺服器程序的計算機,存儲DNS資料庫信息。
2、DNS緩存
DNS伺服器在解析客戶機的域名請求時,如果本地沒有該域名的記錄,則會詢問其它DNS伺服器,當其它域名將解析結果返回給DNS伺服器是,DNS將對應的記錄保存在本地,生成DNS緩存,當下一次客戶機再次請求是,DNS伺服器則可以直接使用緩存中的DNS記錄。
3、DNS查詢方式:遞歸查詢和迭代查詢
遞歸查詢:當客戶機向DNS伺服器發起域名解析請求時,DNS伺服器首先查看自己本機的DNS記錄,如果沒有則會想其它DNS伺服器發起解析請求。
迭代查詢:當客戶機向DNS伺服器發起域名解析請求是,DNS伺服器不會給客戶機解析地址,而是告訴客戶機另外一台DNS伺服器,客戶即再向這台伺服器發起地址解析請求。
4、正向解析和反向解析
正向解析:指域名解析到IP地址的解析過程。
反向解析:指IP地址解析到域名的解析過程。
5、DNS資源記錄
1)SOA資源記錄
每個區在區的開始都包含了一個起始授權記錄(Start of Authority Record),簡稱SOA記錄
SOA定義了域的全局參數,進行整個域的管理設置。一個區域文件只允許存在唯一的SOA記錄。
2)NS資源記錄
NS(Name Server)記錄是域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析,每個區在區根處至少包含一個NS記錄。
3)A資源記錄
地址(A)資源記錄把FQDN映射到IP地址。因為有次記錄,所以DNS伺服器能解析FQDN域名對應的IP地址。
4)PTR資源記錄
相對於A記錄,指針(PTR)記錄把IP地址映射到FQDN。用於反向查詢,通過IP地址,找到域名。
5)CNAME資源記錄
別名記錄(CNAME)資源記錄創建特定FQDN的別名。用戶可以使用CNAME記錄來隱藏用戶網路的實現細節,使鏈接的客戶機無法知道真正的域名。
6)MX資源記錄
郵件交換(MX)資源記錄,為DNS域名指定郵件交換伺服器。
三、DNS伺服器安裝及相關配置文件
1、安裝DNS
BIND 簡介:
BIND 全稱為Berkeley Internet Name Domain(伯克利網際網路名稱域系統),BIND 主要有三個版本:BIND4、BIND8、BIND9。
BIND8版本:融合了許多提高效率、穩定性和安全性的技術,而BIND9 增加了一些超前的理念:IPv6支持、密鑰加密、多處理器支持、線程安全操作、增量區傳送等等。
安裝命令:
[root@xuegod ~]# yum -y install bind bind-chroot bind-utils
安裝包的作用:
bind.x86_64 32:9.9.4-73.el7_6 #DNS服務的主程序包
bind-chroot.x86_64 32:9.9.4-73.el7_6 #提高安全性
#bind-chroot是bind的一個功能,使bind可以在一個chroot 的模式下運行,也就是說,bind運行時的/(根)目錄,並不是系統真正的/(根)目錄,只是系統中的一個子目錄而已,這樣做的目的是為了提高安全性,因為在chroot的模式下,bind可以訪問的范圍僅限於這個子目錄的范圍里,無法進一步提升,進入到系統的其他目錄中。
bind-utils-9.9.4-50.el7.x86_64.rpm #該包為客戶端工具,系統默認已經安裝的了,它用於搜索域名指令。
2、DNS伺服器相關配置文件
[root@xuegod ~]# ls /etc/named.conf -l
-rw-r----- 1 root named 1808 1月 30 01:23 /etc/named.conf
named.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其並不包括區域數據
/var/name/目錄為DNS資料庫文件存放目錄,每一個域文件都放在這里
3、啟動伺服器
[root@xuegod ~]# systemctl start named
[root@xuegod ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@xuegod ~]# netstat -antup | grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3501/named
4、服務的使用方法
在客戶端上配置好DNS伺服器地址
[root@xuegod140 ~]# vim /etc/resolv.conf
[root@xuegod140 ~]# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 192.168.1.130
resolv.conf文件,添加DNS,此文件的生效范圍是全局的,即是所有網卡都可以生效。
修改網卡添加的DNS,此方法添加DNS僅對當前網卡生效。
DNS1=192.168.1.130
5、配置文件詳解
要求:配置DNS伺服器解析:xuegod.cn
[root@xuegod etc]# cp /etc/named.conf /etc/named.conf.bak
DNS配置文件整體分為三段:
options:對全局生效
zone:針對某個區域生效
type:指定區域類型
type主要分為六種
Master:主DNS伺服器,擁有區域數據文件,並對此區域提供管理梳理
Slave:輔助DNS伺服器,擁有主DNS伺服器的區域數據文件的副本,輔助DNS伺服器會從主DNS伺服器同步所有區域數據
Stub:stub區域和slave類似,但其只復制主DNS伺服器上的NS記錄,而不像slave復制DNS伺服器的所有數據
Forward:一個forward zone是每個區域的配置轉發的主要部分。一個zone語句中的type forward可以包括一個forward和/或forwarders子句,它會在區域名稱給定的域中查詢。如果沒有forwarders語句或者forwarder是空表,那麼這個域就不會轉發,消除了options語句中有關轉發的配置
Hint:根域名伺服器的初始化組指定使用線索區域hint zone,當伺服器啟動時,它使用跟線索來查找根域名伺服器,並找到最近的根域名伺服器列表
四、實戰-為公司搭建一個DNS伺服器
1、配置正向解析區域
修改配置文件,授權DNS伺服器管理xuegod.cn區域,並把該區域的區域文件命名為xuegod.cn
options {
listen-on port 53 { any; }; #把原來的127.0.0.1改為any。
listen-on-v6 port 53 { any; }; #把原來的::1,改為any。
directory 「/var/named」;
mp-file 「/var/named/data/cache_mp.db」;
statistics-file 「/var/named/data/named_stats.txt」;
memstatistics-file 「/var/named/data/named_mem_stats.txt」;
allow-query { any; }; #把原來的localhost,改為any。
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto; #加入此項。
1
2
3
4
5
1
2
3
4
5
zone 「xuegod.cn」 IN { #把原來的 . 改為xuegod.cn。
type master; #把原來的hint,改為master。
file 「xuegod.cn.zone」; #把原來的named.ca,改為xuegod.cn.zone。
};
include 「/etc/named.rfc1912.zones」;
include 「/etc/named.root.key」;
2、創建zone文件
[root@xuegod etc]# cd /var/named #進入zone工作目錄
[root@xuegod named]# ll -d named.localhost
-rw-r----- 1 root named 152 6月 21 2007 named.localhost
[root@xuegod named]# cp -a named.localhost xuegod.cn.zone
#-a參數,復制後的文件保留源文件許可權
[root@xuegod named]# ll -d xuegod.cn.zone
-rw-r----- 1 root named 152 6月 21 2007 xuegod.cn.zone
[root@xuegod named]# vim xuegod.cn.zone
[root@xuegod named]# cat xuegod.cn.zone
$TTL 1D
xuegod.cn. IN SOA dns.xuegod.cn. root.xuegod.cn. (
0 ; serial #系列
1D ; refresh #刷新
1H ; retry #重試
1W ; expire #到期
3H ) ; minimum #最低限度
xuegod.cn. NS dns.xuegod.cn. #NS資源記錄
dns.xuegod.cn. A 192.168.1.130 #A資源記錄
www.xuegod.cn. A 192.168.1.130 #A資源記錄
www1.xeugod.cn. CNAME www.xuegod.cn. #CNAME記錄
3、重啟DNS服務:
[root@xuegod named]# systemctl restart named
4、修改客戶機的DNS記錄
[root@xuegod140 ~]# vim /etc/resolv.conf
[root@xuegod140 ~]# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 192.168.1.130
5、刪除網卡配置文件的DNS記錄
[root@xuegod140 ~]# cd /etc
[root@xuegod140 etc]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@xuegod140 etc]# cat !$ | grep DNS1 #刪除DNS1的行
cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep DNS1
6、測試結果:
[root@xuegod140 etc]# ping www.xuegod.cn
PING www.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.359 ms
[root@xuegod140 etc]# ping www1.xuegod.cn
PING www.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.255 ms
[root@xuegod140 etc]# ping dns.xuegod.cn
PING dns.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.170 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.294 ms
總結:實驗容易錯誤點
1)區文件的許可權,需要注意,這里直接使用cp -a參數拷貝,保留文件的許可權和屬組、屬主
2)服務端的防火牆必須要關閉,如果不關閉,就要放通DNS53號埠
3)客戶端指定DNS地址時,resolv文件需要表示全局生效,本地網卡修改表示當前網卡生效
4)可以的話最好關閉NetworkManager
7、zone配置文件的參數說明
$TTL 1D:設置有效地址解析記錄的默認緩存時間,默認為1天也就是1D。
xuegod.cn. IN SOA dns. xuegod.cn. root. xuegod.cn.
#原來的@表示當前的域xuegod.cn.,為方便大家記憶,在此直接寫成xuegod.cn.
#設置SOA記錄為:dns.xuegod.cn.
#在此配置文件中寫域名時,都把根 . 也需要寫上。
#域管理郵箱root.xuegod.cn. 由於@有其他含義,所以用「.」代替@。
0 :更新序列號,用於標示資料庫的變換,可以在10位以內,如果存在輔助DNS區域,建議每次更新完資料庫,手動加1。
1D :刷新時間,從域名伺服器更新該地址資料庫文件的間隔時間,默認為1天。
1H :重試延時,從域名伺服器更新地址資料庫失敗以後,等待多長時間,默認為1小時。
1W :到期,失效時間,超過該時間仍無法更新地址資料庫,則不再嘗試,默認為一周。
3H :設置無效地址解析記錄(該資料庫中不存在的地址)默認緩存時間。設置無效記錄,最少緩存時間為3小時。
NS @ :域名伺服器記錄,用於設置當前域的DNS伺服器的域名地址,
A 127.0.0.1: 設置域名伺服器的A記錄,地址為ipv4的地址127.0.0.1,可以設置成192.168.100.102
AAAA ::1:設置域名伺服器的A記錄,地址為ipv6的地址。
資源記錄參數詳解:
CNAME 資源記錄
別名(CNAME)資源記錄用於為某個主機指定一個別名
CNAME 資源記錄語法格式:
別名 CNAME 主機名
www1.xuegod.cn. CNAME www.xuegod.cn.
MX 資源記錄
MX(郵件交換器)資源記錄提供郵件傳遞信息。該記錄會指定區域內的郵件伺服器名稱。
MX 資源記錄語法格式:
mail A 192.168.1.63
MX 192.168.1.63
PTR 資源記錄
指針(PTR)資源記錄。該記錄與A 記錄相反,用於查詢IP 地址與主機名的對應關系。
根區域是一個較為特殊的區域,記錄列出全球根域名伺服器信息,域名通常用「.」表示,如表 5-1 所示。
在這里插入圖片描述
五、實戰-DNS遞歸查詢和搭建DNS轉發伺服器
1、使用DNS遞歸查詢
修改配置文件:
[root@xuegod130 etc]# vim /etc/named.conf #修改DNS配置文件,修改如下內容。
options {
listen-on port 53 { any ; }; #把原來的127.0.0.1改為any。
listen-on-v6 port 53 { any; }; #把原來的::1,改為any。
directory 「/var/named」;
mp-file 「/var/named/data/cache_mp.db」;
statistics-file 「/var/named/data/named_stats.txt」;
memstatistics-file 「/var/named/data/named_mem_stats.txt」;
allow-query { any; }; #把原來的localhost,改為any。
recursion yes; #默認是支持遞歸查詢。
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;
只需要把以上三條內容注釋了,其它內容不用改,這樣客戶端才能通過這個DNS進行遞歸查詢,把dns加密通訊功能關閉,才可以和根伺服器時行迭代查詢。:
2、重啟DNS服務,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
3、在xuego140主機上進行測試:
[root@localhost network-scripts]# ping www..com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
4、 搭建DNS轉發伺服器
[root@xuegod130 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #把原來的127.0.0.1改為any。
listen-on-v6 port 53 { any; }; #把原來的::1,改為any。
directory 「/var/named」;
mp-file 「/var/named/data/cache_mp.db」;
statistics-file 「/var/named/data/named_stats.txt」;
memstatistics-file 「/var/named/data/named_mem_stats.txt」;
allow-query { any; }; #把原來的localhost,改為any。
recursion yes; #允許遞歸查詢
#dnssec-enable yes; #注釋以下三行。
#dnssec-validation yes;
#dnssec-lookaside auto;
zone 「xuegod.cn」 IN {
#type master; #注釋此項
type forward; #添加此項,類型為轉發。
#file 「xuegod.cn.zone」; #注釋此項
forward only ; #僅執行轉發操作,only:僅轉發,first:先查找本地zone,再轉發。
forwarders { 8.8.8.8; }; #指定轉發查詢請求的DNS伺服器列表。
};
重啟DNS服務,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
在xuegod140主機上進行測試:
[root@localhost network-scripts]# ping www..com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
六、實戰-搭建DNS主從伺服器
1、搭建一個主DNS伺服器A,配置內容如下
[root@xuegod63 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #把原來的127.0.0.1改為any。
listen-on-v6 port 53 { any; }; #把原來的::1,改為any。
directory 「/var/named」;
mp-file 「/var/named/data/cache_mp.db」;
statistics-file 「/var/named/data/named_stats.txt」;
memstatistics-file 「/var/named/data/named_mem_stats.txt」;
allow-query { any; }; #把原來的localhost,改為any。
recursion yes;
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;
zone 「xuegod.cn」 IN {
type master; #指定類型為master。
file 「xuegod.cn.zone」; #指定為xuegod.cn.zone。
allow-transfer { 192.168.1.0/24; }; #指定允許哪個網段的從DNS伺服器,可以同步主DNS伺服器zone文件,不寫默認為所有。
};
include 「/etc/named.rfc1912.zones」;
重啟DNS服務,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
2、從DNS伺服器的配置
要求:主從系統時間一定要保持一致。