配置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文件修改。配置方法参考下面:
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复制而来。
配置信息如下:
然后配置正向ZONE和反向ZONE,配置文件为/var/named/chroot/etc/named.rfc1912.zones。因为现在我们的本地域名设置为localdomain,默认情况下zone文件里面在第15到第20行已经包含了localdomain域名的正向解析配置了,所以不用添加。如果本地域名适用其他域名如xxx.com之类,就需要参照localdomain的配置来修改即可。
反向配置则根据内网网段来配置,本地网段:192.168.2.0/24,另外一个网段为:10.10.10.0/24所以配置为:
接着,配置正反向解析数据库文件。利用/var/named/chroot/var/named/localhost.zone 复制生成正向解析的数据库文件,利用/var/named/chroot/var/named/localhost.zone 复制生成名为2.168.192.in-addr.arpa 的反向解析的数据库文件,记得带-p参数传递权限。
再编辑解析数据库文件,使用不带域名后缀的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 |
配置完成的解析数据库文件为:
重启bind:/etc/init.d/named restart
验证解析结果,正向:
反向:
说明配置成功。剩下的工作就是配置网络内其他主机的默认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