DNS是什么?
DNS是 Domain Name System 的缩写,也就是 域名解析系统,它的作用非常简单,就是根据域名查出对应的 IP地址。
你可以把它想象成一本巨大的电话本,比如当你要访问域名www.163.com,首先要通过DNS查出它的IP地址是112.48.162.8
为什么需要DNS?
1.减轻用户的记忆负担;2.可以保持域名不变,更新IP地址。这样可以降低IP变更带来的影响
DNS 解析过程?
总体的三大步骤:
1、缓存查找IP
step1:缓存查找IP
第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址,当用户再次访问的时候,浏览器就会从缓存中查找该域名对应的IP地址.
但是,浏览器的本地缓存,不仅是有大小限制,而且还有时间限制(域名被缓存的时间通过TTL属性来设置),所以存在域名对应的IP找不到的情况。
当浏览器从缓存中找到了该网站域名对应的IP地址,将进行下一步骤。
2、本机的hosts文件查找IP
在Windows系统中,hosts文件位置在C:\Windows\System32\drivers\etc\hosts。
在Linux或者Mac系统中,hosts文件在/etc/hosts 文件中。
对于开发者来说,通过hosts绑定域名和IP,可以轻松切换环境,可以从测试环境切换到开发环境,方便开发和测试。
3、DNS服务器查找IP
第三步:向本地域名解析服务系统发起域名解析的请求
如果在本地无法完成域名的解析,那么系统只能请求域名解析服务系统进行解析,本地域名系统LDNS一般都是本地区的域名服务器。local dns (local name server)是客户端网络设置的一部分,要么是手工配置,要么从DHCP得到。一般local dns 在从网络上靠近客户端。
比如你连接的校园网,那么域名解析系统就在你的校园机房里;
如果你连接的是电信、移动或者联通的网络,那么本地域名解析服务器就在本地区,由各自的运营商来提供服务。
对于本地DNS服务器地址,Windows系统使用命令ipconfig就可以查看,在Linux和Mac系统下,直接使用命令cat /etc/resolv.conf来查看LDNS服务地址。
LDNS一般都缓存了大部分的域名解析的结果,当然缓存时间也受域名失效时间控制,大部分的解析工作到这里就差不多已经结束了,LDNS负责了大部分的解析工作。
LB是什么?
是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。
市面上有很多开源的负载均衡的工具或软件,基本都是基于前面提到的方案实现的,大多数是工作在第七层和第四层的。Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件。
LVS :LVS主要用来做四层负载均衡
LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目。使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。
Nginx :Nginx主要用来做七层负载均衡
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。。
HAProxy :HAProxy主要用来做七层负载均衡 也可做四层的负载均衡
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
DNS和LB的区别
严格意义上来说二者不是一个东西
DNS是负责将域名解析成实际的后端IP;
LB是将请求进行拦截之后分发出去;
可以在同一层,但做的事情不一样,DNS不做请求转发;
但是有一点是相同的,二者都可以实现负载均衡的目的,DNS可以按照策略进行IP地址的变化;
常见的公司的搭配策略有2种:
VIP+DNS
Nginx+DNS
DNS解析策略一定要注意正确性,否则会影响全网(公司)的域名解析,且无法立刻恢复(缓存),而且会对公司的基础组件造成无法预知的难以恢复的后果(亲身经历)
网友评论