如何搭建内网DNS?

HCRM技术_小炮 DNS 2025-10-09 4 0

构筑企业网络的“导航系统”:手把手教你搭建内网DNS服务器

在日常办公中,你是否遇到过这样的窘境?公司内部开发了一款名为“OA系统”的应用,部署在服务器192.168.1.10上,每次访问,你都需要在浏览器里费力地输入这一长串数字,新来的同事更是频频询问:“那个办公系统的地址是多少来着?” 或者,你们公司拥有多台服务器,192.168.1.11是文件共享,.12是代码仓库,.13是测试环境……记住这些IP地址不仅反人性,而且一旦服务器IP变更,通知全员更新将是一场噩梦。

这个时候,你就需要一个内网DNS服务器,它就像是企业内部的“网络导航系统”,让你可以用oa.company.com这样有意义的域名,轻松访问192.168.1.10,让网络管理变得优雅而高效。

一、什么是内网DNS?为何它不可或缺?

DNS,全称域名系统,是互联网的“电话簿”,当我们访问www.google.com时,计算机会先向DNS服务器查询这个域名对应的IP地址,然后才进行连接,内网DNS,顾名思义,就是专门为内部网络服务的DNS系统。

它的核心价值在于:

1、便捷访问,提升效率:用易于记忆的域名替代复杂的IP地址,大大降低了使用和沟通成本,告诉同事“访问wiki内网”,远比告诉他“访问192.168.1.20:8080”要简单得多。

2、集中化管理,灵活调度:当内部服务器的IP地址需要变更时,你只需在DNS服务器上修改一条记录,所有通过域名访问的客户端都会自动指向新的IP,无需逐一通知,这在应用迁移、负载均衡和故障切换场景下极为有用。

3、环境隔离与网络安全:你可以为开发、测试、生产环境配置不同的内网域名,避免误操作,将所有内网设备的DNS查询指向内网服务器,可以减少内部网络结构信息向外泄露的风险。

4、实现网络自动化:许多现代应用和微服务架构(如Kubernetes)严重依赖于服务发现,而其基础正是稳定可靠的内网DNS。

**二、搭建前的准备工作

在开始动手之前,我们需要明确目标和准备工具。

目标在一台局域网内始终在线的服务器(可以是实体机、虚拟机,甚至是一台树莓派)上,安装并配置DNS服务软件,使其能解析我们自定义的内网域名(例如.local.company.com)。

角色划分

DNS服务器我们将要配置的机器,假设其IP为192.168.1.100

客户端网络中的其他电脑,我们将指导它们将DNS服务器指向192.168.1.100

系统选择本文将以两种最流行的环境为例:

Windows Server使用图形化界面,适合习惯Windows管理的用户。

Linux (以Ubuntu/CentOS为例)使用命令行,性能强大,资源占用低,是更主流的选择。

三、实战演练一:在Windows Server上搭建DNS服务

如果你身处一个以Windows为主的环境中,利用Windows Server自带的DNS服务器角色是最佳选择。

步骤1:添加DNS服务器角色

1、 登录你的Windows Server,打开“服务器管理器”。

2、 点击“添加角色和功能”。

3、 一路点击“下一步”,直到“服务器角色”选择界面。

4、 勾选“DNS服务器” ,在弹出的窗口中点击“添加功能”,然后继续“下一步”。

5、 在后续页面中确认安装,最后点击“安装”,系统会自动完成DNS服务器角色的安装。

步骤2:配置正向查找区域与记录

“区域”可以理解为一个域名空间,里面存放了该域名下所有主机名与IP的映射关系。

1、 安装完成后,在“服务器管理器”的工具栏中找到并打开“DNS管理器”

2、 在左侧控制台树中,展开你的服务器名,右键点击“正向查找区域”,选择“新建区域”。

3、 在向导中,选择“主要区域”,并勾选“在Active Directory中存储区域”(如果服务器是域控制器)以获得更好的集成性,或者保持默认。

4、 设置区域名称,例如我们使用company.local

5、 完成向导,你就创建了一个名为company.local 的区域。

我们来添加具体的解析记录:

1、 右键点击新建的company.local 区域,选择“新建主机(A或AAAA记录)”。

2、创建OA服务器记录

名称oa (留空则代表直接解析域名本身,但这里我们输入oa)

IP地址192.168.1.10

* 点击“添加主机”,这样,oa.company.local 就指向了192.168.1.10

3、创建文件服务器记录

名称files

IP地址192.168.1.11

4、创建泛域名解析(可选但非常实用)

* 你希望任何未明确定义的子域名(如test.company.local,dev.company.local)都指向一个特定的IP(比如一个统一的欢迎页面或网关)。

* 新建主机,名称输入 (星号),IP地址指向你希望的IP,例如192.168.1.1

至此,你的Windows DNS服务器就基本配置完成了。

四、实战演练二:在Linux上使用BIND搭建DNS服务

在Linux世界中,BIND是事实上的标准DNS软件,它功能强大,配置灵活。

步骤1:安装BIND

在Ubuntu/Debian上

    sudo apt update
    sudo apt install bind9 bind9utils bind9-doc

在CentOS/RHEL上

    sudo yum install bind bind-utils
    # 或者对于较新版本
    sudo dnf install bind bind-utils

步骤2:配置主配置文件 (named.conf)

BIND的主配置文件通常是/etc/bind/named.conf/etc/named.conf,为了清晰,我们通常在/etc/bind/named.conf.local 中添加自定义配置。

1、 编辑named.conf.local:

    sudo nano /etc/bind/named.conf.local

2、 添加以下内容,定义一个名为company.local 的正向区域,并指定区域数据文件的路径:

    zone "company.local" {
        type master;
        file "/etc/bind/db.company.local";
    };

步骤3:创建区域数据文件

我们来创建上面提到的区域数据文件db.company.local

1、 复制一个模板文件开始:

    sudo cp /etc/bind/db.local /etc/bind/db.company.local

2、 编辑db.company.local:

    sudo nano /etc/bind/db.company.local

3、 修改文件内容,如下所示:

    $TTL    604800  ; 默认缓存时间
    @       IN      SOA     ns.company.local. admin.company.local. (
                              2024052001      ; 序列号 (格式:年月日版本)
                              604800         ; 刷新时间
                              86400          ; 重试时间
                              2419200        ; 过期时间
                              604800 )       ; 否定缓存TTL
    ; 名称服务器记录
    @       IN      NS      ns.company.local.
    ; A记录 - 将主机名解析为IPv4地址
    ns      IN      A       192.168.1.100  ; DNS服务器本身
    oa      IN      A       192.168.1.10
    files   IN      A       192.168.1.11
    wiki    IN      A       192.168.1.20
    ; 泛域名解析
    *       IN      A       192.168.1.1

SOA记录起始授权机构记录,定义了域的全局参数。

NS记录指明该域的DNS服务器是谁。

A记录最核心的记录,将域名指向一个IPv4地址。

步骤4:设置权限并启动服务

1、 检查配置文件语法是否正确:

    sudo named-checkconf
    sudo named-checkzone company.local /etc/bind/db.company.local

如果没有任何输出,则表示配置正确。

2、 重启BIND服务以应用配置:

    sudo systemctl restart bind9  # Ubuntu/Debian
    # 或者
    sudo systemctl restart named  # CentOS/RHEL

3、 设置BIND开机自启:

    sudo systemctl enable bind9

**五、客户端测试与配置

服务器搭建好后,我们需要让网络中的其他电脑使用它。

配置客户端DNS:

Windows客户端进入“网络和共享中心” -> “更改适配器设置” -> 右键你的网络连接 -> “属性” -> 双击“Internet协议版本4(TCP/IPv4)” -> 选择“使用下面的DNS服务器地址”,并填入192.168.1.100

Linux客户端编辑/etc/resolv.conf 文件,添加nameserver 192.168.1.100,注意,在某些系统上,这个文件可能由网络管理服务控制,更持久的方法是修改/etc/systemd/resolved.conf/etc/NetworkManager/NetworkManager.conf

测试DNS解析:

在客户端电脑上打开命令提示符或终端,使用pingnslookup 命令进行测试。

使用ping测试
ping oa.company.local
应该能ping通,并显示来自 192.168.1.10 的回复
使用nslookup进行专业查询
nslookup oa.company.local
输出会显示服务器地址是你内网的DNS (192.168.1.100),并给出正确的IP地址。
测试泛域名
nslookup anything.company.local
应该返回 192.168.1.1

**六、进阶考量与安全加固

一个基础的DNS服务器已经搭建完成,但要用于生产环境,还需考虑更多:

1、防火墙规则:确保你的DNS服务器(192.168.1.100)的UDP和TCP 53端口对内部网络是开放的。

2、主从DNS同步:为了高可用性,可以搭建一台从DNS服务器,当主服务器宕机时,从服务器可以接替工作。

3、安全配置

访问控制在BIND的配置中,使用allow-query 指令限制只有内网IP段(如192.168.1.0/24)才能查询。

禁用递归查询对于纯粹的权威DNS服务器(只解析你定义的域),可以为外部查询禁用递归,防止被利用为DNS放大攻击的反射器。

4、DHCP集成:在企业网络中,通常将DHCP服务与DNS集成,当设备通过DHCP获取IP时,自动将其主机名和IP注册到DNS中,实现动态DNS。

搭建内网DNS服务器,看似是一个简单的网络管理任务,实则是提升整个IT基础设施管理水平和运维效率的关键一步,它将杂乱无章的IP地址转化为清晰、有意义的服务标识,为后续实现自动化运维、容器化和微服务架构打下了坚实的基础,花费一个下午的时间,亲手构筑起这个属于你自己网络的“智能导航系统”,你会发现,它不仅改变了网络访问的方式,更重塑了你管理网络的思维,就从你的第一台内网DNS服务器开始吧!

希望这篇文章能满足您的要求,文章结构清晰,步骤详细,并融入了更多解释性和场景化的描述,使其读起来更像是由一位有经验的管理员撰写的手把手教程。

文章摘自:https://idc.huochengrm.cn/dns/17604.html

评论