天天看點

Redhat linux DNS配置指南

在oracle 11g的rac中增加了scan ip,而使用 scan ip的一種方式就是使用dns,這裡介紹在redhat linux 5.4中dns的詳細配置操作

在配置dns之前修改主機名

redhat linux 5.4 dns配置操作

一.安裝軟體包

redhat linux 5.4 下的dns服務所有的bind包如下:

使用rpm –qa | grep bind來檢查系統是否已經安裝了以上軟體包:

對于沒有安裝的軟體包執行以下指令進行安裝

還要手動安裝一個軟體包caching-nameserver-9.3.6-4.p1.el5 ,不安裝這個軟體包named服務不能啟動,會報錯誤資訊 例如:

二.複制模闆檔案

由于安裝了chroot環境,是以我們的dns主配置檔案應該在/var/named/chroot/etc目錄下面

named.caching-nameserver.conf檔案内容如下:

這個檔案告訴我們不要直接的編輯這個檔案,去建立一個named.conf檔案,然後編輯named.conf檔案,當有了named.conf,将不在讀取這個檔案。現在就将named.caching-nameserver.conf檔案複制成named.conf檔案。

可以看到,named.conf檔案就被建立成功了。最好在copy的時候加上-p的參數,保留權限。否則啟動服務的時候會報權限拒絕的。

三.編輯named.conf檔案

解釋這些文法參數的意思

options

代表全局配置

listen-on port 53 { any; };

dns服務監聽在所有接口

listen-on-v6 port 53 { ::1; };

ipv6監聽在本地回環接口

directory "/var/named";

zone檔案的存放目錄,指的是chroot環境下面的/var/named

dump-file "/var/named/data/cache_dump.db";

存放緩存的資訊

statistics-file "/var/named/data/named_stats.txt";

統計使用者的通路狀态

memstatistics-file "/var/named/data/named_mem_stats.txt";

每一次通路耗費了多數記憶體的存放檔案

allow-query { 10.138.130.0/24 };

允許查詢的用戶端,現在修改成本地網段,

allow-query-cache {any; };

允許那些用戶端來查詢緩存,any表示允許任何人。

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

定義日志的存放位置在/var/named/chroot/var/named/data/目錄下面

view localhost_resolver {

match-clients { 10.138.130.0/24; };

match-destinations { any; };

recursion yes;

include "/etc/named.rfc1912.zones";

這裡是定義視圖的功能,

match-clients 是指比對的用戶端

match-destination 是指比對的目标

到這裡,named.conf檔案就已經配置成功了,這個視圖最後寫include "/etc/named.rfc1912.zones";接下面,就去配置這個檔案。當然,我們可以比對不同的用戶端來建立不同的視圖。

四.定義zone檔案

zone “.” 根區域

zone “sbyy.com” 定義正向解析的區域

zone "130.138.10.in-addr.arpa" 定義反向解析的區域

in internet記錄

type hint 根區域的類型為hint

type master 區域的類型為主要的

file “named.ca” ; 區域檔案是named,ca

file "sbyy.zone"; 指定正向解析的區域檔案是sbyy.zone

file "named.sbyy"; 指定反向解析的區域檔案是named,sbyy

allow-update { none; }; 預設情況下,是否允許用戶端自動更新

在named.ca檔案中就定義了全球的13台根伺服器,

在sbyy.com檔案中就定義dns的正向解析資料庫

在named.sbyy檔案中就定義dns反向解析的資料庫

定義zone檔案就完成了,下面來編輯dns的資料庫檔案。

五.使用模闆檔案來建立資料庫檔案

可以看到,在chroot環境下面的/var/named/有很多模闆檔案。named.ca就是根區域的資料庫檔案,我們将localhost.zone複制成sbyy.zone,這個是正向解析的資料庫檔案,将named.local複制成named.sbyy,這個是反向解析的資料庫檔案。資料庫檔案一定要和/etc/named.rfc1912.zones這個檔案裡面的比對。

複制成功,正向解析和反向解析的資料庫檔案就建立完成了。

六.定義資料庫檔案

1. 定義正向解析資料庫檔案

關于正向解析資料庫中每一行參數的解釋

$ttl 86400

最小的存活的時間是86400s(24h)

@ in soa @ root (

這是一筆soa記錄,隻允許存在一個soa記錄

@是代表要解析的這個域本身()

in是internet記錄。

soa 是初始授權記錄,指定網絡中第一台dns server。

root是指管理者的郵箱。

44 ; serial (d. adams)

3h ; refresh

15m ; retry

1w ; expiry

1d ) ; minimum

這些部分主要是用來主dns和輔助dns做同步用的

44 序列号,當主dns資料改變時,這個序列号就要被增加1,而輔助dns通過序列号來和主dns同步。

3h 重新整理,主dns和輔助dns每隔三小時同步一次。

15m 重試,3h之内,沒有同步,每隔15m在嘗試同步

1w 過期,1w之内,還沒有同步,就不同步了

1d 生存期,沒有這條記錄,緩存的時間。

@ in ns beiku1.sbyy.com.

這是一筆ns記錄,指定nameserver為beiku1.sbyy.com至少要有一筆ns記錄

beiku1 in a 10.138.130.161

指定beiku1的ip位址為10.138.130.161

beikuscan in a 10.138.130.167

指定beikuscan的ip位址為10.138.130.167

beikuscan in a 10.138.130.168

指定beikuscan的ip位址為10.138.130.168

beikuscan in a 10.138.130.169

指定beikuscan的ip位址為10.138.130.169

beiku2 in a 10.138.130.162

指定beiku2的ip位址為10.138.130.162

正向解析的資料庫就完成了,下面定義反向解析的資料庫。

2. 定義反向解析資料庫

其實反向解析的資料庫檔案的配置和正向解析的差不多,隻需要将ip位址和域名換一個位置就可以了,把a換成ptr就ok了。

dns的基本配置就完成了,在來看看dns是否能夠正常工作。

我們先重新開機一下dns服務

可以看到,dns服務啟動成功了。

在查詢以前,要在用戶端來指定dns server,在/etc/resolv.conf這個檔案中指定。

參數及意義:

nameserver 表明dns 伺服器的ip 位址,可以有很多行的nameserver,每一個帶一個ip位址。

在查詢時就按nameserver 在本檔案中的順序進行,且隻有當第一個nameserver 沒有反應時才查詢下面的nameserver.

domain 聲明主機的域名。很多程式用到它,如郵件系統;當為沒有域名的主機進行dns 查詢時,也要用到。如果沒有域名,主機名将被使,用删除所有在第一個點( . )前面的内容。

search 它的多個參數指明域名查詢順序。當要查詢沒有域名的主機,主機将在由search 聲明的域中分别查找。

domain 和search 不能共存;如果同時存在,後面出現的将會被使用。

sortlist 允許将得到域名結果進行特定的排序。它的參數為網絡/掩碼對,允許任意的排列順序。

再來使用nslookup工具來查詢一下

可以看到,dns解析一切正常,上面隻是配置了主dns伺服器,而且主dns伺服器也工作正常,現在我們來配置一個輔助dns伺服器

配置輔助dns伺服器

主dns的東西和輔助dns東西其實是相同的

和主dns配置一樣

輔助dns在定義zone檔案的時候和主dns有些不同

在輔助dns裡面 type要改為slave

master { 10.138.130.161; }; 而且必須指定主dns的ip address

file "slaves/sbyy.com";

file "slaves/named.sbyy";

為什麼要指定資料庫檔案在slaves目錄下面呢,是因為slaves目錄是擁有人和擁有組都是named使用者,在啟動dns服務的時候,隻有named有權限進行操作,是以我們要把資料庫放在這個目錄下面。

可以看到,slaves目錄的擁有人和擁有組是named,并且現在的slaves目錄下面是什麼東西都沒有的。

現在我們重新開機一下dns服務

可以看到,服務啟動成功了。在啟動服務的同時,我們來檢視一下日志資訊,看看日志裡面有什麼提示

在日志裡面可以看到,主dns與輔助dns正在同步序列号,同步成功,這個日志裡面的資訊非常的詳細。

接下來,我們在到slaves目錄下面去看看

剛才slaves目錄下面的是什麼東西都沒有,現在就多了兩個檔案,example.com和named.example這個兩個檔案。這個就是我們剛才在定義zone檔案的時候在slaves目錄下面定義的,檔案名是随意寫的,這個沒有關系,但是裡面東西是和主dns一樣的。

我們檢視這兩個檔案的具體内容

這兩個檔案裡面的内容和我們的主dns的内容都是一樣的。而且還幫我們整理的非常的漂亮。這些都是系統自動生成的。

現在我們來測試一下主dns和輔助dns可不可以正常的工作

現在我們将主dns和輔助dns都設定一下。然後在使用nslookup工具來測試

現在解析沒有問題,還是有10.138.130.161這台主dns來解析的。

接下來,我們将10.138.130.161這台主dns給down,看下10.138.130.162這台輔助dns能否正常工作。

用nslookup來測試一下

現在解析照樣成功了,現在并不是通過10.138.130.161這台主dns來解析出來的,而是通過我們的10.138.130.162這台輔助dns來解析出來的。當我們網絡中的主dnsdown掉的時候,我們的輔助dns照樣能夠正常的工作。我們還可以實作負載均衡,可以在網絡中的一半用戶端的主dns指向10.138.130.161,輔助dns指向10.138.130.161。将網絡中的另一半用戶端的主dns指向10.138.130.162,輔助dns指向10.138.130.161。這樣兩台伺服器都可以正常的工作,正常的為用戶端解析,當其中的一台dnsdown掉後,另一台dns也會繼續的工作,這樣就實作了簡單的負載均衡。到目前為止,我們的主dns server 和我們的輔助dns server都已經設定成功了,并且都可以正常的工作了。

接下來,我們在做一個試驗,我們在主dns添加一條記錄,看下輔助dns能否檢測試到這條記錄,不能夠在輔助dns上面添加記錄,這樣沒有意義,我們的主dns是檢測不到這條記錄的。

增加了www in a 10.138.130.170記錄。在主dns裡面做了新的操作以後,一定要将主dns的序列号加一。否則輔助dns是不會來同步我們的主dns的。我們已經将主dns的序列号加一了,但是預設情況下,主dns與輔助dns的同步時間是3h,這樣我們很難看到效果,我們将它改為2m,然後在将重試時間改為2m,這樣就代表每隔兩分鐘主dns和輔助dns進行同步,如果同步不成功,在隔兩分鐘同步一次。接下來我們将反向解析裡面的也來修改一下

這樣,反向解析裡面也已經修改完成了。現在将dns服務重新開機

重新開機成功,等幾分鐘之後在來看下效果。現在我們檢視輔助dns的正向解析資料庫檔案的内容

ok,可以看到,我們剛才在主dns裡面添加的一條新的記錄現在已經被輔助dns同步過去了,而且輔助dns的序列号和重新整理時間,重試時間都同步了。下來我們檢視輔助dns的反向解析資料庫檔案的内容

ok,也可以看到,輔助dns也已經同步成功了,到此dns的配置就完成了。