企业接入网路升级打怪之路| 青训营

网络接入问题的引入

问题引入

经典问题: 浏览器输入网站域名www.toutiao.com到网页加载出来,都经历了哪些过程?

  1. 域名解析
  2. TCP建连
  3. SSL握手
  4. HTTP请求

过程概述:DNS解析将域名转换为IP地址,TCP建立连接,SSL握手进行加密通信,最后发起HTTP请求获取网页内容。

企业接入升级打怪之路

域名系统

Host管理

在初始阶段,企业使用Hosts文件管理主机映射,但随着业务规模和员工数量增长,会面临以下问题:

  1. 流量和负载:用户规模增长,文件大小增加,统一分发导致网络流量和CPU负载增加。
  2. 名称冲突:无法保证主机名称的唯一性,添加同名主机可能导致服务故障。
  3. 时效性:分发依赖人工上传,时效性较差。

使用域名系统

使用域名系统(DNS)替代Hosts文件:

  • 域名空间被组织成树形结构。
  • 域名空间通过划分zone的方式进行分层授权管理。
  • 一个共享域名空间仅对应一棵树。
  • 根域名服务器为DNS查询的起点。
  • 域名由多个label以点进行分隔,格式为[a-zA-Z0-9]。

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

如何建设外部网站,提升公司外部影响力?

方案:租赁一个外网IP,专用于外部用户访问门户网站。将www.example.com解析到外网IP 100.1.2.3,并将该IP绑定到一台物理机上。通过发布公网route,实现外部用户访问。

自建DNS服务器

权威DNS系统架构

在企业角度思考,我们需要的是哪种DNS服务器?

答案:权威DNS、LocalDNS(可选)

常见的开源DNS服务器:bind、nsd、knot、coredns等。

HTTPS协议

对称加密和非对称加密:

  • 对称加密:使用相同的秘钥进行加密和解密。
  • 非对称加密:使用一对公钥和私钥进行加密和解密。

常见加密算法:AES、RSA、DSA、ECC等。

接入全站加速

源站容量问题:通过静态加速缓存,增加后端机器扩容来处理静态内容。

网络传输问题:使用动态加速DCDN处理动态请求,从多个回源线路中选择最优线路进行传输。

全站加速:结合静态加速和动态加速实现整体性能提升。

静态加速CDN

静态文件传输网络优化方式:缓存,解决服务器端的"第一公里"问题,减轻出口带宽压力,优化网上热点内容分布。

动态加速DCDN

处理不能缓存的业务,如POST请求,通过智能选路技术选择最优线路进行传输。

四层负载均衡

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

现状:直接找一台物理机,使用ifconfig将网卡配置上这个IP,并启动服务器监听即可。对于多个应用,可以在不同端口上起多个服务器监听。

租多个公网IP:数量有限,成本较高。

四层负载均衡特点

  • 基于IP+端口,利用算法将报文转发给某个后端服务器,实现负载均衡。
  • 解决VIP(Virtual IP)和RS(Real Server)的问题。
  • 使用NAT(Network Address Translation)技术。
  • 防御DDoS攻击,例如通过syn proxy防止syn flood攻击。

常见的调度算法原理

  • RR轮询(Round Robin):平均分配请求给每个真实服务器RS。
  • 加权RR轮询:给每个后端服务器一个权值比例,按比例分配请求。
  • 最小连接:将请求分配到当前连接数最小的服务器。
  • 五元组hash:根据源IP、源端口、协议、目标IP、目标端口进行散列取模,静态分配服务器。
  • 一致性hash:只影响故障服务器上的连接session,其余服务器上的连接不受影响。

七层负载均衡

四层负载均衡只能bind一个80端口,而对于一个IP可以有多个外部站点需要使用。因此,需要七层负载均衡来解决这个问题。

如何将本地服务开放外网访问

命令:./ngrok http example.com:8082

通过使用Ngrok工具,可以将本地服务暴露到外网,从而在开发前期低成本地让别人访问自己的服务。

提问: 服务开发前期,如何低成本的让别人访问自己的服务? 回答: Ngrok,Expose your localhost to the web 使用条件: 使用github账户授权登录,即可使用,详见 dashboard.ngrok.com/get-started…

posted @ 2023-08-02 22:13  LucianaiB  阅读(22)  评论(0)    收藏  举报  来源