DNS:快速搭建公司内网DNS解析服务器

article/2025/11/7 14:46:08

背景

是这样的,公司办公室有小机房,研发测试开发环境在这,但是CTO吧,觉得测试环境通过ip访问太复杂,难记,通过黄页打开觉得太low,虽然办公室出口也有公网ip,直接可以解析进来,但是又觉得公网访问测试开发环境觉得不可以,烦死了,然后就说弄个dns转发吧,提供内网解析,最后将这个dns服务器内网Ip配置在交换机的dhcp pool里面,这样研发组同事也不用一个个去改这个dns,直接运维就搞完(我弄得单机)。概念性东西来源网络。

DNS 概念性东西

FQDN:完全限定域名,即每个域在全球唯一,域不是域名,google.com 是域,www.google.com 是域名。
域可以分为根域(.)和顶级域(TLD)
顶级域又可以分为三类:

  1. 通用顶级域(.com 商业机构,.org 非营利性组织,.net 网络服务机构等)

  2. 国家顶级域(.cn 中国,.uk 英国,.us 美国,.jp 日本)

  3. 反向域(基础建设顶级域,.arpa)

DNS 查询方式包含递归和迭代:

  1. 递归是客户端发起一次请求给 DNS 服务器,通过多次查找返回正确解析。
  2. 迭代是发出多次请求查询不同的 DNS 服务器。

解析方式包含正向解析和反向解析:正向解析指代将 FQDN 转换成 IP,反向则相反。
一般 DNS 的服务器类型包含:主从 DNS 服务器,缓存服务器,转发服务器。
主从好理解,就是从自动更新同步主的配置,作为 backup 存在。
缓存的服务器作用在于使用递归查询,将查询到的结果返回客户端,并缓存查询的结果。
转发服务器作用在于当发现查询不是本机的时候则将请求转发出去。

DNS 监听 TCP 和 UDP 都是 53 端口。
以下是一次完整的请求大致过程:

从客户机到服务器之前采用得是递归查询,而服务器之间则是采用迭代查询。

DNS 记录类型:DNS 域名数据库由资源记录和区文件指令组成。
SOA 记录:起始授权机构记录,SOA 备注说明了众多 NS(name server)记录中谁是主名称服务器,不参与功能,但是不能缺少。
NS 记录:域授权记录,当请求到达根域的时候,通过 NS 记录找到对应的域。
A 记录:当通过 NS 记录到达域以后,比如访问 www.baidu.com,通过 NS 我们找到了 baidu.com,此时就需要通过 A 记录找到 www。
MX:将该域下的所有邮件服务器地址指向邮件服务器。
AAAA 记录:A 记录处理 IPV4,AAAA 处理 IPV6。
PTR 记录:反向解析,将 IP 解析成域名。
CNAME:别名记录,允许多个名字映射到另外一个域名。比如我们 ping 百度的时候可以发现返回其实是 www.a.shifen.com 这个域名返回。所有 www.baidu.com 其实是个别名。

部署单机DNS (我弄得这个)

我是直接将dns服务器的firewalld关闭了,反正内网局域网专用网络了。例外端口也Ok
准备了三台虚拟机:
IP 系统 说明
在这里插入图片描述

DNS 服务器安装 bind 服务:

yum -y install bind-utils bind bind-devel bind-libs
  1. 配置主配置文件:/etc/named.conf
options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory     "/var/named";dump-file     "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";allow-query     { any; };recursion yes;dnssec-enable yes;dnssec-validation yes;bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";forwarders { 202.96.128.166;8.8.8.8; };
};
​
logging {channel default_debug {file "data/named.run";severity dynamic;};
};
​
zone "." IN {type hint;file "named.ca";
};
​
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

最终内容如上。

  1. 追加域名解析入口配置:/etc/named.rfc1912.zones
zone "fengliuxiaosan.com" IN {           # 测试用的域是 fengliuxiaosan.comtype master;file "fengliuxiaosan.com.zone";  # 配置文件为 fengliuxiaosan.com.zone,该文件目录为 /var/named/ 下
};
  1. 配置单独的解析文件:

cd /var/named/
cp named.localhost fengliuxiaosan.com.zone  
chown named.named fengliuxiaosan.com.zone

修改配置:fengliuxiaosan.com.zone


$TTL 1D                                         ;TTL 修改配置生效时间,默认为一天
@       IN SOA  @ rname.invalid. (0       ; serial,配置编号,每次改完配置 +1,这样从服务器就知道更新配置1D      ; refresh,从服务器刷新时间,默认一天刷新一次1H      ; retry,如果刷新失败,默认1小时重试一次1W      ; expire,缓存过期时间,一周3H )    ; minimumNS      @A       127.0.0.1AAAA    ::1
www     IN A       192.168.3.212

我们新加了个 www.fengliuxiaosan.com 的 A 记录。

  1. 启动服务测试:

systemctl start named
systemctl enable named

查看端口:

netstat -tlunp | grep 53

结果如图:
在这里插入图片描述

可以看到除了服务本身的 53 端口外,也监听了 953,这是 dns 服务的一个插件,现在我们先不理这个
本机测试解析:

dig @127.0.0.1 www.fengliuxiaosan.com

在这里插入图片描述

另外介绍两种检查配置的方法:

# 检查主配置
named-checkconf /etc/named.conf
​
# 检查 zone 配置
named-checkzone fengliuxiaosan.com /var/named/fengliuxiaosan.com.zone

结果如下:
在这里插入图片描述
我们在客户端修改 DNS 配置测试,修改网卡 DNS 配置重启网卡:
在这里插入图片描述

主从 DNS 服务部署

  1. 主从 DNS 的搭建开始的时候其实是和单机搭建一样的,我们修改主服务器192.168.3.253的配置文件:/etc/named.rfc1912.zones

将我们之前的配置进行修改:

zone "fengliuxiaosan.com" IN {           # 测试用的域是 fengliuxiaosan.comtype master;file "fengliuxiaosan.com.zone";  # 配置文件为 fengliuxiaosan.com.zone,该文件目录为 /var/named/ 下allow-update { 192.168.3.80; };allow-transfer { 192.168.3.80; };    # 允许同步DNS的辅助服务器IPalso-notify { 192.168.3.80; };notify yes;                             # 启用变更通告,当主文件变更,通知从进行比较同步
};

指定了从的地址,重启服务

systemctl restart named
2. 从服务器192.168.3.80也安装 bind 并将 /etc/named.conf 配置拷贝过来。
接着也是配置:/etc/named.rfc1912.zones,此时就能体现主从的不同:

zone "fengliuxiaosan.com" IN {type slave;file "slaves/fengliuxiaosan.com.zone";masters { 192.168.3.253; };   # 指定主服务器的 IPmasterfile-format text;         # 指定区域文件的格式为text,不指定有可能会为乱码
};

这时候不需要再去配置 fengliuxiaosan.com.zone 文件,因为需要去主服务器192.168.3.253同步。所以直接启动从的 dns 服务。

systemctl start named
systemctl enable named
  1. 修改主配置测试同步情况:
    我们修改主服务器的 fengliuxiaosan.com.zone,新加解析的同时,修改配置编号,让从能够探测到变化。
    现在我们重启主服务器,会发现从服务器就能够同步成功。
    还有就是我这里使用 reload named 服务并没有使配置生效。

总结

在域名解析过程中,还会遇到某些特殊情况:

  1. @ 可以引用当区域名字,比如直接访问 baidu.com 就是这样的解析
  2. 同一名字通过不同的名字定义多条记录,此时 DNS 会轮询响应。
  3. 同一值可以多个名字。
  4. 星号* 泛域名解析,比如配置 *.baidu.com 指向某个 IP,那么如果你访问 a.baidu.com 这种没有配置的会默认走这个配置。

最后,在核心交换机DHCP pool地址池配置dns地址的时候记得多加几个,内网这个dns服务器配置上去即可,为啥呢,因为通过这个dns内网服务器转发慢啊,打开网页都慢,dhcp client多配置个公网dns解析快。


http://chatgpt.dhexx.cn/article/UeotedqT.shtml

相关文章

DNS搭建

环境 server1:bigpeng1 IP:172.25.1.101 GW:172.25.1.1 DNS:172.25.1.101 server2:bigpeng2 IP:172.25.1.102 GW:172.25.1.1 DNS:172.25.1.101 client&…

基于bind的DNS服务器搭建

文章目录 域名分类域名解析顺序搭建DNS服务器 域名分类 国家域名可分为顶级域名、二级域名,三级域名。 按管理机构的不同分为.com、.net、.org、.cc 、.tv等根域为后缀的域名 缓存域名服务器:通过向其他域名服务器查询获得域名解析记录,将查…

DNS服务器的原理及搭建

文章目录 原理搭建DNS服务器正向解析 原理 DNS(Domain Name System)是互联网上的一项服务,它作为将 域名 和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 想要了解域名(Domain Name)…

简述DNS原理,搭建主-辅服务器,搭建智能DNS

文章目录 一、DNS是什么二、DNS的域名解析过程三、搭建主辅DNS服务器1.设置主DNS服务器2.设置辅DNS服务器 四、访问控制,子域授权五、使用bind搭建智能DNS 一、DNS是什么 DNS(Domain Name Service的缩写)的作用就是根据域名查出IP地址。IP地址是由32位二进制数字组…

搭建DNS服务器实现域名解析

一、DNS服务的概述 1、DNS概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务,而不用去记住能够被机器直接读取的IP数串。 通过域名,最终得到该域名对…

DNS智能解析的搭建与配置

分类: LINUX 原文地址:DNS智能解析的搭建与配置 作者:十年梦生 9月份整整忙了一个月,都抽不出时间来写篇文章,这几天趁着10.1终于有时间来写些东西了,将9月份所做的一些东西来做下总结。 今天先写个DNS智能…

基于bind搭建智能dns

题目要求 1.step 1 : 搭建bind服务器,完成对域名 bs.你的名字.org 配置 2.step 2:完成对出口ip的归属地查询 3.step 3:构建归属地acl,完成对不同主机匹配智能解析 4.step 4:利用dig(加trace参数&#xff0…

实现智能DNS

文章目录 1 实现智能DNS1.1 GSLB1.2 CDN(Content Delivery Network)内容分发网络1.2.1 CDN工作原理1.3 智能DNS相关技术1.3.1 bind中ACL1.3.2 bind有四个内置的acl1.3.3 访问控制的指令1.3.4 view视图1.3.4.1 view:视图,将ACL和区域数据库实现对应关系&a…

bind搭建智能DNS

小生不才,明知文拙脑蠢,却喜挥笔泼墨,畅叙幽情。才疏学浅,未能熟读圣贤之书,以至学识浅薄,明然众人也,有何不足处望不吝赐教。 DNS域名解析服务(Domain Name System)是用于解析域名与IP地址…

DNS服务搭建

目录 DNS简介 DNS解析原理 DNS的相关配置 DNS主从服务 DNS缓存服务 DNS智能解析(分离解析) DNS简介 DNS的功能 DNS 域名系统(Domain Name System) 的缩写,它的功能是将域名解析成ip。我们日常上网浏览网页时,在浏览器&#…

基于Java的Cplex入门

Cplex是一种数学优化技术。主要用于提高效率、快速实现策略并提高收益率。Cplex提供灵活的高性能优化程序,解决线性规划 (Linear Programming)、二次方程规划 (Quadratic Programming)、二次方程约束规划 (Quadratically Constrained Programming) 和混合整型规划 (…

python 调用cplex-学术版

转载 https://zhuanlan.zhihu.com/p/101713127 本文要解决的问题(默认你已经对python有一定的使用经验):如何用python调用cplex求解器。 这次不能信官网,害我踩了一下午坑(其实是官网表述文件和实际不符,而且还少了一…

CPLEX教程 | Cplex介绍,CPLEX教育版和安装Cplex

前言 最近学习列生成算法,需要用到优化求解器。所以打算学习一下cplex这个商业求解器。 当然也有其他更多的选择,这里暂时以比较容易上手和性能比较好的cplex开始吧。其实,小编也早就想学习使用这个cplex了,毕竟是个好东西。 所…

cplex求解1

python环境下cplex安装 发现了一个简单的方法,直接使用 Anaconda 安装 cplex 包,因为 cplex 把自己最新的 python 包都发到 Anaconda 云里面了。 (1)打开 dos 命令行窗口,输入: conda install -c IBMDeci…

基于Cplex的分支定价

前言 分支定界(branch and bound)和分支定价(branch and price)仅一字之差,这两者之间也有着紧密联系,简单来说分支定价分支定界列生成。个人觉得在运筹学领域,分支定价算法也算是比较高级的算…

安装 cplex 求解器

安装 cplex 求解器 安装 cplex 求解器和python-docplexcplex 安装matlab 用户安装 cplexpython 版本 安装 cplex 求解器和python-docplex cplex 安装 cplex 是解决优化问题的一个工具箱,用来线性规划、混合整数规划和二次规划的高性能数学规划求解器。可以理解成…

Python配置CPLEX

大致的安装步骤如下 1.百度搜索CPLEX,进入官网,获取许可后,下载并安装(要能找到自己的安装路径) 2.安装完成后,可以直接用ide进行编程,但是,还可以用Python来调用CPLEX 3.给Pytho…

C++用户的Cplex使用指南(一)——在VS2019中运行Cplex程序

在VS2019中运行Cplex程序 前言 Cplex是IBM开发并仍在维护更新的商业求解器,也是目前使用人数最多的求解器,类似的还有Gurobi,两者各有各的特点(两家颇有渊源,感兴趣的可以了解一下)。 Cplex的一些基本概…

CPLEX相关问题汇总

求解流程 1)定义常量:可以通过float、int、boolean定义常量。定义范围是为了便于对数组进行操作。 //定义常量 int F ...;//定义整型 float R...;//定义浮点型 int m...; int B ...;//定义范围 range nF1..F; range Machs 1..m;定义常量数组 //定义…

c++调用cplex的基本配置问题

1.创建c空项目 2.修改运行环境 为release以及x64 3.创建cpp文件 4。鼠标右键点击项目中的属性 5.点击c/c,点击第一项常规,配置附加库目录 5.添加文件索引,主要用于把路径导进来 6.这一步要添加的目录与你安装的cplex的目录有关系 F:\program…