企业接入|青训营笔记

148 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第20天。

企业接入

抓包过程:DNS->TCP->TLS->HTTP请求。

Host模式的问题:统一分发会引起较大的网络流量和cpu负载,无法保证主机名称的唯一性,同名主机添加导致服务故障,分发靠人工上传,时效性太差。

域名空间:组织成树形结构,通过划分zone的方式进行分层授权管理,全球仅对应一棵树。

域名空间的查询起点就是根域名服务器。

顶级域:gov(政府)、edu(教育)、com(商业)、mil(军事)、org(非盈利性组织)等。

获得域名的方式是域名购买,如火山引擎、阿里云处可购买。

域名不能随心所欲使用,要进行域名备案,在云厂商处可以进行。

修改配置:清空/etc/hosts,配置/etc/resolv.conf中nameservers为公共DNS迁移原配置,通过控制台添加解析记录。

建设外部网站的方法:租赁一个外网ip,专门用于外部用户访问门户网站,将内部网站解析到外网ip,将该ip绑定到一台物理机上,并发布公网route,用于外部用户访问。

DNS查询过程

DNS记录类型:A、AAAA、CNAME、TXT、MX、NS、SOA。

A记录:IPv4记录。

AAAA记录:IPv6记录。

CNAME记录:别名记录,配置值为别名或主机名,客户端根据别名继续接续以提取IP地址。

TXT记录:文本记录,购买证书时需要。

MX记录:邮件交换记录,用于指向邮件交换服务器。

NS记录:解析服务器记录,用于指定哪台服务器对于该域名解析。

SOA记录:起始授权机构记录,每个zone有且仅有唯一的一条SOA记录,SOA是描述zone属性以及主要权威服务器的记录。

常见的开源DNS:bind、nsd、knot、coredns。

加密方法分类:对称加密(一份密钥)、非对称加密(公钥和私钥)。

非对称加密:用公钥加密用私钥解密,使用私钥进行加密用公钥解密。

SSL的通信过程:client random->server random->premaster secret->加密算法协商。

源站容量问题的解决方案:增加后端机器扩容,静态内容使用静态加速CDN加速缓存。

网络传输问题的解决方案:动态加速DCDN。

全站加速:静态加速与动态加速相结合。

静态加速CDN优化原理:解决了服务器端的”第一公理“问题,缓解了不同运营商之间互联的瓶颈造成的影响,减轻了各省的出口带宽压力,优化了网上热点内容的分布。

动态加速DCDN优化原理:针对POST等动态请求的业务,基于智能选路技术,从从多回源线路中择优选择一条线路进行传输。

静态加速案例:用户点开特定视频加载后观看。

动态加速案例:用户注册。

全站加速案例:例如打开网页进行浏览。

企业内部使用公网IP的方法:找一个物理机,ifconfig将网卡配上这个IP,起server监听,如果应用多,起多个server监听不同的端口。

4层负载均衡:基于IP和端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡地落到后端服务器上。

4层负载均衡的主要功能:解耦vip和rs、NAT、防攻击。

调度算法:RR轮询、加权RR轮询、最小连接、五元组hash、一致性hash。

RR轮询:将所有的请求平均分配给每个真实服务器RS。

加权RR轮询:给每个后端服务器一个权值比例,将请求按照比例分配。

最小连接:把新的请求分配到当前连接数最小的服务器。

五元组hash:根据sip、sport、proto、dip、dport对静态分配的服务器做散列取模。

五元组hash缺点:当后端某服务器故障后,所有连接都要重新计算,影响整个hash环。

一致性hash:只影响故障服务器上连接session,其余服务器上的连接不受影响。

4层负载均衡实现方式:FULLNAT模式。

4层负载均衡的特点:大部分通过dpdk技术实现,纯用户态协议,kernel bypass,消除协议栈瓶颈,无缓存,零拷贝,大页内存,减少cache miss,仅针对4层数据包转发,小包转发可达到限速,可承受高cps。

Nginx:最灵活的高性能WEB SERVER,应用最广的7层反向代理。

Ngnix特点:模块化设计、较好的扩展性和可靠性、基于master/worker架构设计、支持热部署、可在线升级、不停机更新配置文件、更换日志文件、更新服务器二进制、较低的内存消耗、事件驱动。

Nginx反向代理服务器功能:Keepalive、访问日志、url rewrite重写、路径别名、基于ip的用户的访问控制、限速及并发连接数控制。

Nginx内部架构

事件驱动模型