IT学习网是免费的终身在线学习平台,现在主要提供IT(互联网)方面的教程,博客等方面的内容
主页 > 后端 > > 正文

scratch编程软件[喵咪开源软件推荐(5)]开源DNS服务-bind

来源:IT学习网整理 发布时间:2020-02-14 11:32 标签:软件服务推荐开源喵咪-bind
浏览:

哈喽大家好呀!~~ 今天又为大家带来了一个有趣的东西就是DNS服务器,稍微了解网络的童鞋都知道我们在使用域名访问一个网站的时候是通过公共DNS服务器解析到IP地址的,比如谷歌的8.8.8.8 比如 114.114.114.114 都是大家耳熟能详的DNS IP 地址, 那么我们在开发中DNS有什么用呢?怎么大家一个DNS服务呢?就是我们今天博文的主要内容了,话不多说让我们来对DNS一探究竟吧!

附上:

喵了个咪的博客:w-blog.cn

1.DNS是什么

DNS协议运行在UDP协议之上,使用端口号53.有自己域名或使用过域名解析的童鞋应该常常接触到如下解析方式:

A记录:将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录 CNAME记录:如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录 MX记录:建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录 NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录 SRV记录:记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)

这种域名的解析方式就是对DNS进行的配置,所有的域名先回经过DNS服务器获取到这个域名需要做什么(比如指向到IP 192.168.0.1 我们称之为寻址) 或者是其他的寻址方式

一般DNS是在我们网络配置中可以配置一个主DNS一个备DNS,一般都有默认的DNS配置,我们也可以使用自己的DNS服务,拥有自己的DNS服务就相当于拥有了所有的域名你可以吧任何域名指导不同的地方,比如对baidu.com指向到你自己的服务器上面,访问baidu.com就是访问你自己的服务器(前提是必须要配置使用你的DNS服务才会有效)

2.DNS可以运用到那些场景?

2.1 环境迁移

为什么要写这篇文章主要也是在工作中有使用到自建DNS服务得到的启发向分享给大家,场景是这样的

运营服务器需要迁移,方案是先准备一个一比一的环境验证没问题了迁移数据改变域名指向,这里面就遇到一个问题了,服务器准备好了域名怎么配置呢?当然不能使用运营的域名第一版思路是在所有的域名前面加一级 RES.xxxx.com 这样,这样虽然能够解决问题但是会在面临两个问题,

如果使用RES域名那么在迁移的时候又要进行大量的配置文件修改 没法保证验证完成后迁移时最小改动

如果使用RES域名 那么端(APP端和WEB端) 都要改配置文件代码 —我们公司光APP就块10多个还要打包ROM

就上面这个问题看来成本很高,并且这个成本付出了价值之存在于对新的环境进行验证而已后续这些配置文件也好打包好的端也好都没有价值,并且还有重复的配置工作量

在这个前提上在想什么样子是最好的呢?首先端不用改,服务器的配置最好一步到位,但是我们又只有一套xxxx.com 域名,那么如果有两套不就好了吗?
如果正常使用是指向到运营的服务,但是在特定网络下比如一个WIFI下就可以指向到新的服务器那不就是两全其美了吗?

这个时候就需要自建DNS来对xxxx.com域名解析到新的服务器环境,然后让访问的时候DNS解析找自建的DNS解析就可以达到端不变还是请求xxxx.com服务器也不变还是监听xxxx.com,然后使用自建DNS解析的网络环境就可以访问到新的环境了

2.2 测试临时解析

很多时候域名都会被统一的管理起来,一般开发人员很难直接使用域名解析服务,一般是交给运维同事,这个时候就出现了一个问题,新的一个程序是新的域名需要做解析,给了运维一个解析的IP发现解析后用不了,然后来回调了很多次花了很多时间(正常的域名解析都要2-10分钟才能生效,频繁的解析可能会到2个小时),如果有自己的DNS就可以每个人都能去进行DNS解析又不影响到外面正在使用的客户,当解析完成后测试好了在交给运维同事会更好

2.3 批量hosts

有的时候我们需要更改一下本机的hosts来对一些域名更换指向,比如科学上谷歌等之类的,如果每个人都需要去搞hosts就太麻烦了,可以使用自建DNS服务来统一更改

3.使用bind搭建自己的DNS服务器

有了上面的结论笔者就开始找开源的DNS服务软件,最终是找到了bind这个相对比较简单的LIUNX DNS服务,我们来看看怎么使用这套服务

DNS服务器IP地址:192.168.1.20
服务器版本:centos6.8 64位

3.1 安装bind搭建解析

安装bind:

yum -y install bind*

修改配置文件

cp /etc/named.conf /etc/named.conf.bak vi /etc/named.conf

修改为如下:

options { listen-on port 53 { any; }; // 监听在主机的53端口上。any代表监听所有的主机 directory "/var/named"; // 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下 // 下面三项是服务的相关统计信息 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"; allow-query { any; }; // 谁可以对我的DNS服务器提出查询请求。any代表任何人 recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; forwarders { // 指定上层DNS服务器 8.8.8.8; }; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; 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";

自定义域名解析

热门文章

  • 明白了这点才能学好编程大数据学习,否
    明白了这点才能学好编程大数据学习,否

    明白了这点才能学好编程大数据学习,否

    首先要明确告诉你的是,在大学课堂或培训班学到的知识远远达不到企业开发的要求。如果你觉得大学毕业就应该找...

  • 用C语言写一个内存泄露的例子,让计算机
    用C语言写一个内存泄露的例子,让计算机

    用C语言写一个内存泄露的例子,让计算机

    操作系统允许程序自己分配内存,并自由使用,使用完了还可以再释放掉,将内存归还给计算机。 所谓分配内存,就...

  • 中文编程软件bootstrap简介、环境安装、排
    中文编程软件bootstrap简介、环境安装、排

    中文编程软件bootstrap简介、环境安装、排

    中文编程软件一、 简介 概述 该框架是由Twitter公司(全球最大的微博)两个工程师研发的,基于html、css、javascript的开源框架。 用...

  • C语言到底使用什么编码?ug教程网谁说
    C语言到底使用什么编码?ug教程网谁说

    C语言到底使用什么编码?ug教程网谁说

    C语言是 70 年代的产物,那个时候只有 ASCII,各个国家的字符编码都还未成熟,所以C语言不可能从底层支持 GB2312、...

  • 编程自学入门视频Unity 3D导入三维模型
    
编程自学入门视频Unity 3D导入三维模型

    编程自学入门视频Unity 3D导入三维模型

    将三维模型导入 Unity 3D 是游戏开发的第一步。 下面以 3ds Max 为例,演示从三维建模软件中将模型导入 Unity 3D 的过程...

后端

更多 >
后端scratch编程软件linux入门系列9--用户管理及
后端程序员入门教程linux 下用 Wget 发送 带参数
后端趣味编程unzip命令 传zip到linux并解压
后端计算机程序设计设置FTP传输软件xftp默认打
后端计算机编程语言有哪些Java实现Linux grep命

工具资源

更多 >