DNS:快速搭建公司内网DNS解析服务器
背景
是这样的,公司办公室有小机房,研发测试开发环境在这,但是CTO吧,觉得测试环境通过ip访问太复杂,难记,通过黄页打开觉得太low,虽然办公室出口也有公网ip,直接可以解析进来,但是又觉得公网访问测试开发环境觉得不可以,烦死了,然后就说弄个dns转发吧,提供内网解析,最后将这个dns服务器内网Ip配置在交换机的dhcp pool里面,这样研发组同事也不用一个个去改这个dns,直接运维就搞完(我弄得单机)。概念性东西来源网络。
DNS 概念性东西
FQDN:完全限定域名,即每个域在全球唯一,域不是域名,google.com 是域,www.google.com 是域名。
域可以分为根域(.)和顶级域(TLD)
顶级域又可以分为三类:
通用顶级域(.com 商业机构,.org 非营利性组织,.net 网络服务机构等)
国家顶级域(.cn 中国,.uk 英国,.us 美国,.jp 日本)
反向域(基础建设顶级域,.arpa)
DNS 查询方式包含递归和迭代:
- 递归是客户端发起一次请求给 DNS 服务器,通过多次查找返回正确解析。
- 迭代是发出多次请求查询不同的 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
- 配置主配置文件:/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";
最终内容如上。
- 追加域名解析入口配置:/etc/named.rfc1912.zones
zone "fengliuxiaosan.com" IN { # 测试用的域是 fengliuxiaosan.comtype master;file "fengliuxiaosan.com.zone"; # 配置文件为 fengliuxiaosan.com.zone,该文件目录为 /var/named/ 下
};
- 配置单独的解析文件:
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 记录。
- 启动服务测试:
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 服务部署
- 主从 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
- 修改主配置测试同步情况:
我们修改主服务器的 fengliuxiaosan.com.zone,新加解析的同时,修改配置编号,让从能够探测到变化。
现在我们重启主服务器,会发现从服务器就能够同步成功。
还有就是我这里使用 reload named 服务并没有使配置生效。
总结
在域名解析过程中,还会遇到某些特殊情况:
- @ 可以引用当区域名字,比如直接访问 baidu.com 就是这样的解析
- 同一名字通过不同的名字定义多条记录,此时 DNS 会轮询响应。
- 同一值可以多个名字。
- 星号* 泛域名解析,比如配置 *.baidu.com 指向某个 IP,那么如果你访问 a.baidu.com 这种没有配置的会默认走这个配置。
最后,在核心交换机DHCP pool地址池配置dns地址的时候记得多加几个,内网这个dns服务器配置上去即可,为啥呢,因为通过这个dns内网服务器转发慢啊,打开网页都慢,dhcp client多配置个公网dns解析快。
DNS:快速搭建公司内网DNS解析服务器相关推荐
- DNS服务——搭建企业内网DNS服务器的作用
前言 DNS服务--服务端 和 客户端 配置 介绍了如何在DNS安装DNS服务,更改一下配置文件就可以依据根提示解析全球域名.既然使用互联网上的DNS服务器就可以解析全球域名,为何还要自掏腰包搭建DN ...
- 【DevOps】2021.11 centos7搭建公司内网链接 ,集成openldap服务统一账号管理登录内网服务
目录 安装环境 效果 开始安装 服务端配置 配置IPV4转发 配置防火墙转发 安装依赖包 生成证书 easy-rsa下载与配置修改 生成服务端和客户端证书 生成服务端证书 生成客户端证书 为了提高安全 ...
- 在公司内网 ssh 公网服务器,经常断开 client_loop: send disconnect: Connection reset by peer
记录一下,还没有解决 client_loop: send disconnect: Connection reset by peer 经查,可能是NAT,路由的问题
- ubuntu 局域网dns服务器_如何在 Ubuntu 16.04 服务器上配置内网 DNS 服务
DNS 1. 简介 本文使用 BIND9,用尽量少的步骤,搭建出一个可用的内网 DNS 服务.另外要说明的一点是,本文不仅适用于 Ubuntu 16.04,也使用其后的 Ubuntu 系统(截止到目前 ...
- 爱奇艺混合云内网DNS实践
爱奇艺早期业务多数以私有云方式部署,随时间推移,私有云模式在成本.弹性及区域覆盖等方面开始显现不足,而公有云在近年的发展中成熟度不断提高,逐步满足爱奇艺业务需求,爱奇艺开始有计划的使用公有云资源,逐渐 ...
- 关于处理公司内网办公系统登录不了的问题
公司的办公审批系统是在web端登陆的,统一使用公司内网DNS 但是就在刚才接到一个报修,说是BPM审批系统无法登录. 逐步排查思路如下: 1.网站可以ping通,就是无法登录,更换浏览器亦然 2.同一 ...
- CentOS 7.2 搭建内网ntp时间服务器
时间服务器说明 前面在系统的基础优化里说到了时间同步需要同步aliyun的时间,这样我们所有的服务器都需要到公网去同步时间,浪费很多网络资源,这里我们来搭建一下内网的时间服务器. 环境说明 1.时间服 ...
- 云计算之路-试用Azure:搭建自己的内网DNS服务器
之前我们写过一篇博文谈到Azure内置的内网DNS服务器不能跨Cloud Service,而我们的虚拟机部署场景恰恰需要跨多个Cloud Service,所以目前只能选择用Azure虚拟机搭建自己的内 ...
- 搭建内网DNS服务器教程
内网DNS服务器的软件有许多,比如Bind9,dnsmasq,PowerDNS等等 而这次搭建内网dns服务的软件CoreDNS,CoreDNS是Golang编写的一个插件式DNS服务器,也是Kube ...
最新文章
- Ubuntu下一个好用的终端
- 教程|YOLOX目标检测ncnn实现
- 【Flink】Too many fields referenced from an atomic type
- 学计算机毁一生,大学中4大“天坑”级别的专业,学了毁一生,家里没钱不要学...
- 基于Modbus TCP-IP协议的WEINVIEW HMI与PC通讯
- pandas 作图 统计_Pandas数据可视化工具——Seaborn用法整理(下)
- ubuntu 17.x/CentOS 7.x中安装JAVA JDK
- 2014年java软件project师面试题收集
- c语言中关键字的分类,C语言关键字分类整理
- 常见汉字与不常见汉字
- python开方 运算符_[转载] Python中的算数运算符
- Android DVM简介
- NSString 和 UInt8 相互转换
- 纸壳CMS替换默认实现
- web检查器要不要打开_简单粗暴,详细得不要不要的 JavaWeb快速入门
- 这是一篇假的回顾过去展望未来计划书
- 什么是restful?怎样用通俗的语言解释restful?
- cad输入法自动切换_银河麒麟操作系统用户教程(八):如何设置输入法?
- Java程序员推荐书目
- 存储新纪元:在DNA存储海量信息,商业化才是硬道理
热门文章
- 浅谈“决策引擎”在身份管理的应用
- 卸载windows 自带 内置软件应用 2022,windows垃圾清理技巧
- 电子设计教程3:按键滤波电路
- APP - 腾讯微信上线“一证通查”功能,还没查的速度看看
- 《底层逻辑》 思维导图
- kuberneters集群发布内部服务详解
- 必看!前辈们总结出的程序员找工作遇到的坑
- flink sql 报错:FlinkRuntimeException: Exceeded checkpoint tolerable failure threshold
- ElasticSearch索引模块
- easyUI中表格实现导出excel功能