配置Oracle11g的RAC需要使用DNS服务器来解析SCAN IP,本文就是以此为例介绍bind服务器的使用。首先科普一下bind服务器,属于企业级产品了,还是开源的:

Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。参考文档:http://www.cnblogs.com/luoahong/p/7859000.html

内网使用的简单场合就使用基本的功能足够了。要使用内网的dns服务器解析,每个主机都有配置本地的服务器。linux中的配置就在/etc/resolv.conf文件修改。配置方法参考下面:

/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".)

此文件可以从该目录下named.caching-nameserver.conf复制而来。

配置信息如下:

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所以配置为:

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 off
Note: Forwarding request to 'systemctl disable NetworkManager.service'.
[root@localhost etc]# systemctl disable NetworkManager.service

redhat配置dns服务器bind的更多相关文章

  1. 在Debian上用Bind 配置DNS服务器

    1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...

  2. 烂泥:centos安装及配置DNS服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过 ...

  3. Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析

    从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP  ...

  4. centOS7配置DNS服务器

    世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给 ...

  5. centos6.5环境DNS-本地DNS服务器bind的搭建

    centos6.5环境DNS-本地DNS服务器bind的搭建 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库, ...

  6. CentOS7安装和配置dns服务器

    (1)dns介绍 1.基本介绍 名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名,www.baidu.com hosts文件: 作用:实现名字解析,主要为 ...

  7. 如何配置DNS服务器(局域网——域名指向某个IP地址)

    单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上 ...

  8. 配置DNS服务器IP

    #############################脚本功能及说明#################### #该脚本用来在本地服务器上配置DNS服务器IP #创建时间:2014-10-22 ## ...

  9. Ubuntu/CentOS使用BIND配置DNS服务器

    ------ubuntu server 12---------- 1.安装bind9 sudo apt-get -y install bind9 bind9utils 2.配置  /etc/bind/ ...

随机推荐

  1. angularJS中自定义指令

    学习了angularJS一周,但是大部分时间被自定义指令占用了.博主表示自学互联网好心塞的,发现问题的视觉很狭窄,这比解决问题要更难.这篇文章首先介绍了自定义,然后介绍了在使用自定义指令遇到的问题. ...

  2. Ajax效果--个人收藏

    $.ajax({ url: "../../../Tools/WeChatMenu.ashx?action=get_menu", type: "post", da ...

  3. ViewPageIndicator--仿网易的使用

    仿微信(网易的界面) 第一步: AndroidManifest.xml 的配置 <?xml version="1.0" encoding="utf-8"? ...

  4. ResultSetMetaData和ResultSet

    我现在有一张表t_product;我们查询所有的商品:SELECT * FROM t_product; 上述所有的数据都可以封装成一个对象,我们称这个查询出来的对象为结果集对象:ResultSet. ...

  5. Learning Python 012 函数式编程 1 高阶函数

    Python 函数式编程 1 高阶函数 高阶函数 Q:什么是高阶函数? A:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数. 简单举个例子: def add(x, y, f): return ...

  6. hadoop自动安装脚本

    还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码  如果谁能解决以上两点,欢迎email给我. 另外 ...

  7. java之Scanner

    参考http://how2j.cn/k/operator/operator-scanner/658.html#nowhere 需要用到从控制台输入数据,所以需要用到Scanner类 使用Scanner ...

  8. POJ 3691 DNA repair (DP+字符串)

    题意:给出nn(1≤n≤50,1≤n≤50) 个病毒DNA序列,长度均不超过20.现在给出一个长度不超过1000的字符串,求至少要更换多少个字符, 才能使这个字符串不包含这些DNA序列. 析:利用前缀 ...

  9. struts2知识点汇总

    标签遍历Map<key,List<Object>> listMap=new HashMap<String,List<Student>>(); List& ...

  10. Codeforces Round #527 (Div. 3)C(多重集,STRING)

    #include<bits/stdc++.h>using namespace std;const int maxn=1e6+7;pair<string,int>p[maxn]; ...