(六)将我的服务开放给用户 | 青训营

44 阅读5分钟

你能学到什么?

image-20230811201838955.png

课程目录

image-20230811201906054.png

01 接入问题引入

1.1问题引入

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

浏览器抓包,关注第一个报文即可,后面的是页面渲染请求的资源。

wireshark抓包

9e0dfb24-23a0-4d99-95bf-1282991ee170.png fa5048a3-cb59-43d3-9d68-6ddd751714ae.png

一路经过了:

  1. DNS域名解析
  2. TCP建立连接
  3. TLS握手
  4. HTTP请求

思考:如果是我如何搭建服务器,让请求能接入服务器?

1.2 字节接入框架

06a7f3b8-addb-4322-9b9d-85b0204ea89a.png

02 企业接入升级之打怪之路

DNS: Domain Name System

1 域名系统

host管理

image-20230812113828482.png

使用域名系统

image-20230812114532668.png

域名购买和配置迁移

image-20230812114556073.png

如何开放外部用户访问?

image-20230812114618055.png

09a9bdf0-b09f-426d-bc0b-9d2860ace8b1.png

  1. 第一步用户进行DNS解析,解析www.example.com 绑定的id

  2. 得到ip之后,用终端通过网络边缘经过网络核心找到对应的服务器,并发起请求

  3. 服务器做出响应

2 自建DNS服务器

问题背景

image-20230812115018552.png

权威DNS出现问题,你无法改变,掌握在自己手里的才是稳定的。

DNS服务器有四种:根、顶级、权威、本地

DNS查询过程

59395171-b93a-4897-99a5-4e5fc8f77bc3.jpg

DNS记录类型

参考网址: tool.chinaz.com/nslookup

关于zone的理解

blog.csdn.net/qq_43207781…

billing.yahuhost.com/knowledgeba…

常规而言一个Domain会有多个zone eg: 一个DNS服务器解析的范围是 .example.com。那么这个Domian下面可能有www1.example.com www2.example.com 两个zone

image-20230812120932448.png

txt:购买证书时,验证你对这个域名有一定的控制权。不同的厂商会让你指定不同的txt。

SOA(start of Authority):SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。cf945643b8d57d9c36efdc1de5fc83ba.png

710c3efff8eb809de6980126e51c552a.png

权威DNS系统架构

image-20230812174354346.png

  • DNS Update:DNS主服务器master接受外部的变更指令
  • DNS Notify:DNS主服务器master接受变更命令后,会自增自身的serial号,同时将变更的serial号告知从服务器slave
  • DNS IXFR:DNS从服务器slave以增量的形式向master要求获取本次变更的内容
  • DNS AXFR:DNS从服务器slave以全量的形式向master要求获取当前的全量数据

经过研发人员不断的努力,example公司有了自己的权威DNS系统

6d0c48d5-a51e-4856-b4e3-e6859b9a4024.png

使用自建的DNS系统,扩大了技术影响,并且提高了权威DNS服务器的稳定性和可控性

3 接入HTTPS协议

问题背景

对称加密和非对称加密

对称加密加密在通信之前,需要先把密码传过去,有可能被截获。

非对称加密:常见RSA

f253b185-0e7c-43f1-a9a7-8aaf11dd1976.png 这是HTTPS s的雏形

加密和解密使用不同的钥匙。公钥和私钥成对。公钥加密私钥解开,私钥加密公钥解。

SSL的通信过程

私钥常存服务器

43d3424f-d27a-4cc2-9151-1107993e868d.jpg

  1. client给server发了一个hello消息,消息包括客户端支持的TLC版本和密码组合,还有一个随机字符串
  2. 发送server hello给client,消息包含数字证书、随机字符串
  3. client对server发来的公共数字证书进行一个认证,再用这个公钥对Premaster secret进行加密。
  4. 服务器收到之后再用私钥进行解密得到Premaster Secret

双方就会得到相同的四元组

  • server random
  • client random
  • premaster secret
  • 协商的加密算法

通过这个四元组计算得到Session Key

证书链

公钥一定是可靠的吗?会不会被劫持?

Server断发送的证书链,client会进行简单的验证

公钥存在证书里面

服务器对证书内容进行摘要计算

用私钥对摘要进行加密得到数字签名

证书链如何验签

使用https

购买证书放到自己的网站上。

解决了明文传输带来的一些黑产、不安全问题

4 接入全站加速

4.1 问题背景

mtu大小不匹配的问题。

网页请求大于3s,就有可能选择其他的产品进行替代。

4.2 解决方案

4.3 静态加速CDN

e1b805d3-712f-4f5f-ab1f-158615a32ecf.png 智能调度DNS,将合适的cdn节点的ip地址,客户端去访问cdn节点,cdn节点会对源站发起一次请求,然后对结果进行缓存,下一次就直接返回

第一公里问题:让用户在就近的节点获取数据

4.4 动态加速 DCDN

DCND 动态加速 会进行路径探测

4.5 DCND原理

image-20230812184833440.png

边缘 汇聚 核心

边缘节点靠近用户、规模小、容量小、节点数量大

汇聚规模更大、容量更大、节点更少

核心机房规模超大、容量超大、节点巨少

动态加速:直接 一个TCP连接是一个RTT 20 一个TLS是两个RTT 20*2

西部地区到北京机房:20+10+10(中间机房的连接在预热的时候就连接好)