1. 程式人生 > >DNS伺服器之一:DNS簡介及BIND安裝與基本配置

DNS伺服器之一:DNS簡介及BIND安裝與基本配置

1、什麼是DNS?

域名系統(英文:Domain Name System,DNS)是因特網的一項服務,它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路。DNS 使用TCP和UDP埠53。當前,對於每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。

DNS最早於1983年由保羅·莫卡派喬斯(Paul Mockapetris)發明;原始的技術規範在882號因特網標準草案(RFC 882)中釋出。1987年釋出的第1034和1035號草案修正了DNS技術規範,並廢除了之前的第882和883號草案。在此之後對因特網標準草案的修改基本上沒有涉及到DNS技術規範部分的改動。

早期的域名必須以英文句號“.”結尾,當用戶訪問 www.toxingwang.com 的HTTP服務時必須在址欄中輸入:http://www.toxingwang.com.,這樣DNS才能夠進行域名解析。如今DNS伺服器已經可以自動補上結尾的句號。

2、DNS的基本概念:

2.1 DNS記錄型別及基本格式

SOA記錄:表明此 DNS 名稱伺服器是為該 DNS 域中的資料的資訊的來源。

##SOA記錄格式

ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
serial number
refresh
retry
expire
na ttl )
##時間單位:M(分鐘)、H(小時)、D(天)、W(周),預設單位是秒
##郵箱格式:

[email protected] -寫為-> admin.toxingwang.com

域名伺服器記錄(NS記錄):用來指定某域名由哪個DNS伺服器來進行解析。

##NS(Name Server): ZONE NAME --> FQDN
toxingwang.com. 600 IN NS ns1.toxingwang.com.
toxingwang.com. 600 IN NS ns2.toxingwang.com.
ns1.toxingwang.com. 600 IN A 192.168.8.100
ns2.toxingwang.com. 600 IN A 192.168.8.101

##NS記錄除了NS記錄本身,還應該包含NS對應A記錄

主機記錄(A記錄):A記錄是用於名稱解析的重要記錄,它將特定的主機名對映到對應主機的IP地址上。

##A(address): FQDN-->IPv4

mail.toxingwang.com. 600 IN A 192.168.8.3

別名記錄(CNAME記錄): 用於將某個別名指向到某個A記錄上,這樣就不需要再為某個新名字另外建立一條新的A記錄。

##CNAME(Canonical NAME): FQDN-->FQDN
www2.toxingwang.com. IN CNAME www.toxingwang.com.

郵件交換記錄(MX記錄):用於電子郵件程式傳送郵件時根據收信人的地址字尾來定位郵件伺服器。

##MX(Mail eXchanger): ZONE NAME --> FQDN
ZONE NAME TTL IN MX pri VALUE
##優先順序:0-99,數字越小級別越高,如:
toxingwang.com. 600 IN MX 10 mail.toxingwang.com.
mail.toxingwang.com. 600 IN A 192.168.8.3

IPv6主機記錄(AAAA記錄): 與A記錄對應,用於將特定的主機名對映到一個主機的IPv6地址。
服務位置記錄(SRV記錄): 用於定義提供特定服務的伺服器的位置,如主機(hostname),埠(port number)等。
反向解析記錄(PTR記錄):用於將一個IP地址對映到對應的域名,也可以看成是A記錄的反向,IP地址的反向解析。
NAPTR記錄: 它提供了正則表示式方式去對映一個域名。NAPTR記錄非常著名的一個應用是用於ENUM查詢。

2.2 DNS查詢有兩種方式:遞迴 和 迭代。

遞迴查詢圖解:

使用者使用toxingwang.com的DNS伺服器ns.toxingwang.com解析www.kernel.org主機的遞迴查詢過程如下:

DNS遞迴查詢過程

迭代查詢圖解:

同樣使用者使用toxingwang.com的DNS伺服器ns.toxingwang.com查詢www.kernel.org主機的迭代查詢過程如下:

DNS迭代查詢過程

本地dns伺服器需要發起多次查詢請求,迭代方式查詢到www.kernel.org主機,而對於使用者來說,本地dns伺服器卻是遞迴查詢,使用者只需發起一次查詢請求,伺服器將查詢到的結果反饋給使用者。

DNS客戶端設定使用的DNS伺服器(如上圖的ns.toxingwang.com)一般都是遞迴伺服器,它負責全權處理客戶端的DNS查詢請求,直到返回最終結果。而DNS伺服器(如上圖的根域、org域等)之間一般採用迭代查詢方式。以查詢 www.kernel.org 為例:
客戶端傳送查詢報文"query www.kernel.org"至DNS伺服器,DNS伺服器首先檢查自身快取,如果存在記錄則直接返回結果。
如果記錄老化或不存在,則

  • DNS伺服器向根域名伺服器傳送查詢報文"query www.kernel.org",根域名伺服器返回 .org 域的權威域名伺服器地址。
  • DNS伺服器向 .com 域的權威域名伺服器傳送查詢報文"query www.kernel.org",得到 .kernel.org 域的權威域名伺服器地址。
  • DNS伺服器向 .kernel.org 域的權威域名伺服器傳送查詢報文"query www.kernel.org",得到主機 www的A記錄,存入自身快取並返回給客戶端。

2.3 DNS監聽埠

DNS預設使用tcp53和udp53埠,TCP53埠一般用於區域傳送,而其他時候使用UDP53。

3、常見DNS伺服器:

目前網際網路上最為廣泛的DNS伺服器為bind,而企業內部,由於很多企業使用windows AD域,因此Windows DNS在企業內部應用較多。其他還包括:

DJBDNS (Dan J Bernstein's DNS implementation)
MaraDNS
NSD (Name Server Daemon)
PowerDNS

4、BIND9的安裝:

  • 原始碼安裝:
  • yum源安裝:

如果使用RHEL、CentOS,可以使用yum線上安裝,如果是ubuntu等,則可以使用apt線上安裝。

我這裡以Centos使用yum安裝為例,測試環境如下:

主機名:ns.toxingwang.com

主機IP:192.168.8.101

[[email protected] ~]# rpm -q bind    ##檢視當前是否安裝bind,如果安裝的是比較舊的版本,則可以先刪除

目前centos 6的安裝源提供了bind9.8的安裝包

[[email protected] ~]# yum list |grep "^bind"   ##查詢bind安裝包
bind.x86_64 32:9.8.2-0.17.rc1.el6_4.5 @updates
bind-chroot.x86_64 32:9.8.2-0.17.rc1.el6_4.5 @updates
bind-dyndb-ldap.x86_64 2.3-2.el6_4.1 @updates
bind-libs.x86_64 32:9.8.2-0.17.rc1.el6_4.5 @updates
bind-sdb.x86_64 32:9.8.2-0.17.rc1.el6_4.5 @updates
bind-utils.x86_64 32:9.8.2-0.17.rc1.el6_4.5 @updates
bind-devel.i686 32:9.8.2-0.17.rc1.el6_4.5 updates
bind-devel.x86_64 32:9.8.2-0.17.rc1.el6_4.5 updates
bind-libs.i686 32:9.8.2-0.17.rc1.el6_4.5 updates

這裡只須安裝最基本的bind、bind-libs、bind-utils三個元件即可

[[email protected] ~]# yum -y install bind bind-libs bind-utils

5、BIND9的基本配置:

5.1 bind的檔案:

主配置檔案:/etc/named.conf

rndc配置檔案:/etc/rndc.conf

資料目錄:/var/named/

[[email protected] ~]# ls /var/named/
dynamic  named.empty named.loopback data named.ca named.localhost slaves

5.2 配置named.conf

named.conf的基本配置中,檔案主要分兩部分,全域性配置和zone配置:

預設情況下,named.conf已經有基本配置,我們刪除後重新配置後如下:

options {                      ##全域性配置,所有配置都要以分紅結尾
listen-on port 53 { 192.168.8.101; };            ##監聽埠及地址,注意,大括號與中間內容間需要有空格
allow-query { 192.168.8.0/24; };          ##允許使用者發起遞迴查詢的地址範圍
directory       "/var/named";          ##資料檔案預設目錄

};

zone "." IN {             ##定義跟區域
type hint;                      ##區域型別
file "named.ca";           ##區域對應資料檔案
};

zone "toxingwang.com" IN {     ##定義本次試驗解析域
type master;            ##區域型別為master
file "named.toxingwang";  ##區域資料檔案
};

zone "localhost" IN {
type master;
file "named.localhost";
};

5.3 配置zone檔案

 預設資料檔案:

安裝好bind98後,預設已經有根域和localhost域的資料檔案,本次我們不修改其配置。

配置域toxingwang.com資料檔案:

##複製localhost域資料檔案作為模板修改

[[email protected] named]# cp -p named.localhost named.toxingwang.com   ##複製時保留原來的許可權

##修改資料檔案

[[email protected] named]# vi named.toxingwang.com

$TTL 1H   ##定義全域性TTL巨集
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (      ##從這裡到下面反括號都是定義SOA記錄
2013081701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.toxingwang.com.
IN MX 10 mail.toxingwang.com.
ns IN A 192.168.8.101
www IN A 192.168.8.100
mail IN A 192.168.8.3
www2 IN CNAME www.toxingwang.com.

配置檢查:

[[email protected] named]# named-checkconf  ##檢查named.conf配置檔案是否存在語法錯誤

[[email protected] named]# named-checkzone "toxingwang.com" /var/named/named.toxingwang.com  ##檢查資料檔案
zone toxingwang.com/IN: loaded serial 2013081701
OK

檢查無誤後即可啟動named伺服器了:

[[email protected] named]# chkconfig named on  ##加入開機啟動

[[email protected] named]# service named start
啟動 named: [確定]

5.4 測試解析

測試用具:nslookup、dig

使用nslookup測試時,需先指定server 為named伺服器地址

bind_nslookup測試

原文連結:http://www.toxingwang.com/linux-unix/linux-admin/1165.html

相關推薦

DNS伺服器之一DNS簡介BIND安裝基本配置

1、什麼是DNS? 域名系統(英文:Domain Name System,DNS)是因特網的一項服務,它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路。DNS 使用TCP和UDP埠53。當前,對於每一級域名長度的限制是63個字元,域名總長度則不

團隊作業之一團隊介紹選題背景意義

benefit 設計 旅行 sdk class clip 操作系統 開發環境 方便 團隊作業之一:團隊介紹及選題背景與意義 團隊介紹及組員情況: 1、組名:大吉大利,今晚加班 2、成員: 班級 姓名 身份 計算1511 張林 組員 計

Redis系列(一)Redis簡介環境安裝

提到Redis,大家肯定都聽過,並且應該都在專案中或多或少的使用過,也許你覺得Redis用起來挺簡單的呀,但如果有人問你下面的幾個問題(比如同事或者面試官),你能回答的上來嗎? 什麼是Redis? Redis能儲存哪幾種資料結構? Redis有幾種持久化機制?它們的優缺點分別是什麼? 哪些場景需要使用Red

【BootStrap】Bootstrap簡介、環境安裝基本模板

BootStrap簡介 什麼是BootStrap 它由Twitter的設計師Mark Otto和Jacob Thornton合作開發。 基於 HTML、CSS、JAVASCRIPT。 主要是前端的框架(HTML、CSS、JS)。 (使用Bo

Day47HTML(簡介常用標簽)

back tar one cli 搜索 meta標簽 ges 總結 images 一、HTML簡介 html是什麽? 超文本標記語言(Hypertext Markup Language,HTML)通過標簽語言來標記要顯示的網頁中的各個部分。一套規則,瀏覽器認識的規則。 瀏

C#可擴展編程之MEF學習筆記(一)MEF簡介簡單的Demo(轉)

com ring this exec hosting code .cn 引用 展開 在文章開始之前,首先簡單介紹一下什麽是MEF,MEF,全稱Managed Extensibility Framework(托管可擴展框架)。單從名字我們不難發現:MEF是專門致力於解決擴展性

資料實時監控平臺(二)Telegraf簡介安裝

接著上一篇部落格:InfluxDB簡介及安裝,這篇部落格介紹下Linux環境下Telegraf安裝以及其功能特點。。。 官網地址:influxdata 官方文件:telegraf文件   環境:CentOS7.4 64位 Telegraf版本:0.11.1-1   一、Tel

數據實時監控平臺(二)Telegraf簡介安裝

完成 成功 show user 官方文檔 targe 相關 erp tps 設計 接著上一篇博客:InfluxDB簡介及安裝,這篇博客介紹下Linux環境下Telegraf安裝以及其功能特點。。。 官網地址:influxdata 官方文檔:telegraf文檔 環境:C

CAN匯流排學習記錄之一CAN簡介

CAN 是 Controller Area Net 的縮寫,即控制器區域性網,是一種有效支援分佈控制或實時控制的序列通訊網路。CAN 是德國 Bosch 公司為汽車的監測、控制系統而設計的,如控制發動機點火、注油及複雜的加速、剎車、抗鎖定剎車系統等,已用於各種汽車上。由於 CAN 具有卓越的特性及的可靠性,因

免費的dns伺服器(更換dns伺服器有時可以解決某些網站(如愛奇藝訪問不了的問題))

首先百度提供的dns就是非常好用的dns,小編就把百度的dns作為首選180.76.76.76。   其次是阿里提供的dns223.5.5.5,響應速度非常的快,而且沒有廣告劫持。  

LINUX檔案伺服器之一SAMBA伺服器

如果區域網中既有Windows也有Linux,並且想要共享檔案系統的話,我們該怎麼辦呢??? 答案就是:使用SAMBA伺服器!!!!SAMBA可以讓Linux加入Windows的網路上的芳鄰支援,讓不同的平臺可以共享檔案,非常好用!!! 那麼,什麼是SAMBA呢???? Samba是在L

SpringSecurity學習筆記之一SpringSecurity概述Github專案克隆

Spring Security是一種基於Spring AOP和Servlet規範中的Filter實現的安全框架。它能夠在Web請求級別和方法呼叫級別處理身份認證和授權。 Spring Security從兩個角度來解決安全性問題。 它使用Servlet規範中的Filter保護

Nginx 之一 伺服器安裝部署(一) LInux 環境下 Nginx 伺服器安裝基本配置

一、編譯和安裝前的準備工作 本部落格依賴環境: Linux Ubuntu 16.04 1.1 足夠的磁碟空間 能夠裝得下 Nginx 的軟體包和安裝檔案, 這個基本都能滿足。 1.2 需要的工具 為了編譯 Nginx 原始碼, 需要安裝標準的 GCC 編譯器。

最受歡迎的Java web應用伺服器之一——Tomcat監控選型實踐

監控選型   Tomcat Manager和Psi-probe是不錯的視覺化監控工具,能夠很好地檢視Tomcat狀態資訊(比如單位時間請求數,執行緒狀態等)。在生產環境中,隨著Tomcat例項的不斷增加,維護不同例項上的Manager控制檯會顯得有些繁瑣,同時,為了與企業監控系統、

JVM內部細節之一synchronized關鍵字實現細節(輕量級鎖Lightweight Locking)

  在C程式程式碼中我們可以利用作業系統提供的互斥鎖來實現同步塊的互斥訪問及執行緒的阻塞及喚醒等工作。然而在Java中除了提供Lock API外還在語法層面上提供了synchronized關鍵字來實現互斥同步原語。那麼到底在JVM內部是怎麼實現synchronized關鍵子的呢? 一、synchroni

快取DNS伺服器和主DNS伺服器的快速搭建詳解

一、設定配置內容 假設我們已經在網上註冊了wangej.com域名,得到的IP網路是172.16.12.0/24 ns伺服器是:172.16.12.1 www伺服器:172.16.12.1,另外一個地址:172.16.12.3 mail伺服器:172.16.12.2 ftp主機在www伺服器上,即ftp為ww

Android開發JSON簡介最全面解析方法(Gson、AS自帶org.json、Jackson解析)

目錄 JSON簡介&解析方法介紹.png 定義 JavaScript Object Notation,JavaScript的物件表示法,是一種輕量級的文字資料交換格式。 作用 用於資料的標記、儲存和傳輸。 特點 輕量級的文字資料交換格式 獨立於語言和平臺 具有自我描述性 讀寫速度快,解析簡單 語法

Ext4.2.1學習歷程之一環境搭建Hello ExtJS4.2

原文出處    http://blog.itpub.net/28562677/viewspace-1066765/ 1、從官網下載ExtJS4.2資源包,解壓開有原始碼、API文件、演示程式; 2、官網地址:http://www.sencha.com/products/e

【機器學習入門】Andrew NG《Machine Learning》課程筆記之一 課程簡介

作為大名鼎鼎Coursera 的創始人之一的斯坦福教授Andrew NG的課程《Machine Learning》是非常好的入門課程,內容淺顯,逐層深入,講解了很多機器學習中的常用概念和技術,最後實現一

Weex開發體驗之一環境搭建調測

搭建開發環境 參考文件 本機開發環境 windows7 64bit 搭建步驟 下載node node包括javascript的執行環境和npm; 下載地址:https://nodejs.org/zh-cn/download/ 安裝好後,檢測