JavaShuo
栏目
标签
DNS/SSL/LB学习总结
时间 2019-11-24
标签
dns
ssl
学习
总结
栏目
系统网络
繁體版
原文
原文链接
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’等算法的基础上,经过加权的方式,进行负载服务器分配。
优势:根据权重,调节转发服务器的请求数目;
缺点:使用相对复杂。
学习感想
学习过程当中发现有不少概念都只是听过,其中不明白的地方还另外查了下,负载均衡原理很难理解,我暂且有了概念上的简单了解。短暂的学习并不能掌握详细的原理,须要多花时间在上面。
前端
相关文章
1.
【总结】AngularJs学习总结
2.
学习总结
3.
总结学习
4.
【学习总结】SQL的学习-汇总
5.
CAN总线学习总结
更多相关文章...
•
XML 总结 下一步学习什么呢?
-
XML 教程
•
您已经学习了 XML Schema,下一步学习什么呢?
-
XML Schema 教程
•
Tomcat学习笔记(史上最全tomcat学习笔记)
•
适用于PHP初学者的学习线路和建议
相关标签/搜索
学习总结
学习、总结
Docker学习总结
JS学习总结
实习总结
总结
Java菜鸟学习总结
机器学习总结
Mybatis学习总结五
第九周学习总结
SSL
系统网络
PHP教程
Thymeleaf 教程
MyBatis教程
学习路线
初学者
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
安装cuda+cuDNN
2.
GitHub的使用说明
3.
phpDocumentor使用教程【安装PHPDocumentor】
4.
yarn run build报错Component is not found in path “npm/taro-ui/dist/weapp/components/rate/index“
5.
精讲Haproxy搭建Web集群
6.
安全测试基础之MySQL
7.
C/C++编程笔记:C语言中的复杂声明分析,用实例带你完全读懂
8.
Python3教程(1)----搭建Python环境
9.
李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning
10.
阿里云ECS配置速记
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
【总结】AngularJs学习总结
2.
学习总结
3.
总结学习
4.
【学习总结】SQL的学习-汇总
5.
CAN总线学习总结
>>更多相关文章<<