Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1677691
  • 博文数量: 1279
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 13084
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 16:26
个人简介

Linux学习小标兵,专注Linux资讯分享,技术文章分享

文章分类

全部博文(1279)

文章存档

2023年(236)

2022年(285)

2021年(265)

2020年(248)

2019年(213)

2018年(32)

我的朋友

分类: LINUX

2022-08-19 23:40:34

最近由于对公司里同事搭建的智能DNS很感兴趣,我开始学习它的搭建方法,首先我带大家重新复习一下关于DNS的基础知识。






大家可能总会在公众号上看到DNS相关的文章,比如《为什么DNS根服务器只有13台?给中国一台真的很难吗?》等等。它是互联网构建的核心协议之一,在我们平时上网时起到重要作用。所以我们需要了解一些它的知识,作为网络行业从业者,就更应该对它更加深入的掌握了。在网络世界中如果想访问一个网站,首先需要知道这个网站的公网IP地址,但由于我们对一长串没有规律的数字不够敏感,使得IP地址很难记住。最开始因为网络世界上的计算机数量少,只有几百台,所以只需要维护HOSTS.TXT文件就可以了,此文件记录着IP和域名的对应关系,由单独的主机STI-NIC负责分发。但由于网络的发展,此方法就不能持续支持了,原因如下:第一,HOSTS.TXT中不允许出现文件冲突,但主机的增多,很难避免不冲突;第二,分对此文件的分发容易引起网络和处理器负载增高;第三,是此文件的一致性无法保障。因此产生了DNS这项服务。


DNS是INTERNET的一项核心服务,用于实现域名与IP地址相互映射的一个分布式数据库,其结构和Linux的文件系统类似,都是树状结构,最顶端是根服务器,用“.”来表示。第二层就是我们熟知的.net、.com等顶级域。网上注册的如linuxprobe.com等是二级域名,它们归企业运维管理。域名的树最深可达127层,每个节点文本标签限制最长为63个字符。接下来讲一下DNS解析流程。首先客户端通过浏览器访问一个域名,如浏览器会向本地域名服务器发起一个DNS解析请求,当本地域名服务器收到请求后,会在本地寻找此解析,如没找到,则会往根服务器发送请求。根服务器全球共有13套,它不直接用于域名解析,但他能向你指向.com的位置。这样做体现了层次化的思想,分担了工作。最后再向.com发送请求,由此域名服务器解析出IP地址并告诉本地DNS服务器,本地DNS在本地缓存并返还给客户端,客户端与目标建立连接,至此DNS解析完成。


DNS的资源记录有如下数据:






先着重介绍一下type。其中有几种常用的资源记录类型:第一是A记录,是指IPv4,AAAA是指IPv6。第二是NS记录,是Name Server域名服务器。第三是CNAME记录。第四是MX记录。第五是PTR记录。DNS也有负载均衡的功能,首先是内部负载均衡。一个应用要访问数据库,应该配置这个数据库的域名,因为如果遇到数据库迁移等,换了IP就要将应用配置同时修改,但如果配置了域名,只要在DNS服务器中将域名映射为新IP就可以了。然后在DNS中配置策略可以实现负载。其次DNS还能做全局负载均衡。如为了应用的高可用性,部署在多个机房,每个机房有独立的IP,当用户访问其域名时,这个IP可以轮询访问多个数据中心实现负载,如一个数据中心挂掉,只要在DNS服务器中将其对应的IP删除就可实现一定的高可用。


说了这么久的DNS,但DNS如何搭建呢?业界普遍是在Linux服务器中搭建BIND软件。现阶段大概有九成的DNS服务器是使用BIND作为服务器软件的。BIND软件现阶段是由互联网系统协会进行维护与开发。安装BIND时安装软件名为bind,但是进程名和用户名为named。搭建BIND需要一定的Linux基础,如果需要学习Linux知识,可以搜索《Linux就该这么学》这本书来学习,这本书上也有专门介绍DNS的章节可以学习。它也有官方网站,上面也有很多Linux资讯和技术文章。DNS相关的命令中有个命令叫dig,它和nslookup类似,能在Linux中实现域名解析查询功能。dig能够执行 DNS 搜索,并显示从受请求的域名服务器返回的答复,请求的域名服务器可以手工指定也可以用系统默认的。由于dig命令灵活性好、易用、输出比较清楚,所以DNS服务器管理员通常利用它来诊断DNS故障。


DNS作为我们现有网络的重要组成部分,需要我们进行系统的了解与学习。当基础知识理解透彻后可以进一步学习其他的相关知识,比如智能DNS,HttpDNS,CDN等等。当然在学习这些知识之前,Linux也是必不可少的。


阅读(262) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~