《网络是怎么样连接的》读书笔记 - 服务器端的局域网中(四)

本文涉及的产品
云防火墙,500元 1000GB
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 《网络是怎么样连接的》读书笔记 - 服务器端的局域网中(四)

本章重点

  • 防火墙的地位作用以及现代主流的服务器部署方式。
  • 缓存服务器的作用以及部署方式。
  • 三种代理方式以及区别。
  • 内容分发服务是什么?缓存服务器不同部署方式的影响。

防火墙和网络访问

如果服务器不设置任何防护并且裸奔,很大概率受到网络攻击,现在公司基本都会使用防火墙+服务器的部署方式。还有一种是直接买服务器供应商也就是常见的上云,直接让专业的三方服务器管理进行防护。

image.png

防护网络攻击的手段目前主流的方式有三种,其中被使用最多也最有效的是包过滤

第一种方式为包过滤,包过滤非常简单,因为在网络包的头部包含了网络请求的所有信息,通过接收方 IP 地 址和发送方 IP 地址,我们可以判断出包的起点和终点。因为请求的终点是可以确定的,也就是WEB服务器,所以这之间加入防火墙来隔离异常请求。

第二种方式是使用端口的方式进行限制,防火墙控制某个端口的请求网络是否可以来放行不同IP进入不同端口的权限。

第三种是TCP层面的防护,TCP 在执行连接操作时需要收发 3 个包,第一个包通常使用其他端口,可以判断一定是在 Web 服务器 程序中特别设置过的,因此只要按照服务器的设置来调整防火墙设置即可,通常这个包中 TCP 控制位中 SYN 为 1,而 ACK 为 0。

其他的包中这些值都不同, 因 此只要按照这个规则就能够过滤到 TCP 连接的第一个包。因为WEB服务器发往互联网被阻断了,所以这样就实现了拦截,从反方向来看,第一个包是发往WEB服务器的,返回时从WEB返回的,所以互联网访问WE B是没有问题的。

最后这样就实现了“可进不可出”的效果,根据第三章讨论的地址转换的工作原理,当使用地址转换时,默认状态下是无法从互联网访问公司内网的,因此我们不需要再设置一条包过滤规 则来阻止从互联网访问公司内网。

image.png

image.png

最后需要说明包拦截过滤并不是防火墙特有的功能,而是路由器的包转发功能基础上附加的一种功能。

对于防火墙这种机制是典型的“攘外但是不能安内”的存在,意思是说虽然对外的敌人是拦截的,但是出现了防火墙无法防御的内鬼是解决不了的,所以针对防火墙无法处理的问题,又引申出几种处理方式:

  • 第一种是修复应用程序的BUG,这些BUG通常是技术人员在开发过程中没有考虑到的系统漏洞问题,这种问题是可以通过人为手段快速修复的 。
  • 第二种是用加一层的绝招,对于异常流量进行拦截,比如最为经典的DDos攻击,使用自身的防火墙显然是不行的,必须有外部监控防护服务器进行保护。

负载均衡

单机的负载均衡是没有意义的伪负载均衡,下面讨论的都所有情况都是在多物理或者多主机映射的虚拟机的情况进行介绍。

负载均衡通常会使用缓存服务器,缓存服务器是一台通过代理机制对数据进行缓存的服务器。

缓存服务器位于web服务器和客户端之间具备对于WEB的中转功能,主要工作非常简单就是把WEB服务器返回的数据缓存在磁盘中序列化存储,目的是提高WEB服务器的响应速度。

缓存服务器最大的问题是服务器更细数据之后缓存可能还没同步而看到旧数据,为此缓存提供了缓存最大的保存时间以及用户访问隔离的特性,简单理解就是针对不同的客户端看到的内容是不同的,不过从服务器的角度看与之交互的是缓存服务器。

判断什么时候需要直接返回服务器数据而不是缓存数据,一种简单的方案是检查客户端的网络报文信息变动,并且自己在返回的时候也要告知自己是缓存还是服务器数据。

最后缓存的最大问题是缓存命中率的问题,但是此问题不在本章科普范围之内不做过多介绍。

代理处理

正向代理:正向代理刚刚出现的时候,其目的之一就是缓存,这个目的和服务器 端的缓存服务器相同。当设置了 正向代理时,浏览器会忽略网址栏的内容,直接将所有请求发送给正向代 理。请求消息的内容也会有一些不同。

正向代理是最为简单直观的代理方式,具备有下面的特点:

1、访问内部节点:通常使用跳板作为进入内网的工具。

2、加快访问速度:代理服务器可以缓存内网资源,用户请求已缓存资源时,直接发送给用户,比如国内阿里云的MAVEN仓库。

3、访问控制:代理服务器可以设置访问权限,控制外部主机对内网资源的访问。简单的权限控制防止外部访问内部网络。

一些好用的代理工具:

1.reDuh源码github.com/sensepost/r…

2.reGeorg源码github.com/sensepost/r…

3.tunna 源码 github.com/SECFORCE/Tu…

反向代理

正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。

反向代理服务器的作用:

集群式部署实现负载均衡,CDN技术(构建在数据网络上的一种分布式的内容分发网),前端服务器,Nginx(异步框架的网页服务器)等。

1、用户访问web服务时,并不知道访问的是代理服务器,代理服务器就是web服务器。

2、加快访问速度,和正向代理一样可以缓存内网数据。

3、实现负载均衡,降低单个服务器的负担,提高整体资源的利用率。

透明代理

意思是客户端根本不需要知道有代理服务器的存在,它修改你的请求报文,并会传送真实IP。注意加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。对于整个请求来说是无感知的。也因为是无感知的,所以透明代理不能和反向代理兼容。

透明代理的作用:

1、实践例子为当下很多公司使用的行为管理软件。

2、客户端访问web并不知道是通过代理服务器访问的。

3、防火墙设置透明代理,当PC让代理服务器请求web页面时,代理服务器返回页面数据。

内容分发服务

缓存服务器部署在不同的地方,其效果会完全不一样。关于部署的不同方式可以直接看下面的图,这里主要记录第三种部署方式的利弊。

第三种部署方式是和网络运营商签约的方式缓存服务器就近部署(类似CDN),当然这样的开销显然很大,所以在此之上也有中间商插入专门干这些事情,这些运营商被叫做CDSP( Content Delivery Service Provider,内容分发服务运营商)。

这些运营商会和主要的互联网供应商签约,并部署很多台缓存服务器,缓存服务器可以缓存多个网站的数据,因此 CDSP 的缓存服务器就可 以提供给多个 Web 服务器的运营者共享。

image.png

如何让客户端找最近的服务器

答案是是像负载均衡一样用 DNS 服务器来分配访问,对于DNS向Web返回IP的同时返回一些额外的信息。

而对于如何估算出客户端和就近服务器的距离,可以通过把所有的路由放到路由表中,可以通过路由次数的方式判断距离,虽然不一定完全一致,但是可以以较大的精度确定位置。

其他的办法是通过重定向的方式查找最近的缓存服务器,重定向服务器通过收集了来自各个路由器的路由信息,并根据这些信息找到最近 的缓存服务器。

除了收集路由信息,重定向也可以返回一个通过网络包往返时间估算到缓存服务器的距离的脚本, 通过在客户端运行脚本来找到最优的缓存服务器。

缓存更新的影响

缓存更新会影响缓存服务器的效率,所以更新方法非常重要。

比较常见的更新方式是每次原始服务器更新就立刻通知缓存服务器,让其一直保持最新状态,这个功能的执行者就是内容分发服务。

除了编写静态页面之外,还以一种方式是选择不保存页面而是将网页的动态内容和静态内容分离,比如图片服务器、文件服务器等等。

总结

这一章算是比较科普向的一章,其实也算是可看可不看的类型,个人认为重点是代理处理的部分,了解三种代理方式。

而负载均衡的内容则需要深入学习Nginx的相关内容,本章讲述的内容有些太浅了。

总之是轻松加愉快的一章内容。


相关文章
|
7天前
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
29 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
7天前
|
缓存 负载均衡 监控
HTTP代理服务器在网络安全中的重要性
随着科技和互联网的发展,HTTP代理IP中的代理服务器在企业业务中扮演重要角色。其主要作用包括:保护用户信息、访问控制、缓存内容、负载均衡、日志记录和协议转换,从而在网络管理、性能优化和安全性方面发挥关键作用。
27 2
|
1月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
55 5
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
829 2
|
1月前
|
物联网 5G 数据中心
|
2月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
45 5
|
10天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
47 17
|
20天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
21天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
43 10