11g RAC R2 之Linux DNS 配置

   在动手配置前,最好先了解下DNS的理论,以免犯不必要的错误。这都是被坑后的觉悟 -_-!!!

  Oracle 11g RAC 集群中引入了SCAN(SingleClientAccessName)的概念,是指集群的单客户端访问名称。相当于在客户端和数据库之间增加一层虚拟的网络服务层,即 SCAN IP 和 SCAP IP Listener。在客户端的 tnsnames.ora 配置文件中,只需要配置 SCAN IP 的配置信息即可,客户端通过 SCANIP、 SCAN IP Listener 来访问数据库。

  同之前各版本的 RAC 相比,使用 SCAN IP 的好处就是, 当后台 RAC 数据库添加、删除节点时,客户端配置信息无需修改。SCAN 可以通过配置DNS 服 务器或 GNS 来配置 SCAN,我们这里以 DNS 为例来进行配置。

1、安装环境

1 可用单独机器作为DNS服务器,也可直接使用RAC的一个节点来做DNS解析。  
2 使用某个RAC节点时,容易出现该节点如果宕机将导致SCAN无法解析,客户端无法连接数据库.  
3 由于资源限制,我们只使用RAC1节点的public ip用作DNS。  
4 [root@racdb ~]# cat /etc/issue
5 Oracle Linux Server release 5.6Kernel \r on an \m
6     
7 [root@racdb ~]# 

2、主机节点host信息

[root@racdb ~]# cat /etc/hosts
127.0.0.1      localhost.racdb.com     localhost
::1            localhost6.localdomain6 localhost6

#public ip:
192.168.1.203  rac1.racdb.com   rac1        --用作DNS服务器地址
192.168.1.204  rac2.racdb.com   rac2

#private ip:
192.168.0.203  rac1priv.racdb.com rac1priv
192.168.0.204  rac2priv.racdb.com rac2priv

#vip
192.168.1.213  rac1vip.racdb.com  rac1vip
192.168.1.214  rac2vip.racdb.com  rac2vip
[root@racdb ~]# 

3、配置DNS

  • 安装所需的rpm包 
  • 配置named.conf文件,配置zone文件(可称为zone的索引文件) 
  • 配置正向和反向文件(zone文件中所指向的文件) 
  • 配置解析文件resolv.conf 
  • 启动dns服务 

3.1 安装所需的rpm包,注意安装顺序

1 [root@node1 dns_rpm]# ls 
2     bind-9.3.6-16.P1.el5.i386.rpm  
3     bind-chroot-9.3.6-16.P1.el5.i386.rpm
4     caching-nameserver-9.3.6-16.P1.el5.i386.rpm    
5 下面安装rpm包  
6 [root@node1 dns_rpm]# rpm -ivh bind-9.3.6-16.P1.el5.i386.rpm   
7 [root@node1 dns_rpm]# rpm -ivh bind-chroot-9.3.6-16.P1.el5.i386.rpm   
8 [root@node1 dns_rpm]# rpm -ivh caching-nameserver-9.3.6-16.P1.el5.i386.rpm

3.2 配置named.conf文件

 1 进入目录
 2 [root@racdb ~]# cd /var/named/chroot/etc/                   
 3 
 4 使用下面的方式复制一个新的副本并修改,参数-p表示连同权限及属主,属组一同复制。切记不可忽略参数-p  
 5 [root@node1 etc]# cp -p named.caching-nameserver.conf   named.conf   
 6 [root@node1 etc]# cp -p named.rfc1912.zones   named.zones 7 
 8 修改named.conf文件
 9 将源文件中的所有localhost以及127.0.0.1修改成any,注意any;前后保留空格  
10 该文件主要是配置dns监听那些端口以及ip地址并指明相应的名字解析zone文件名named.zones  
11 下面是修改后的named.conf文件  
12 [root@racdb etc]# cat /var/named/chroot/etc/named.conf
13 //
14 // named.caching-nameserver.conf
15 //
16 // Provided by Red Hat caching-nameserver package to configure the
17 // ISC BIND named(8) DNS server as a caching only nameserver 
18 // (as a localhost DNS resolver only). 
19 //
20 // See /usr/share/doc/bind*/sample/ for example named configuration files.
21 //
22 // DO NOT EDIT THIS FILE - use system-config-bind or an editor
23 // to create named.conf - edits to this file will be lost on 
24 // caching-nameserver package upgrade.
25 //
26 options {
27         listen-on port 53 { any; };  //修改
28         listen-on-v6 port 53 { ::1; };
29         directory       "/var/named";
30         dump-file       "/var/named/data/cache_dump.db";
31         statistics-file "/var/named/data/named_stats.txt";
32         memstatistics-file "/var/named/data/named_mem_stats.txt";
33 
34         // Those options should be used carefully because they disable port
35         // randomization
36         // query-source    port 53;
37         // query-source-v6 port 53;
38 
39         allow-query     { any; };   //修改
40         allow-query-cache { any; }; //修改
41 };
42 logging {
43         channel default_debug {
44                 file "data/named.run";
45                 severity dynamic;
46         };
47 };
48 view localhost_resolver {
49         match-clients      { any; }; //修改
50         match-destinations { any; }; //修改
51         recursion yes;
52         include "named.zones"; //修改,修改后的指向我们的拷贝文件 named.zones                                         
53 };
54 [root@racdb etc]# 

    配置zone文件(可称为zone的索引文件)

 1 #文件末尾最后的两个zone为新增加的  
 2 #注意每一个zone的file用于指向真正的zone文件,后面要用到     
 3 #下面是修改后的named.zones文件  
 4 [root@racdb etc]# cat named.zones
 5 // named.rfc1912.zones:
 6 //
 7 // Provided by Red Hat caching-nameserver package 
 8 //
 9 // ISC BIND named zone configuration for zones recommended by
10 // RFC 1912 section 4.1 : localhost TLDs and address zones
11 // 
12 // See /usr/share/doc/bind*/sample/ for example named configuration files.
13 //
14 zone "." IN {
15         type hint;
16         file "named.ca";
17 };
18 
19 zone "localdomain" IN {
20         type master;
21         file "localdomain.zone";
22         allow-update { none; };
23 };
24 
25 zone "localhost" IN {
26         type master;
27         file "localhost.zone";
28         allow-update { none; };
29 };
30 
31 zone "0.0.127.in-addr.arpa" IN {
32         type master;
33         file "named.local";
34         allow-update { none; };
35 };
36 
37 zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
38         type master;
39         file "named.ip6.local";
40         allow-update { none; };
41 };
42 
43 zone "255.in-addr.arpa" IN {
44         type master;
45         file "named.broadcast";
46         allow-update { none; };
47 };
48 
49 zone "0.in-addr.arpa" IN {
50         type master;
51         file "named.zero";
52         allow-update { none; };
53 };
54 
55 #以下两个zone为新增的,包含正向和反向zone
56 zone "racdb.com" IN {          #正向。racdb.com为域名,此域名的声明要放到 resolv.conf 文件中
57         type master;  
58         file "racdb.zero";     #正向解析文件名称 此文件目录/var/named/chroot/var/named
59         allow-update { none; };  
60 };
61     
62 zone "1.168.192.in-addr.arpa" IN {  #反向,1.168.192为所要解析的ip网段
63         type master;
64         file "1.168.192.in-addr.arpa";  #反向解析文件名称 此文件目录/var/named/chroot/var/named
65         allow-update { none; };
66 };

3.3 配置正向和反向解析文件

1 [root@racdb etc]# pwd
2 /var/named/chroot/etc
3 [root@racdb etc]# cd ../var/named/
4 [root@racdb named]#   
5 #同样使用cp -p 方式复制文件到新的正向和反向文件  
6 [root@racdb named]# cp -p named.zero  racdb.zero #文件名就是named.zones -> racdb.com(正向域名) -> file的名称一致     
7 [root@racdb named]# cp -p named.local 1.168.192.in-addr.arpa   #文件名就是named.zones -> racdb.com(反向域名) -> file的名称一致 

3.3.1 修改后的正向搜索文件

 1 [root@racdb named]# cat racdb.zero 
 2 $TTL    86400
 3 @               IN SOA  racdb.com.      root.racdb.com. (
 4                                         42              ; serial (d. adams)
 5                                         3H              ; refresh
 6                                         15M             ; retry
 7                                         1W              ; expiry
 8                                         1D )            ; minimum
 9         IN      NS      racdb.com.
10 racscan IN      A       192.168.1.200
11 racscan IN      A       192.168.1.199
12 racscan IN      A       192.168.1.198
13 [root@racdb named]#
14 
15 SOA 是授权起始(Start Of Authority)的缩写,后面接着是dns服务器的主机名,这里是"racdb.com。"16 注意,主机名称后面的小圆点。凡是出现在记录文件了的主机名,记得都要加上这各小圆点  
17 NS 是名称服务器资源记录,指明域中的名称服务器,这里就是dns服务器
18 A是主机记录,把IP名和ip地址对应起来
19 可以添加多个A记录,我们的SCAN 有三个ip,这里我们就添加了3个
20 了解这些已经够用了,具体详情自行google ^_^

3.3.2 修改后的反向搜索文件

 1 [root@racdb named]# cat 1.168.192.in-addr.arpa
 2 $TTL    86400
 3 @       IN      SOA     racdb.com. root.racdb.com.  (
 4                                       1997022700 ; Serial
 5                                       28800      ; Refresh
 6                                       14400      ; Retry
 7                                       3600000    ; Expire
 8                                       86400 )    ; Minimum
 9         IN      NS      racdb.com.
10 1       IN      PTR     racdb.com.
11 200     IN      PTR     racscan.
12 199     IN      PTR     racscan.
13 198     IN      PTR     racscan.
14 
15 [root@racdb named]#  
16 同正向解析文件相似,不同点是PTR
17 PTR记录把IP和IP名对应起来,
18 可以添加多个PTR记录

3.4 配置解析文件resolv.conf

 1 在RAC1节点配置resolv.conf文件  
 2 [root@racdb named]# vi /etc/resolv.conf
 3 search     racdb.com      #定义域名的搜索列,即name.zones文件中zone域名均要在此声明(不包含反向zone及系统默认的localhost)
 4 nameserver 192.168.1.203  #定义DNS服务器的IP地址
 5 
 6   
 7 #在RAC2节点上的resolv.conf文件  
 8 [root@racdb named]# vi /etc/resolv.conf
 9 search     racdb.com      #定义域名的搜索列
10 nameserver 192.168.1.203  #定义DNS服务器的IP地址

3.5 启动dns服务

 1 [root@racdb named]# service named restart  
 2 Stopping named: .[  OK  ]
 3 Starting named: [  OK  ]
 4 [root@racdb named]# chkconfig named on  
 5   
 6 #测试dns解析RAC1 正向解析 
 7 [root@rac1 bin]# nslookup racscan
 8 Server:         192.168.1.203
 9 Address:        192.168.1.203#53
10 
11 Name:   racscan.racdb.com
12 Address: 192.168.1.200
13 Name:   racscan.racdb.com
14 Address: 192.168.1.198
15 Name:   racscan.racdb.com
16 Address: 192.168.1.199
17 
18 [root@rac1 bin]# 
19 
20 #测试dns解析RAC2 正向解析 
21 [root@rac2 bin]# nslookup racscan
22 Server:         192.168.1.203
23 Address:        192.168.1.203#53
24 
25 Name:   racscan.racdb.com
26 Address: 192.168.1.199
27 Name:   racscan.racdb.com
28 Address: 192.168.1.200
29 Name:   racscan.racdb.com
30 Address: 192.168.1.198
31 
32 [root@rac2 bin]#   
33 
34 #测试dns解析RAC1 反向解析 
35 [root@rac1 bin]# nslookup 192.168.1.200
36 Server:         192.168.1.203
37 Address:        192.168.1.203#53
38 
39 200.1.168.192.in-addr.arpa      name = racscan.
40 
41 [root@rac1 bin]# nslookup 192.168.1.199
42 Server:         192.168.1.203
43 Address:        192.168.1.203#53
44 
45 199.1.168.192.in-addr.arpa      name = racscan.
46 
47 [root@rac1 bin]# nslookup 192.168.1.198
48 Server:         192.168.1.203
49 Address:        192.168.1.203#53
50 
51 198.1.168.192.in-addr.arpa      name = racscan.
52 
53 [root@rac1 bin]# 
54 
55 #测试dns解析RAC2 反向解析
56 [root@rac2 bin]# nslookup 192.168.1.200
57 Server:         192.168.1.203
58 Address:        192.168.1.203#53
59 
60 200.1.168.192.in-addr.arpa      name = racscan.
61 
62 [root@rac2 bin]# nslookup 192.168.1.199
63 Server:         192.168.1.203
64 Address:        192.168.1.203#53
65 
66 199.1.168.192.in-addr.arpa      name = racscan.
67 
68 [root@rac2 bin]# nslookup 192.168.1.198
69 Server:         192.168.1.203
70 Address:        192.168.1.203#53
71 
72 198.1.168.192.in-addr.arpa      name = racscan.
73 
74 [root@rac2 bin]#

 

posted @ 2014-07-06 16:35  PoleStar  阅读(1816)  评论(0编辑  收藏  举报