DNS常见配置

简介:

在前面的文章中我们搭建了一个主从DNS,但是在实际的应用中,仅仅搭建起来是不够的,对DNS添加各种记录是日常维护DNS中比较常见的问题,如添加A记录,CNAME,MX,PTR等。


添加A记录

在主从的配置中,一般会对主DNS进行修改,从DNS同步主DNS的数据。

编辑master节点的zone配置文件,可以直接在末尾添加一行记录,同时将serial值 +1:

1
           2001      ; serial   # 将原来2000的serial值改为2001,使进行slave同步
1
2
3
4
5
$ORIGIN  test .com.
shanks   A  1.2.3.4
op       A   1.2.3.4
t      A    1.2.3.4
trying  A   192.168.1.2   # 添加的一行记录

执行 rndc reload 使配置文件生效,此时,slave上的zone文件也会更新。

验证结果:

1
2
3
4
5
6
[root@DNS-Server ~] # host trying.test.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1 #53
Aliases: 
trying. test .com has address 192.168.1.2


添加CNAME记录

与添加A记录一样,在文件末尾追加一行记录:

1
tryingstuff  CNAME  trying. test .com.    # 末尾的“.” 不能忽略

将serial +1

执行rndc reload使配置文件生效。

验证结果:

1
2
3
4
5
6
7
[root@DNS-Server ~] # host tryingstuff.test.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1 #53
Aliases: 
tryingstuff. test .com is an  alias  for  trying. test .com.
trying. test .com has address 192.168.1.2


添加MX记录

同理,修改zone 配置文件,serial +1, zone文件末尾加入一行结果:

1
2
# vim /var/named/chroot/etc/test.com.zone
mx  MX 3   192.168.1.100   # 3表示优先级,数字越低,优先级越高

执行rndc reload, 测试结果:

1
2
3
4
5
6
[root@DNS-Server ~] # host mx.test.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1 #53
Aliases: 
mx. test .com mail is handled by 3 192.168.1.100. test .com.


添加PTR记录

在很多场景中需要用到PTR反向解析,这里在原来的基础上添加PTR记录:

编辑master 上的view配置文件,加入PTR的zone:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@DNS-Server etc] # cat view.conf 
view  "View-test"  {
  zone  "test.com"  {
     type  master;
     file  "test.com.zone" ;
     allow-transfer {
     192.168.1.11;
};
   notify  yes ;
   also-notify {
     192.168.1.11;
};
};
zone  "168.192.in-addr.arpa"  {   # 这里是添加的反向解析域名,表示解析192.168段的主机
         type     master;
         file     "168.192.zone" ;   # zone 文件名
         allow-transfer {
                 192.168.1.11;
         };
         notify   yes ;
         also-notify {
                 192.168.1.11;
         };
   };
};

在添加了PTR的域之后,需要在指定的168.192.zone 文件中指定解析的内容:

1
2
3
4
5
6
7
8
9
10
11
[root@DNS-Server etc] # cat 168.192.zone 
$TTL 3600       ; 1 hour
@                 IN SOA   op . test .com. dns. test .com. (
                                 2000       ; serial
                                 900        ; refresh (15 minutes)
                                 600        ; retry (10 minutes)
                                 86400      ; expire (1 day)
                                 3600       ; minimum (1 hour)
                                 )
                         NS       op . test .com.
100.1   IN   PTR   a. test .com.   # 添加的反向解析记录,对应的IP为 192.168.1.100

修改master上PTR zone文件的属性:

1
2
chown  named.named 168.192.zone 
rndc reload


此时slave上的节点是不会同步master上的PTR zone文件的,需要先设置zone配置文件。

修改slave节点/var/named/chroot/etc/view.confg的配置,增加PTR的zone配置:

1
2
3
4
5
6
     zone  "168.192.in-addr.arpa"  {
        type  slave;
        masters {192.168.1.10;};
        Masterfile-Format Text;
        file  "slave.168.192.zone" ;
};

执行rndc reload,同步PTR zone文件,此时,在slave上就可以看到slave同步的文件了。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@DNS-Slave ~] # cat /var/named/chroot/etc/slave.168.192.zone 
$ORIGIN .
$TTL 3600; 1 hour
168.192. in -addr.arpa    IN SOA     op . test .com. dns. test .com. (
2001       ; serial
900        ; refresh (15 minutes)
600        ; retry (10 minutes)
86400      ; expire (1 day)
3600       ; minimum (1 hour)
)
     NS     op . test .com.
$ORIGIN 168.192. in -addr.arpa.
100.1    PTR    a. test .com.

测试解析结果:

1
2
3
4
5
6
[root@DNS-Slave ~] # host 192.168.1.100 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1 #53
Aliases: 
100.1.168.192. in -addr.arpa domain name pointer a. test .com.  #返回的结果正确


使用DNS实现服务的负载均衡

对于一个域名多个IP 的情况,DNS会对多个IP进行轮询,这样就实现了负载均衡功能。DNS只会按照自身的配置信息进行轮询,不会探测后端的服务节点是否可用。

直接在master上的ZONE配置文件上添加一条A 记录,serial 值+1 即可。

1
t  A   192.168.1.111
1
2
3
4
5
6
7
[root@DNS-Server etc] # host t.test.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1 #53
Aliases: 
t. test .com has address 192.168.1.111    # 反回了两行信息
t. test .com has address 1.2.3.4


配置DNS视图(智能DNS)

智能DNS是指通过判断用户的来源,返回给用户一个最佳的服务站点。简单来说就是让联通和电信的不同用户在访问相同的站点时,分别将请求解析到与用户网络相同的服务器上来提升用户的体验。只能DNS还可以探测后端节点的运行状态,如果发现后端有节点故障,会将请求发送到能提供正常服务的主机上。

配置智能DNS,修改master上的/etc/named.conf 文件:

1
vim  /etc/named .conf
1
2
3
4
5
6
7
8
acl group1 {                # 在原来的基础上增加两个group的配置,加在include之前
    192.168.1.10;            # 在两个group中分别指定两个不同的DNS服务器.
};
acl group2 {
   192.168.1.11;
};
 
include  "/var/named/chroot/etc/view.conf" ;


编辑master节点上的view.conf 文件,添加group,将之前的view.conf 文件清空:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@DNS-Server etc] # cat view.conf
view  "GROUP1"  {
     match-clients { group1;};
     zone  "viewtest.com"  {
       type  master;
       file  "group1.viewtest.com.zone" ;
};
};
view  "GROUP2"  {
      match-clients { group2;};
      zone  "viewtest.com"  {
      type  master;
      file  "group2.viewtest.com.zone" ;
};
};

分别创建两个指定的zone文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@DNS-Server ~] # cat /var/named/chroot/etc/group1.viewtest.com.zone 
$ORIGIN .
$TTL 3600 ; 1 hour
viewtest.com  IN SOA  op .viewtest.com dns.viewtest.com. (
           2007 ; serial
           900       ; refresh  (15 minutes)
           600       ; retry (10 minutes)
           86400     ; expire (1 day)
           3600      ; minimum (1 hour)
           )
      NS    OP.viewtest.com.
$ORIGIN viewtest.com.
view    A   1.2.3.4
op       A   1.2.3.4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@DNS-Server ~] # cat /var/named/chroot/etc/group2.viewtest.com.zone 
$ORIGIN .
$TTL 3600 ; 1 hour
viewtest.com  IN SOA  op .viewtest.com dns.viewtest.com. (
           2007 ; serial
           900       ; refresh  (15 minutes)
           600       ; retry (10 minutes)
           86400     ; expire (1 day)
           3600      ; minimum (1 hour)
           )
      NS    OP.viewtest.com.
$ORIGIN viewtest.com.
view    A   1.2.100.100
op       A   1.2.100.100

两个文件的指定解析的IP不同。

更改两个文件的权限,并重启named:

1
2
  chown   named.named group*
  systemctl restart named

测试结果,以192.168.1.10作为客户端,对DNS发起解析请求:

1
2
3
4
5
6
[root@DNS-Server ~] # host view.viewtest.com 192.168.1.10
Using domain server:
Name: 192.168.1.10
Address: 192.168.1.10 #53
Aliases: 
view.viewtest.com has address 1.2.3.4

 以192.168.1.11作为客户端,对DNS发起解析请求:

1
2
3
4
5
6
[root@DNS-Slave ~] # host view.viewtest.com 192.168.1.10
Using domain server:
Name: 192.168.1.10
Address: 192.168.1.10 #53
Aliases: 
view.viewtest.com has address 1.2.100.100

不同的客户端解析的结果不一样,这样就达到了我们的要求。

智能DNS解析的过程:

1、在named.conf 文件中定义了两个group,group1 包含了192.168.1.10的客户端,group2 包含了192.168.1.11的客户端。这两个group 就对来源IP进行了区分,不同group的来源IP使用不同的zone文件进行解析。

2、当在192.168.1.10 (11)上请求解析view.viewtest.com 时,发现此IP属于group1(group2),于是去查看 /var/named/chroot/etc/view.conf这个文件。

3、在view.conf文件中,分别指定了解析group1和group2中需要解析的zone文件,于是,系统会根据来源IP自动选择其对应的zone文件。

4、在group1和group2的zone文件中,分别指定了view.viewtest.com对应的解析记录,分别为1.2.3.4 和1.2.100.100。 系统读取各自对应的zone文件,返回客户端不同的解析结果。


小提示:

此处清空了view.conf文件的同步配置,可以按照原来的方式,将同步参数加入。针对每个定义的域进行同步设置。



 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1880669


相关文章
|
2月前
|
算法 C++ 容器
C++ STL:空间配置器源码解析
C++ STL:空间配置器源码解析
|
3月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
71 0
|
17天前
|
域名解析 网络协议 应用服务中间件
云解析DNS问题之配置域名解析ip地址如何解决
DNS解析是指将人类可读的域名转换成机器可读的IP地址的过程,它是互联网访问中不可或缺的一环;本合集将介绍DNS解析的机制、类型和相关问题的解决策略,以确保域名解析的准确性和高效性。
23 1
|
1月前
|
域名解析 应用服务中间件 Linux
【服务器】使用域名解析服务器的IP地址并配置SSL证书
【服务器】使用域名解析服务器的IP地址并配置SSL证书
215 0
|
2月前
|
网络协议 Linux 网络安全
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
106 0
|
2月前
|
缓存 Cloud Native 应用服务中间件
云原生 Nginx安装&配置解析
【1月更文挑战第8天】云原生 Nginx安装&配置解析
|
3月前
|
Dubbo Java 应用服务中间件
从源码全面解析 dubbo 注解配置的来龙去脉
从源码全面解析 dubbo 注解配置的来龙去脉
|
3月前
|
安全 架构师 Java
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
79 0
|
3月前
|
域名解析 网络协议 Ubuntu
|
3月前
|
Java
SpringBoot自动配置原理解析(五)
SpringBoot自动配置原理解析(五)
21 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多