DNS 域名系统
- 定义:
域名系统,它是域名和IP地址的映射关系,可以是一对一,也可以是一对多(用于DNS负载均衡) - 作用:
1.减轻用户的记忆负担;2.可以保持域名不变,更新IP地址。这样可以降低IP变更带来的影响
- DNS服务器结构:
是一个分级的树状结构体系。每一个节点都是一个DNS服务器,每个节点都有自己的IP地址。 - DNS查询:
用户计算机和DNS服务器使用DNS协议通信。用户计算机根据DNS服务器的反馈,依次与下一层节点的DNS建立通信。经过递归查询,最终和末端节点通信,获得IP地址。 - DNS缓存:
计算机的操作系统中有域名解析模块撞门负责域名解析工作。并不是每次都要经历完整的解析过程,在域名解析模块中有DNS缓存,计算机会首先检查缓存中是否有相关记录。因此重复使用的域名并不会总是需要经历整个递归查询的过程了。 - DNS冗余:
为了保证DNS服务的高可用,会用多台名称服务器冗余支持每个区域。主 DNS 服务器为一个或几个区域的权威名称服务器。其他的冗余名称服务器又称辅DNS服务器被用作同一区域中主DNS服务器的备份服务器,以防主服务器出现故障。辅DNS服务器为了保证与主服务器的信息保持一致,会定时与主服务器通信,这种将区域文件复制到多台服务器的过程称为区域复制。 - 网址访问过程如图:
- DNS解析过程图:
SSL证书
- 定义:
SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。 - 用途:
https 则是具有安全性的ssl加密传输协议。因此需要申请SSL证书。 - SSL协议:
用以保证在Internet上数据传输的安全,利用数据加密方式,用来保证数据在网络上传输中不被截取或窃听。被广泛用于web浏览器与服务器之间的身份认证和数据加密传输。SSL协议用于TCP/IP协议和各种应用层协议之间,为数据通讯提供安全保障。 - 常用的加密算法:
对称密码算法:加密和解密使用相同的密钥。
非对称密码算法:又称公钥加密算法。是加密和解密使用不同的密钥。公开的公钥用于加密,私有的私钥用于解密。反过来也可以用私钥加密公钥解密。总结就是匹配的一对公钥密钥才能进行加解密。
散列算法:将文件通过某种公开的算法,变成固定长度的值,这种算法是不可以的(由鸽笼原理可知,将无限集合放入有限的集合里面,必然不能从加密摘要推测出明文) - SSL工作原理中包含的三个协议:
握手协议(Handshake protocol)记录协议(Record protocol)警报协议(Alert protocol) - SSL的加密过程:
由于非对称加密算法的效率要比对称加密低的多,所以SSL在握手过程中使用非对称米饭算法来协商密钥,实际使用对称加解密的方法对http内容加密,具体过程如图:
注意:客户端生成的对称密钥,是通过服务器的公钥进行加密的,所以只能通过服务器的密钥加密,因此就算这个对称密钥被截获了,没有密钥也破解不了,这样,这个工程就很安全了。
LB负载均衡
- 定义:
将用户访问的访问请求,根据负载均衡算法分发到集群中的可用服务器上。是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性 - 作用:
1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);
2.提供故障转移,实现高可用;
3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);
4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理) - 负载均衡优化以及应用
1.TCP链接复用:连接复用功能通过使用连接池技术,可以将前端大量的客户的HTTP请求复用到后端与服务器建立的少量的TCP长连接上,大大减小服务器的性能负载,减小与服务器之间新建TCP连接所带来的延时,并最大限度减少后端服务器的并发连接数,降低服务器的资源占用。
2.SSL卸载:为了避免明文传输出现的安全问题,对于敏感信息,一般采用SSL协议,如HTTPS,对HTTP协议进行加密,以保证整个HTTP传输过程的安全性。SSL是需要耗费大量CPU资源的一种安全技术,如果由后端的服务器来承担,则会消耗很大的处理能力。应用交付设备为了提升用户的体验,分担服务器的处理压力,将SSL加解密集中在自身的处理上,相对于服务器来说LB能提供更高的SSL处理性能,还能够简化对证书的管理,减少日常管理的工作量,LB的该功能又称为SSL卸载。Client端发送给Server的所有的HTTPS流量都被LB设备终结,LB设备将SSL终结后,与Server之间可采用HTTP或者弱加密的HTTPS进行通讯。LB设备承担了SSL的卸载工作,从而极大的减小了服务器端对SSL处理的压力,将服务器的处理能力释放出来,更加专注于处理服务器本身承担的业务逻辑。
SSL卸载流程图: - 负载均衡分类
1.DNS负载均衡
DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。。大型网站总是部分使用DNS解析,作为第一级负载均衡。
优缺点:DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。DNS负载均衡的一个问题是一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间保存了故障服务器地址的客户计算机将不能正常访问服务器。
2. IP负载均衡
用户请求数据包,到达负载均衡服务器后,负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实服务器地址,然后将请求目的地址修改为,获得的真实ip地址,不需要经过用户进程处理。真实服务器处理完成后,响应数据包回到负载均衡服务器,负载均衡服务器,再将数据包源地址修改为自身的ip地址,发送给用户浏览器。
优缺点:在内核进程完成数据分发,比在应用层分发性能更好;所有请求响应都需要经过负载均衡服务器,集群最大吞吐量受限于负载均衡服务器网卡带宽。
3.链路层负载均衡
在通信协议的数据链路层修改mac地址,进行负载均衡。数据分发时,不修改ip地址,只修改目标mac地址,配置真实物理服务器集群所有机器虚拟ip和负载均衡服务器ip地址一致,达到不修改数据包的源地址和目标地址,进行数据分发的目的。实际处理服务器ip和数据请求目的ip一致,不需要经过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。也称为直接路由模式(DR模式)。
优缺点:性能好;配置复杂;DR模式是目前使用最广泛的一种负载均衡方式。
4.混合型负载均衡
由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。将这种方式称之为混合型负载均衡 - 负载均衡算法
常用的负载均衡算法有,轮询,随机,最少链接,源地址散列,加权等方式;
1.轮询
将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。
优点:服务器请求数目相同;
缺点:服务器压力不一样,不适合服务器配置不同的情况;
2.随机
请求随机分配到各个服务器。
优点:使用简单;
缺点:不适合机器配置不同的场景;
3.最少链接:
将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。
优点:根据服务器当前的请求处理情况,动态分配;
缺点:算法实现相对复杂,需要监控服务器请求连接数;
4.Hash(源地址散列)
根据IP地址进行Hash计算,得到IP地址。
优点:将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。
缺点:目标服务器宕机后,会话会丢失;
5.加权
在轮询,随机,最少链接,Hash’等算法的基础上,通过加权的方式,进行负载服务器分配。
优点:根据权重,调节转发服务器的请求数目;
缺点:使用相对复杂。
学习感想
学习过程中发现有很多概念都只是听过,其中不明白的地方还另外查了下,负载均衡原理很难理解,我暂且有了概念上的简单了解。短暂的学习并不能掌握详细的原理,需要多花时间在上面。