redhat配置dns服務器bind

配置Oracle11g的RAC須要使用DNS服務器來解析SCAN IP,本文就是以此爲例介紹bind服務器的使用。首先科普一下bind服務器,屬於企業級產品了,仍是開源的:html

Bind是Berkeley Internet Name Domain Service的簡寫,它是一款實現DNS服務器的開放源碼軟件。Bind本來是美國DARPA資助伯克利大學(Berkeley)開設的一個研究生課題,後來通過多年的變化發展,已經成爲世界上使用最爲普遍的DNS服務器軟件,目前Internet上半數以上的DNS服務器有都是用Bind來架設的。參考文檔:http://www.cnblogs.com/luoahong/p/7859000.htmlnode

內網使用的簡單場合就使用基本的功能足夠了。要使用內網的dns服務器解析,每一個主機都有配置本地的服務器。linux中的配置就在/etc/resolv.conf文件修改。配置方法參考下面:linux

/etc/resolv.conf 該文件是DNS域名解析的配置文件,它的格式很簡單,每行以一個關鍵字開頭,後接配置參數。 resolv.conf的關鍵字主要有四個,分別是: nameserver #定義DNS服務器的IP地址 domain #定義本地域名 search #定義域名的搜索列表 sortlist #對返回的域名進行排序 詳細說明: nameserver 代表DNS服務器的IP地址。能夠有不少行的nameserver,每個帶一個IP地址。在查詢時就按nameserver在本文件中的順序進行, 且只有當第一個nameserver沒有反應時才查詢下面的nameserver。 domain  聲明主機的域名。不少程序用到它,如郵件系統;當爲沒有域名的主機進行DNS查詢時,也要用到。 若是沒有域名,主機名將被使用,刪除全部在第一個點( .)前面的內容。 search   它的多個參數指明域名查詢順序。當要查詢沒有域名的主機,主機將在由search聲明的域中分別查找。 domain和search不能共存;若是同時存在,後面出現的將會被使用。 sortlist   容許將獲得域名結果進行特定的排序。它的參數爲網絡/掩碼對,容許任意的排列順序。 /etc/resolv.conf的一個示例: domain centoscn.com search www.centocn.com www.wgjlb.com nameserver 202.96.128.86 nameserver 202.96.128.166 最主要是nameserver關鍵字,若是沒指定nameserver就找不到DNS服務器,其它關鍵字是可選的。Red Hat中沒有提供缺省的/etc/resolv.conf文件,它的內容是根據在安裝時給出的選項動態建立的。

redhat主機地址:192.168.2.60 。本地域名:localdomain,由於安裝了bind-chroot,修改配置文件就在/var/named/chroot/etc/named.conf,/etc/named.conf則無效(bind運行後chroot的etc裏面的name.rfc1912.zones好像會更新到/etc裏面的name.rfc1912.zones)數據庫

(In the zone definitions we defined the file containing the zone configuration. These files are located in the "/var/named/" directory. If you are using the "chroot" version of BIND, the location of the following files will be "/var/named/chroot/var/named" and you may need to change their group ownership to "named".)vim

此文件能夠從該目錄下named.caching-nameserver.conf複製而來。centos

配置信息以下:服務器

options { listen-on port 53 { any; };            //全部機器均可以使用該dns服務器查詢
        listen-on-v6 port 53 { ::1; };         //ip v6格式的寫法,同上一個意思
        directory       "/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"; // query-source port 53; // query-source-v6 port 53;

 allow-query { any; }; allow-query-cache { any; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; };

而後配置正向ZONE和反向ZONE,配置文件爲/var/named/chroot/etc/named.rfc1912.zones。由於如今咱們的本地域名設置爲localdomain,默認狀況下zone文件裏面在第15到第20行已經包含了localdomain域名的正向解析配置了,因此不用添加。若是本地域名適用其餘域名如xxx.com之類,就須要參照localdomain的配置來修改便可。網絡

 15 zone "localdomain" IN { 16 type master; 17         file "localdomain.zone"; 18         allow-update { none; }; 19 };
或者:
zone "xxx.com" IN {
        type master;
        file "xxx.com.zone";
        allow-update { none; };
};

反向配置則根據內網網段來配置,本地網段:192.168.2.0/24,另一個網段爲:10.10.10.0/24因此配置爲:dom

zone "2.168.192.in-addr.arpa" IN { type master; file "2.168.192.in-addr.arpa"; allow-update { none; }; }; zone "10.10.10.in-addr.arpa" IN { type master; file "10.10.10.in-addr.arpa"; allow-update { none; }; };

接着,配置正反向解析數據庫文件。利用/var/named/chroot/var/named/localhost.zone 複製生成正向解析的數據庫文件,利用/var/named/chroot/var/named/localhost.zone 複製生成名爲2.168.192.in-addr.arpa 的反向解析的數據庫文件,記得帶-p參數傳遞權限。測試

[root@linux named]# cp -p localhost.zone ./localdomain.zone [root@linux named]# cp -p localhost.zone ./2.168.192.in-addr.arpa

再編輯解析數據庫文件,使用不帶域名後綴的short name便可。具體RAC環境的網絡規劃爲:

Host name

Short  hostname

IP type

IP address

Interface

snode1.localdomain

snode1

Public ip

192.168.2.21

eth0

snode1-vip.localdomain

snode1-vip

Virtual ip

192.168.2.22

eth0:1

snode1-priv.localdomain

snode1-priv

Private ip

10.10.10.21

eth1

snode2.localdomain

snode2

Public ip

192.168.2.24

eth0

snode2-vip.localdomain

snode2-vip

Virtual ip

192.168.2.25

eth0:1

snode2-priv.localdomain

snode2-priv

Private ip

10.10.10.22

eth1

pnode1.localdomain

pnode1

Public ip

192.168.2.11

eth0

pnode1-vip.localdomain

pnode1-vip

Virtual ip

192.168.2.12

eth0:1

pnode1-priv.localdomain

pnode1-priv

Private ip

10.10.10.11

eth1

pnode2.localdomain

pnode2

Public ip

192.168.2.14

eth0

pnode2-vip.localdomain

pnode2-vip

Virtual ip

192.168.2.15

eth0:1

pnode2-priv.localdomain

pnode2-priv

Private ip

10.10.10.12

eth1

scan-cluster.localdomain

scan-cluster

Scan ip

192.168.2.23

eth0

scan-cluster.localdomain

scan-cluster

Scan ip

192.168.2.26

eth0

scan-cluster.localdomain

scan-cluster

Scan ip

192.168.2.13

eth0

配置完成的解析數據庫文件爲:

[root@linux named]# vim localdomain.zone $TTL 86400
@ IN SOA localhost root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost localhost IN A 127.0.0.1
pnode1 IN A 192.168.2.11
pnode1-vip      IN A            192.168.2.12
pnode1-priv     IN A            10.10.10.11
pnode2 IN A 192.168.2.14
pnode2-vip      IN A            192.168.2.15
pnode2-priv     IN A            10.10.10.12
snode1 IN A 192.168.2.21
snode1-vip      IN A            192.168.2.22
snode1-priv     IN A            10.10.10.21
snode2 IN A 192.168.2.24
snode2-vip      IN A            192.168.2.25
snode2-priv     IN A            10.10.10.22
scan-cluster    IN A            192.168.2.13
scan-cluster    IN A            192.168.2.23
scan-cluster    IN A            192.168.2.26

[root@linux named]# vim 2.168.192.in-addr.arpa $TTL 86400
@ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 60 IN PTR localhost. 11 IN PTR pnode1.localdomain 12      IN      PTR     pnode1-vip.localdomain 14 IN PTR pnode2.localdomain 15      IN      PTR     pnode2-vip.localdomain 21 IN PTR snode1.localdomain 22      IN      PTR     snode1-vip.localdomain 24 IN PTR snode2.localdomain 25      IN      PTR     snode2-vip.localdomain 23      IN      PTR     scan-cluster.localdomain 26      IN      PTR     scan-cluster.localdomain 13      IN      PTR     scan-cluster.localdomain

重啓bind:/etc/init.d/named restart

驗證解析結果,正向:

[root@linux named]# nslookup snode1 up scan-cluster nslookup scan-clusterServer:        192.168.2.60
Address: 192.168.2.60#53

Name: snode1.localdomain Address: 192.168.2.21

[root@linux named]# nslookup snode1-vip Server: 192.168.2.60
Address: 192.168.2.60#53

Name: snode1-vip.localdomain Address: 192.168.2.22

[root@linux named]# nslookup snode1-priv Server: 192.168.2.60
Address: 192.168.2.60#53

Name: snode1-priv.localdomain Address: 10.10.10.21

[root@linux named]# nslookup snode2 Server: 192.168.2.60
Address: 192.168.2.60#53

Name: snode2.localdomain Address: 192.168.2.24

[root@linux named]# nslookup snode2-vip Server: 192.168.2.60
Address: 192.168.2.60#53

Name: snode2-vip.localdomain Address: 192.168.2.25

[root@linux named]# nslookup snode2-priv Server: 192.168.2.60
Address: 192.168.2.60#53

Name: snode2-priv.localdomain Address: 10.10.10.22

[root@linux named]# nslookup pnode1 Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode1.localdomain Address: 192.168.2.11

[root@linux named]# nslookup pnode1-vip Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode1-vip.localdomain Address: 192.168.2.12

[root@linux named]# nslookup pnode1-priv Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode1-priv.localdomain Address: 10.10.10.11

[root@linux named]# nslookup pnode2 Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode2.localdomain Address: 192.168.2.14

[root@linux named]# nslookup pnode2-vip Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode2-vip.localdomain Address: 192.168.2.15

[root@linux named]# nslookup pnode2-priv Server: 192.168.2.60
Address: 192.168.2.60#53

Name: pnode2-priv.localdomain Address: 10.10.10.12

[root@linux named]# nslookup scan-cluster Server: 192.168.2.60
Address: 192.168.2.60#53

Name: scan-cluster.localdomain Address: 192.168.2.13
Name: scan-cluster.localdomain Address: 192.168.2.23
Name: scan-cluster.localdomain Address: 192.168.2.26

反向:

[root@linux etc]# nslookup 192.168.2.21
Server: 192.168.2.60
Address: 192.168.2.60#53

21.2.168.192.in-addr.arpa    name = snode1.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.22
Server: 192.168.2.60
Address: 192.168.2.60#53

22.2.168.192.in-addr.arpa    name = snode1-vip.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 10.10.10.21
Server: 192.168.2.60
Address: 192.168.2.60#53

21.10.10.10.in-addr.arpa    name = snode1-priv.localdomain.10.10.10.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.24
Server: 192.168.2.60
Address: 192.168.2.60#53

24.2.168.192.in-addr.arpa    name = snode2.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.25
Server: 192.168.2.60
Address: 192.168.2.60#53

25.2.168.192.in-addr.arpa    name = snode2-vip.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 10.10.10.22
Server: 192.168.2.60
Address: 192.168.2.60#53

22.10.10.10.in-addr.arpa    name = snode2-priv.localdomain.10.10.10.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.11
Server: 192.168.2.60
Address: 192.168.2.60#53

11.2.168.192.in-addr.arpa    name = pnode1.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.12
Server: 192.168.2.60
Address: 192.168.2.60#53

12.2.168.192.in-addr.arpa    name = pnode1-vip.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 10.10.10.11
Server: 192.168.2.60
Address: 192.168.2.60#53

11.10.10.10.in-addr.arpa    name = pnode1-priv.localdomain.10.10.10.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.14
Server: 192.168.2.60
Address: 192.168.2.60#53

14.2.168.192.in-addr.arpa    name = pnode2.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.15
Server: 192.168.2.60
Address: 192.168.2.60#53

15.2.168.192.in-addr.arpa    name = pnode2-vip.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 10.10.10.12
Server: 192.168.2.60
Address: 192.168.2.60#53

12.10.10.10.in-addr.arpa    name = pnode2-priv.localdomain.10.10.10.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.23
Server: 192.168.2.60
Address: 192.168.2.60#53

23.2.168.192.in-addr.arpa    name = scan-cluster.localdomain.2.168.192.in-addr.arpa. [root@linux etc]# nslookup 192.168.2.26
Server: 192.168.2.60
Address: 192.168.2.60#53

26.2.168.192.in-addr.arpa    name = scan-cluster.localdomain.2.168.192.in-addr.arpa.

說明配置成功。剩下的工做就是配置網絡內其餘主機的默認dns服務器地址就可使用了。

可是在配置其餘主機的DNS的服務器時咱們一般使用/etc/resolv.conf文件來修改,可是我測試在centos7中修改後/etc/init.d/network restart重啓網絡,發現/etc/resolv.conf文件又被複原了,可是不重啓網絡又不能使DNS設置生效。若是是這樣,解決方法就是修改網絡接口的DNS配置,即/etc/sysconfig/network-script/ifcfg-ethN中增長dns的選項。參考https://blog.csdn.net/kadwf123/article/details/78786947

具體步驟關閉NetworkManager是關鍵,方法以下:

[root@localhost etc]# service NetworkManager stop
Redirecting to /bin/systemctl stop  NetworkManager.service

[root@localhost etc]# /bin/systemctl stop  NetworkManager.service
[root@localhost etc]# service NetworkManager status
Redirecting to /bin/systemctl status  NetworkManager.service
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2019-05-08 23:29:19 CST; 29s ago
  Process: 10904 ExecStart=/usr/sbin/NetworkManager --no-daemon (code=exited, status=0/SUCCESS)
Main PID: 10904 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/NetworkManager.service
           └─12251 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /...

[root@localhost etc]# chkconfig NetworkManager offNote: Forwarding request to 'systemctl disable NetworkManager.service'.[root@localhost etc]# systemctl disable NetworkManager.service

相關文章
相關標籤/搜索