网络接入过程引发的问题|青训营

55 阅读4分钟

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查询过程

73c026e736c20457204ee05a2f0c30c1.png

DNS记录类型

  • A/AAAA:IP指向记录,用于指向IP,前者为IPv4记录,后者为IPv6记录
  • CNAME:别名记录,配置值为别名或主机名,客户端根据别名继续解析以提取IP地址
  • TXT:文本记录,购买证书时需要
  • MX:邮件交换记录,用于指向邮件交换服务器
  • NS:解析服务器记录,用于指定哪台服务器对于该域名解析
  • SOA记录:起始授权机构记录,每个zone有且仅有唯一的一条SOA记录,SOA是描述zone属性以及主要权威服务器的记录

7b3b4fb11c2ed90921f026784384b38c.png

8ef3a8ff58f11a64ec7550e8f6fea870.png

==思考:站在企业角度思考,我们需要的是哪种DNS服务器:权威DNS==

==常见的开源DNS:bind,nsd,knot,coredns==

截图

a2f21aec623a3632dc6d53f840992d8c.png

HTTPS协议

常见的加密算法:对称加密和非对称加密

对称加密:一份密钥

6719476d6803b0c4b50ed1d0146f81a0.png

非对称加密:公钥和私钥 常见的非对称加密算法为RSA算法,这也是支付宝使用的加密算法

059d80ccd00d0f298c6f605f771218cc.png

SSL的通信过程

e782e0ccc94b679dfda4ac8f698473f2.png

接入全站加速

外网用户访问站点,一定是一帆风顺的吗,可能出现的问题有哪些?

  • 源站容量低,可承载的并发请求数低,容易被打垮
  • 报文经过的网络设备越多,出问题的概率越大,丢包,劫持,mtu问题
  • 自主选路网络链路长,时延高

解决方案:

  • 源站容量问题 增加后端机器扩容;静态内容,使用静态加速缓存
  • 网络传输问题 动态加速DCDN
  • 全站加速 静态加速+动态加速

针对静态文件传输,通过缓存的方式,可以达到加速的效果

DCDN原理

7ca3aedeb47f2b5852ae7baf9a4d4772.png

6fc42cebae26dc89c7f3c5c98583f5a0.png

如果运营商租用的100.1.2.3的公网IP,如何在企业内部使用最合理?

可以直接找一个物理机,ifconfig将网卡配上这个IP,其server监听即可

什么是4层负载均衡?

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

bdc183324d7df83a31b882def64956d4.png

常见的调度算法原理:

  • 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(内存映射)