首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux基础软件-dns(二)

Linux基础软件-dns(二)

作者头像
运维小路
发布于 2024-11-01 19:13:54
发布于 2024-11-01 19:13:54
1.6K0
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的,但是Linux作为一个服务器操作系统,肯定是要安装运行软件来满足我们的业务需要,本章基础软件部分,将从下面几个部分来讲解:

Linux基础软件-软件安装

Linux基础软件-yum(一)

Linux基础软件-yum(二)

Linux基础软件-ntp

Linux基础软件-chrony

Linux基础软件-dns(一)

Linux基础软件-dns(二)(本章节)

Linux基础软件-nfs

Linux基础软件-lvm

Linux基础软件-Selinux&库文件&swap

上一小节介绍了什么是dns,以及dns解析流程和dns的配置文件的一些基本介绍,但是这些dns都是使用别人提供公共dns,并不是自己的,只适合公网环境。但是在真正的生产环境,很多机器是不具备公网的能力。并且也会有很多内部域名需要解析,就需要搭建自己的dns服务器。

本小节先讲解涉及到dns的几个命令,然后搭建一个自己私有dns服务器的情况。

基本命令

ping:最简单的使用方式,也是使用最多的方式。

代码语言:javascript
复制
ping qq.com
#直接输入域名,然后返回ip地址,则说明域名解析正常
#他使用的dns是/etc/resolv.conf

nslookup:比ping有更多的功能。

代码语言:javascript
复制
nslookup qq.com
#如果通过添加参数,可以指定dns服务器解析
nslookup -querytype=A qq.com 223.5.5.5
#当然还有很多功能只是使用比较少

dig:比nslookup更新的支持更广泛的命令

代码语言:javascript
复制
 dig qq.com
 #在dns有问题的时候,我们用ping是无法探测出来问题的,
 #但是使用dig可以获得更多信息,可以方便我们排错
 dig@223.5.5.5 qq.com

dig命令和nslookup命令在最小化安装的系统里面都是默认不自带的,需要安装包bind-utils才有这2个命令

DNS服务器搭建

在内部环境,有些会使用一些自定义的域名,用户指向某些内部服务,在各个公有云基本都有内网dns这个产品,道理其实是一样的。然后如果其他域名,他无法解析,他则可以通过递归的方式去请求上游dns服务器,然后返回给用户。这里就涉及2个配置:一个是递归到上游服务器,另外一个提供内部dns解析服务。

1.安装dns软件

dns软件其实也有很多,我们这里以unbound来举例。

代码语言:javascript
复制
yum -y install unbound

2.配置dns转发

代码语言:javascript
复制
vi /etc/unbound/unbound.conf 

server:
    interface: 0.0.0.0    # 监听所有网卡接口上的请求
    access-control: 0.0.0.0/0 allow  # 允许所有IP地址访问

    forward-zone:
        name: "." #代表所有域名
        forward-addr: 61.139.2.69 #可以替换自己的dns
        
#这里的name可以匹配一个类型的域名,比如.com
#通过这样可以控制内网用户对外请求,或者不同的域名指向不同的dns服务器

3.配置私有域名

代码语言:javascript
复制
#名字可以自己自己定义
vi /etc/unbound/local.d/yunwei.conf

    # 私有域名
    #iprivate-domain: "yumwei.com"
    local-zone: "yumwei.com." static

    # 私有域名的A记录
    local-data: "server1.yunwei.com. IN A 192.168.1.1"
    local-data: "server2.yunwei.com. IN A 192.168.1.2"
代码语言:javascript
复制
[root@localhost ~]# cat /etc/unbound/unbound.conf 
server:
    interface: 0.0.0.0
    port: 53
    access-control: 0.0.0.0/0 allow


    # 私有域名
    #iprivate-domain: "yumwei.com"
    local-zone: "yumwei.com." static

    # 私有域名的A记录
    local-data: "server1.yunwei.com. IN A 192.168.1.1"
    local-data: "server2.yunwei.com. IN A 192.168.1.2"

    # 配置前向区域
    forward-zone:
        name: "."
        forward-addr: 223.5.5.5
#合并到一起的代码,重启dns生效
systemctl restart unbound

总结

1.这里的配置实现了unbound的两大核心功能,内部域名和递归转发。

2.核心功能还有很多,比如缓存,比如用户请求了qq.cm,dns可以把结果缓存到自己内部,如果有人再次来请求他,就直接返回给他,而不用在向上递归查询。

3.实际运维可以经常更新的内部域名放到/etc/unbound/local.d/目录下,运维起来会更轻松。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档