歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 在Linux下輕松搭建自己的DNS服務器

在Linux下輕松搭建自己的DNS服務器

日期:2017/3/2 10:01:54   编辑:關於Linux

經常上網的朋友可能經常去新浪、搜狐等大型網站,只需要在浏覽器輸入它們的網址即可實現訪問,看似非常簡單,但是從技術層面來講,卻包含了一個復雜的過程:在訪問網頁的時候,首先在浏覽器輸入網站域名,接著浏覽器會根據本機DNS服務器的設置將輸入的網站域名轉換為對應的IP地址,然後才去這個IP對應的服務器上請求數據,最後將請求得到的數據通過浏覽器顯示出來。這個過程最主要的一個環節就是從域名到IP地址的轉換,而這個工作就是靠DNS服務器實現的。

一、 DNS服務概述
DNS是Domain Name System的縮寫,即域名系統,DNS服務主要的功能是將域名轉換為相應的IP地址,提供DNS服務的系統就是DNS服務器。
DNS服務器可以分為3種,主域名服務器(Master DNS)、輔助域名服務器(Slave DNS)和高速緩存服務器(Cache-only server)。
Master DNS,本身提供dns服務,並且本身含有區域數據文件。
Slave DNS,和Master一起提供dns服務,當Master服務器上的配置信息修改的時候,會自動更新到Slave服務器達到同步。
Cache-only server,沒有自己的區域數據文件,只是幫助客戶端向外部dns請求查詢,然後將查到的結果保存到它的緩存中。
在linux系統下DNS服務的功能是通過bind軟件實現的,幾乎每個linux發行版都自帶了這個DNS服務軟件,下面將具體講述DNS服務的安裝、配置與使用。

二、 DNS服務的搭建
這裡我們的講述環境為:
操作系統:Red Hat Enterprise Linux Server release 5
bind軟件版本:系統自帶bind-9.3.4

1. 安裝bind軟件
Rhel5系統下安裝bind需要同時安裝bind-utils、bind-chroot、ypbind、bind-libs、caching-nameserver幾個支持bind的軟件包。檢查系統是否正確安裝了bind軟件,執行如下命令:
[root@localhost ~]# rpm -qa |grep bind
bind-libs-9.3.4-6.0.2.P1.el5_2
bind-utils-9.3.4-6.0.2.P1.el5_2
bind-chroot-9.3.4-6.0.2.P1.el5_2
ypbind-1.19-8.el5
bind-9.3.4-6.0.2.P1.el5_2
[root@localhost ~]# rpm -qa |grep caching-nameserver
caching-nameserver-9.3.4-6.0.2.P1.el5_2
上面的幾個軟件包都可以從系統安裝光盤找到,如果沒有安裝或者缺少某些包,請自行通過rpm方式進行安裝,這裡不在過多講述。
如果你的系統支持yum方式自動升級,只需執行如下命令即可自動完成安裝:
[root@localhost ~]#yum install bind caching-nameserver

2.配置DNS服務
Bind軟件在rhel 5版本中使用了chroot技術,與其它linux版本下的配置不盡相同,例如沒有DNS服務的核心配置文件named.conf以及任何區域數據文件,安裝程序的路徑也與其它版本不同。不過這些並不影響我們對DNS的配置,下面首先講述bind在rhel5下的安裝目錄結構。
Bind安裝完畢,主程序目錄默認為/var/named,由於rhel5下的bind默認安裝後沒有named.conf文件,而我們在上面安裝了caching-nameserver包,這個包提供了rhel5下bind的初始化模板文件,所以/var/named/chroot/etc是DNS的核心配置文件目錄,/var/named/chroot/var/named目錄則是系統自帶的區域數據文件及自己建立的區域數據文件的位置。
(1)named.conf文件詳解
這裡我們通過系統提供給bind的初始化模板文件構造出named.conf文件來。
[root@localhost ~]#cd /var/named/chroot/etc
[root@localhost etc]# cp named.rfc1912.zones named.conf
[root@localhost etc]#chown root:named named.conf
在這裡,我們通過拷貝named.rfc1912.zones文件構造出了named.conf主配置文件。然後將named.conf的權限設置為root:named,注意,這個授權很重要,要不然DNS無法正常工作。
[root@localhost ~]#vi /var/named/chroot/etc/named.conf
// named.rfc1912.zones:
// Provided by Red Hat caching-nameserver package
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// See /usr/share/doc/bind*/sample/ for example named configuration files.
在named.conf配置文件中主要使用“//”和“/* */”來進行注釋。
options {
directory "/var/named";
};
上面這段通過OPTIONS選項定義了一些影響整個DNS服務器的環境設置,directory選項指定named從/var/named目錄下讀取DNS數據文件,這個目錄用戶可自行指定並創建,指定後所有的DNS數據文件都存放在此目錄下。
zone "ixdba.net" IN {
type master;
file "ixdba.net";
allow-update { none; };
};
上面這段設置是用zone關鍵字來定義一個正向域區,對應的域名分別為ixdba.net,一個zone關鍵字定義一個域區。在這裡type類型有三種,它們分別是master,slave和hint,它們的含義分別是:
 Master:表示定義的是主域名服務器。
 slave:表示定義的是輔助域名服務器。
 hint:表示是互聯網中根域名服務器。
file用來指定存放DNS記錄的文件,allow-update定義是否允許客戶主機或服務器自行更新DNS記錄,上面指定的這個正向區域不允許更新DNS記錄。
zone "60.168.192.in-addr.arpa" IN {
type master;
file "60.168.192.zone";
allow-update { none; };
};
上面這段設置是定義一個IP為192.168.60.*的反向區域。
(2)區域數據文件的設定
在/var/named/chroot/var/named目錄下,我們定義出上面指定的幾個區域數據文件。
[root@localhost ~]#cd /var/named/chroot/var/named
[root@localhost named]#cp localhost.zone ixdba.net
[root@localhost named]#cp named.local 60.168.192.zone
[root@localhost named]#chown root:named ixdba.net 60.168.192.zone
下面我們分析下正向區域數據文件的格式和含義,主要看下我們已經設定好的ixdba.net區域數據文件:
[root@localhost named]#more /var/named/chroot/var/named/ixdba.net

Copyright © Linux教程網 All Rights Reserved