Linux DNS原理簡介及配置 DNS簡介 DNS原理 功能變數名稱解析的過程 資源記錄 DNS BIND安裝配置 一、簡介 一般來講功能變數名稱比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入功能變數名稱來訪問網路中的資源,但是電腦主機在互聯網中只能通過IP識別對方主機,那麼就需要DNS功能變數名稱解析服務了。 ...
Linux DNS原理簡介及配置
- DNS簡介
- DNS原理
- 功能變數名稱解析的過程
- 資源記錄
- DNS BIND安裝配置
一、簡介
一般來講功能變數名稱比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入功能變數名稱來訪問網路中的資源,但是電腦主機在互聯網中只能通過IP識別對方主機,那麼就需要DNS功能變數名稱解析服務了。
功能變數名稱:www.baidu.com(也叫做FQDN:Full Qualified Domain Name, 完全限定功能變數名稱,同時帶有主機名和功能變數名稱的名稱)
通常 Internet 主機功能變數名稱的一般結構為:主機名.三級功能變數名稱.二級功能變數名稱.頂級功能變數名稱。
TLD(top level domain)
組織域:.com, .org, .net, .cc
國家域: .cn, .tw, .hk, .iq, .ir, .jp
反向域: IP-->FQDN 將IP地址轉換成主機名,早期只能正向解析,後來引入了一個機制。指針;但是從IP轉換成FQDN是另外一套資料庫。
DNS服務協議採用類似目錄樹的層次結構記錄功能變數名稱與IP地址的映射對應關係,形成一個分散式的資料庫系統,上級僅知道其直接下級,下級只知道根的位置。結構模型:
DNS功能變數名稱解析服務(Domain Name System)是用於解析功能變數名稱與IP地址對應關係的服務,功能上可以實現正向解析與反向解析:
正向解析:根據主機名(功能變數名稱)查找對應的IP地址。
反向解析:根據IP地址查找對應的主機名(功能變數名稱)。
二、原理
Linux下nsswitch(network service switch)是一個通用框架,與各種類型存儲交互的公共實現,實現名稱解析服務。其中有庫文件,libnss_files.so庫文件就是實現查找文件時, 其應該調用的文件。其展現的就是一個配置文件,/etc/nssitch.conf,此配置文件中
這個files就是通過libnss_files來查找/etc/hosts
hosts可通過兩種方式來查找: files dns
file: /etc/hosts配置文件
dns: DNS伺服器
系統中stub resolver:名稱解析器,根據配置文件來查找對應的ip地址。
ping www.itodo.com此過程就是先查找本地/etc/hosts文件,如果沒有再查找dns伺服器。
hosts格式:
IPADDR FQDN Ailases
192.168.100.1 www.ss.com www
三、功能變數名稱解析的過程
當應用過程需要將一個主機功能變數名稱映射為IP地址時,就調用功能變數名稱解析函數,解析函數將待轉換的功能變數名稱放在DNS請求中,以UDP報文方式發給本地功能變數名稱伺服器。本地的功能變數名稱伺服器查到功能變數名稱後,將對應的IP地址放在應答報文中返回。
dns查詢:
遞歸查詢:主機向本地功能變數名稱伺服器的查詢一般都是採用遞歸查詢,只發出一次請求。
迭代查詢:本地功能變數名稱伺服器向根功能變數名稱伺服器的查詢的迭代查詢,發出多次請求。
以上簡單理解來說,主機1訪問主機2的功能變數名稱a.zz.com,首先向本機功能變數名稱伺服器發起請求主機2的ip,本機沒有,向根功能變數名稱伺服器查詢,根返回消息說頂級功能變數名稱伺服器那裡知道,本機又向頂級功能變數名稱伺服器查詢,頂級功能變數名稱伺服器又返回消息說二級功能變數名稱伺服器那裡有答案,本機又向二級功能變數名稱查詢,最後經過本機功能變數名稱伺服器的緩存之後,返回主機2的功能變數名稱對應的ip地址。
四、資源記錄
資料庫中的每一個條目稱作一個資源記錄(Resource Record,RR)
資源記錄的格式:
$TTL 600;
NAME [TTL] IN RRT VALUE
www.ss.com IN A 1.1.1.1
1.1.1.1 IN PTR www.ss.com
資源記錄類型(RRT):
SOA(start of authority)
ZONE_NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX(
serial number 版本號
refresh 刷新時間
retry 重試時間
expire 過期時間
na ttl ) 否定答案的ttl
時間單位:M(分鐘)、H(小時)、D(天)、W(周),預設單位是秒
郵箱格式:[email protected] -寫為-> admin.ss.com
@:也就是ZONE_NAME
NS(Name Server): ZONE_NAME --> FQDN
magedu.com. 600 IN NS ns1.magedu.com.
ns1.magedu.com. 600 IN A 1.1.1.2
MX(Mail eXchanger): ZONE_NAME --> FQDN
ZONE NAME TTL IN MX pri VALUE
優先順序:0-99,數字越小級別越高
magedu.com. 600 IN MX 10 mail.magedu.com.
mail.magedu.com. 600 IN A 1.1.1.3
A(address): FQDN-->IPv4
AAAA:FQDN-->IPv6
PTR(pointer):IP-->FQDN
CNAME(Canonical NAME): FQDN-->FQDN
www2.magedu.com. IN CNAME www.magedu.com.
TXT:文本字元串
DNS區域:
正向區域文件
magedu.com. IN SOA
www.maged.com. IN A 192.168.0.1
簡寫為:
www IN A 192.168.0.1
反向區域文件
0.168.192.in-addr.arpa. IN SOA
1.0.168.192.in-addr.arpa. IN PTR www.magedu.com.
簡寫為:
1 IN PTR www.magedu.com.
區域傳送
區域傳送的類型:
完全區域傳送: axfr
增量區域傳送:ixfr
區域類型:
主區域:master
從區域:slave
提示區域:hint
轉發區域:forward
五、DNS BIND安裝配置
DNS所用的最常用軟體為BIND
bind:
/etc/named.conf
BIND進程的工作屬性
區域的定義
/etc/rndc.key
rndc: Remote Name Domain Controller
密鑰文件
配置信息:/etc/rndc.conf
/var/named/
區域數據文件
bind-chroot:為了提高系統安全新,把系統中的一個子目錄作為bind運行時的目錄。
預設:named
用戶:named
組:named
/var/named/chroot/
etc/named.conf
etc/rdnc.key
sbin/named
var/named/
安裝配置:
1.安裝bind,查看是否安裝成功yum -y install bind bind-utils bind-chroot
rpm –qa | grep "^bind"
2.修改/etc/named.conflisten-on port 53 { any; };
3.修改/etc/named.rfc1912.zones 4.添加所需要的zone文件在/var/named目錄下添加正向解析文件named.yan和反向解析文件named.222
5.檢查語法
named-checkconf
named-checkzone "區功能變數名稱" 區域文件路徑
6.修改/etc/resolv,並啟動服務。
systemctl start named
7.nslookup測試,或者使用dig命令。
正向解析測試:
反向解析測試:
至此簡單的配置完畢。