Host管理
hosts文件是一个用于储存计算机网络中各节点信息的计算机文件,这个文件负责将主机域名映射到相应的IP地址,hosts文件通常用于补充获取代网络中的DNS的功能,和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。hosts文件的作用非常大,可以自由解析域名。
随着example公司业务规模和员工数量的增长,使用该方式面临诸多问题:
- 流量和负载:用户规模指数级增长,文件大小越来越大,统一分发引起较大的网络流量和cpu负载
- 名称冲突:无法保证主机名称的唯一性,同名主机添加导致服务故障
- 时效性:分发靠人工上传,时效性太差
我们可以通过修改本地hosts,添加需要的ip与域名的配置,host文件在C:\WINDOWS\system32\drivers\etc文件夹下
使用域名系统
关于域名空间:
- 域名空间被组织成树形结构
- 域名空间通过划分zone的方式进行分层授权管理
- 全球公共域名空间仅对应一棵树
- 根域名服务器:查询起点
- 域名组成格式:【a-zA-Z0-9],
- 以点划分label
想要有自己的域名,需要先进行购买-工信部域名备案,即可建立自己域名
通过使用DNS服务可以将域名系统和IP地址实现相互映射
自建DNS系统
为什么要自建DNS系统,主要原因有以下几点:
- 内网域名的解析也得出公网去获取,效率低下
- 外部用户看到内网ip地址,容易被hacker攻击
- 云厂商权威DNS容易出故障,影响用户体验
- 持续扩大公司品牌技术影响力,使用自己的DNS系统
DNS查询过程
DNS记录类型
- A/AAAA:IP指向记录,用于指向IP,前者为IPv4记录,后者为IPv6记录
- CNAME:别名记录,配置值为别名或主机名,客户端根据别名继续解析以提取IP地址
- TXT:文本记录,购买证书时需要
- MX:邮件交换记录,用于指向邮件交换服务器
- NS:解析服务器记录,用于指定哪台服务器对于该域名解析
- SOA记录:起始授权机构记录,每个zone有且仅有唯一的一条SOA记录,SOA是描述zone属性以及主要权威服务器的记录
==思考:站在企业角度思考,我们需要的是哪种DNS服务器:权威DNS==
==常见的开源DNS:bind,nsd,knot,coredns==
HTTPS协议
常见的加密算法:对称加密和非对称加密
对称加密:一份密钥
非对称加密:公钥和私钥 常见的非对称加密算法为RSA算法,这也是支付宝使用的加密算法
SSL的通信过程
接入全站加速
外网用户访问站点,一定是一帆风顺的吗,可能出现的问题有哪些?
- 源站容量低,可承载的并发请求数低,容易被打垮
- 报文经过的网络设备越多,出问题的概率越大,丢包,劫持,mtu问题
- 自主选路网络链路长,时延高
解决方案:
- 源站容量问题 增加后端机器扩容;静态内容,使用静态加速缓存
- 网络传输问题 动态加速DCDN
- 全站加速 静态加速+动态加速
针对静态文件传输,通过缓存的方式,可以达到加速的效果
DCDN原理
如果运营商租用的100.1.2.3的公网IP,如何在企业内部使用最合理?
可以直接找一个物理机,ifconfig将网卡配上这个IP,其server监听即可
什么是4层负载均衡?
基于IP+端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡的落到后端服务器上
常见的调度算法原理:
- RR轮询:Round Robin,将所有的请求平均分配给每个真实服务器RS
- 加权RR轮询:给每个后端服务器一个权值比例,将请求按照比例分配
- 最小连接:把新的连接请求分配到当前连接数最小的服务器
- 元组hash:根据sip、sport、proto、dip、dport对静态分配的服务器做散列取模,缺点:当后端某个服务器故障后,所有连接都重新计算,影响整个hash环
- 致性hash:只影响故障服务器上的连接session,其余服务器上的连接不受影响
7层负载均衡:Nginx
- 模块化设计,较好的扩展性和可靠性
- 基于master/worker架构设计
- 支持热部署;可在线升级
- 不停机更新配置文件、更换日志文件、更新服务器二进制
- 较低的内存消耗:1万个keep-aive连接模式下的非活动连接仅消耗2.5M内存
- 事件驱动:异步非阻塞模型、支持aio,mmap(内存映射)