DNS常见配置

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

在前面的文章中我们搭建了一个主从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


相关文章
|
23天前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
82 1
|
1月前
|
机器学习/深度学习 调度
mmseg配置解析 Polynomial Decay 多项式衰减
Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。
58 0
mmseg配置解析 Polynomial Decay 多项式衰减
|
1月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
278 1
|
1月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
1月前
|
JSON JavaScript 前端开发
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
85 0
|
1月前
|
编解码 计算机视觉
mmseg配置解析 align_corners=False
`align_corners=False` 是图像插值操作中的一个参数,影响输入和输出图像的角点对齐方式。`align_corners=True` 严格对齐角点,而 `align_corners=False` 均匀分布像素点,更适用于保持整体比例关系的任务,如语义分割。
32 0
|
1月前
|
机器学习/深度学习 编解码
mmseg配置解析 contract_dilation=True
`contract_dilation=True` 是 ResNetV1c 中的一种设置,用于解决多层膨胀卷积中的“栅格效应”。通过调整膨胀率,使卷积核在不同阶段更密集地覆盖输入特征图,避免信息丢失,提升特征提取质量,尤其在语义分割任务中效果显著。
40 0
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
46 0
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
79 0
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
85 1

相关产品

  • 云解析DNS
  • 推荐镜像

    更多