当前位置:网站首页>网络设备硬核技术内幕 防火墙与安全网关篇 (八) 虚拟化神器 (中)
网络设备硬核技术内幕 防火墙与安全网关篇 (八) 虚拟化神器 (中)
2022-07-27 22:04:00 【用户8289326】
令狐冲通过批量部署了虚拟化服务器,对华山派的网站进行了大规模扩容,果然,对外访问流畅了许多。然而,一切都源于一只万恶的蝙蝠…
由于抗击疫情的需要,华山派也开启了网上直播教学,通过互联网向全球弟子传授武功。由于华山派武功有一定的保密性,岳不群要求,只有加入会员才能观看直播。
负责互联网业务开发的弟子们很快就开发出了互联网直播业务,三天内以迅雷不及掩耳盗铃之势上线了。
没想到,很快用户投诉就塞爆了华山派的客服邮箱——基本上都是在报告,登录了华山派官网以后,点开直播页面发现,提示没有登录,需要再次登录,还不一定能够成功。
原来,这和令狐冲开发的负载均衡设备的机制有关。
如图,用户在访问网络视频直播业务时,会向服务器(VM)发起多个连接。由于基于NAT的LB设备感知不到用户信息,会将来自同一个用户的访问转发到多个VM上。
假设图中的用户的IP是123.118.110.85,通过TCP向73.81.6.112的80端口发起HTTP连接。第一个连接的源端口是41318,并在这个HTTP连接上登录。LB将这个连接发放到了虚拟机 10.152.13.16。
随即,用户点开播放视频的链接,浏览器通过TCP向73.81.6.112的80端口又发起了一个连接,这个连接使用了41320作为源端口,LB将这个连接发放到虚拟机 10.152.13.17。
由于虚拟机10.152.13.17并不知道这个用户的登录状态,它判断用户登录信息无效,拒绝发送视频流。
因此,基于NAT的负载均衡,对于有状态服务,存在着天然的缺陷——
令狐冲决定在LB上开发另一种负载均衡工作模式——反向代理模式。
什么是反向代理模式呢?
我们知道,NAT工作在四层,它不关心TCP/UDP内部封装的内容,只是简单地将内网IP/端口与外网IP/端口进行映射。这也就是基于NAT的负载均衡难以正确处理有状态服务的根本原因所在。
而反向代理工作在七层。
它本身终结HTTP请求,识别HTTP用户,并构建新的HTTP请求发送到服务器/VM集群,如下图所示:
图中的LB设备工作在反向代理模式。来自互联网的User A访问到LB对外发布的虚拟IP (Virtual IP, 缩写为VIP) 73.81.6.112,LB设备对HTTP请求进行解析,获取到用户信息,将User A分配到虚拟机10.152.13.16,并向这个虚拟机发起HTTP请求。那么,当另一个用户对73.81.6.112发起请求时,LB设备也会将这个用户的HTTP解析后,将用户在虚拟机池中固定分配到另一个虚拟机。
这样,就可以实现有状态服务了。
实现了有状态服务的LB,已经从防火墙跨越到了新的一个层次——应用安全网关。这是一个全新的领域,容我们以后再讲述。
支持反向代理模式上线以后,华山派的直播业务果然大放异彩,又一次赢得了江湖的盛誉。
没想到,家庭宽带网关的一场风暴,又带来了新的挑战——
敬请期待下期。
边栏推荐
- numpy没有unsqueeze函数
- 点分治解析
- Intensive reading of deep learning papers [gan]: multi-purpose image restoration and processing using depth generation priors
- Yongzhou water quality testing laboratory construction: Furniture description
- 【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
- Map set
- Ali Er Mian: why do we need to separate databases and tables?
- LeetCode_位运算_中等_137.只出现一次的数字 II
- [BRE]软件构建发布自动化
- map集合
猜你喜欢

See how well-known enterprises use Web3 to reshape their industries
![[meetup preview] openmldb + ONEFLOW: link feature engineering to model training to accelerate machine learning model development](/img/29/f31fa3af18198754d2433f47c0c556.jpg)
[meetup preview] openmldb + ONEFLOW: link feature engineering to model training to accelerate machine learning model development

Selection of FFT sampling frequency and sampling points

英特尔AI实践日第56期 | 探讨行业发展新趋势

HarmonyOS 3纯净模式可限制华为应用市场检出的风险应用获取个人数据

【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发

Ali Er Mian: why do we need to separate databases and tables?

从第二层到第三层

MFC prompts that this application has requested the runtime to terminate it in an unused way editbox box has been deleted and is still in use

Matlab | those matlab tips you have to know (I)
随机推荐
网络设备硬核技术内幕 防火墙与安全网关篇 (十二) 零接触办公的奥秘 下
Intel releases open source AI Reference Suite
OpenVINO整合TensorFlow实现推理加速
火狐浏览器 Firefox 103 发布,提升高刷新率显示器下的性能
[BRE]软件构建发布自动化
从第二层到第三层
单片机之led、数码管与按键
【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
Is there a general formula for tens of millions of players? B station is underestimated as a hot money opportunity!
How to realize fast recognition of oversized images
Basic operations of MySQL database (3) --- Based on fields
From the second floor to the third floor
MATLAB 文件夹前面的+和@是干啥的 命名空间与函数的重载
一文读懂CMake
Build Release Blogs
Intensive reading of deep learning papers [gan]: multi-purpose image restoration and processing using depth generation priors
҈ straight ҈ Broadcast ҈ Pre ҈ Report ҈ |҈ In hot summer, let's cross the high temperature and "bake" with nono!
基本初等函数
The influence of head zeroing and tail zeroing on FFT output
公司7月来了个软件测试工程师,一副毛头小子的样儿,哪想到是新一代卷王...