【计算机网络】TCP负载均衡实验

一:实验目的

1:了解TCP负载均衡的配置。

2:学会使用NAT技术处理和外部网络的连接。

二:实验仪器设备及软件

硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为:二层交换机1台、路由器2台、Web服务器2台、计算机1台。

软件:wireshark软件、记事本、Chrome浏览器等。

三:实验方案

【实验的网络拓扑结构图】

四:实验步骤

1:搭建Web服务器。

    打开服务管理器,选择IIS管理器。

设置IIS服务器。

添加网站。

最终设置。

查看默认文档。

配置web2.html文件。

添加受信任的服务器站点。

从浏览器访问该站点。

2:在路由器上配置IP地址和路由。

路由器RG的配置过程,如下图所示。

路由器ISP的配置过程,如下图所示。

3:通过一个虚拟主机许可声明定义一个扩展的IP访问列表。

配置虚拟地址的过程,如下图所示。此处的虚拟地址为50.1.1.10。

4:为真实主机定义一个IP NAT池,确保其为旋转式池。

配置IP NAT池的过程,如下图所示。真实主机分别为10.206.1.5和10.206.1.6。

完整命令为:ip nat pool webserver 10.206.1.5 10.206.1.6 prefix-length 24 type rotary。

5:定义访问列表与真实主机池之间的映射。

定义映射的过程,如下图所示。

6:指定一个内部端口和一个外部端口。

指定端口的过程,如下图所示。其中,外部端口为Serial 5/1,内部端口为gi 0/1。

7:验证测试。

五:实验结果及分析

1:步骤7的验证测试过程。

【1】在主机A上用浏览器打开http://50.1.1.10。

主机上打开该虚拟站点,并跳转到服务器10.206.1.5的结果,如下图所示。

主机上打开该虚拟站点,并跳转到服务器10.206.1.6的结果,如下图所示。此时已经禁用之前的10.206.1.5,并将10.206.1.6的地址进行了替换。

【2】查看地址翻译的过程:#debug ip nat。

    执行上述命令后,无法捕捉到任何结果,即使是在主机A访问站点时。

【3】查看NAT表:#show ip nat translations。说明表中端口号有什么用?

在路由器RG上执行上述命令的结果,如下图所示。可以看到地址从50.1.1.10翻译到了10.206.1.5,即从虚拟地址变成了真实主机。

当交换机上只存在服务器2而不存在服务器1时,执行上述命令的结果,如下图所示。可以发现,本实验的rotary配置存在一些问题,服务器并没有进行轮转。

【4】在Web服务器上捕获数据报,查看发送过程中报文的IP地址转换情况,并作出合理解释。

从主机A直接ping到服务器2所捕获的数据报,如下图所示。

从主机A直接访问虚拟地址站点所捕获的数据报,如下图所示。

【5】在192.168.1.5和192.168.1.6主机上建立用户名和口令。建立方法是右击“计算机”图标,在弹出的快捷菜单中选择“管理”选项,在“计算机管理”窗口中选择“本地用户和组”→“用户”选项,右击后在弹出的快捷菜单中选择“新建用户”选项。分别采用Telnet和远程桌面连接(设置方法是右击“计算机”图标,在弹出的快捷菜单中选择“属性”选项,在“系统属性”对话框中选择“远程”,选择“允许用户远程到此计算机”复选框)的方法代替(1),重做(2)~(4)的内容。建立的用户必须有属于管理员的权限(或直接用administrator用户登录)。

 首先,配置服务器2主机的远程设置,变成允许其他主机远程连接到当前主机的状态。

然后,在主机A上尝试以远程连接的方式访问服务器2的主机。此方法可能不行,会显示远程连接已超时,如下图所示。

2:步骤1的验证测过程。

【1】完成步骤2后,验证整个网络的连通性。

从服务器2尝试ping通到服务器1的结果,如下图所示。

从服务器2尝试ping通到主机的结果,如下图所示。

【2】查看NAT表。

3:实验时不能简单地采用从主机A ping 50.1.1.10的方式进行验证,这是什么原因?

    因为50.1.1.10是虚拟地址,路由器上无法找到跳转到整个目的地址的路径。

4:TCP负载均衡与访问量有关吗?请设计有效方法,该方法可以考察到负载均衡的效果,并总结其规律性。

有关。

实施负载均衡策略。例如:轮询、加权轮询、最少连接等方法。

5:本实验采用的技术有什么现实意义?

(1)提高系统的可用性和可靠性。通过将网络流量分散到多个服务器上,TCP负载均衡可以减少任何单个服务器的压力,避免过载。即使某个服务器因故障停机,其他服务器仍然可以继续处理请求,从而提高整个系统的可用性和可靠性。

(2)优化资源利用。负载均衡确保网络和服务器资源得到最有效的利用。它通过动态地分配请求到所有服务器,防止某些服务器闲置而其他服务器过载。这种优化可以大大提高处理能力和响应速度。

(3)支持扩展性。随着企业和服务的增长,流量需求会增加。TCP负载均衡允许组织以最小的中断向系统添加更多服务器。这种灵活性可以根据需求增减资源,支持业务的持续增长和扩展。

六:实验总结及体会

1:采用prefix设置rotary存在问题,在主机A的浏览器上访问虚拟地址,该虚拟地址只会翻译到服务器1的地址,而不会翻译到服务器2的地址。

2:远程桌面连接存在超时问题。

3:debug ip nat无法在主机A访问虚拟地址站点时,查询到地址的翻译过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/385327.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【保姆级教程】LSS(3):跑通LSS模型,训练,测试

一、准备代码 https://github.com/nv-tlabs/lift-splat-shoot 二、准备数据 1 登录nuscenes官网 2 安装依赖库 pip install nuscenes-devkit tensorboardX efficientnet_pytorch==0.7.0三、准备预训练权重 需要上google网盘下载, https://drive.google.com/file/d/18fy-…

鸿蒙HarmonyOS开发:多种内置弹窗及自定义弹窗的详细使用指南

文章目录 一、消息提示框(showToast)1、导入模块2、语法3、参数4、示例5、效果 二、对话框(showDialog)1、导入模块2、语法3、参数4、示例5、效果 三、警告弹窗(AlertDialog)1、语法2、参数3、AlertDialogP…

paraFoam 运行 报错 usr/lib/x86_64-linux-gnu/libQt5Core.so 已解决

在日常项目开发中。使用ubuntu 视图开发的时候。报错 缺少 libQt5Core 核心组件! whereis libQt5Core.so.5sudo strip --remove-section.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 完美解决,并且能正常打开,前提是&#xff0c…

编译之舞:C/C++ 与 GCC 的协作曲

文章目录 一、C/C 编译过程的四个阶段1. 编译之舞的台前幕后2. 舞台布景的准备——预处理3. 舞者的基本训练——编译4. 编舞师的细节调整——汇编5. 合奏的和谐统一——链接 二、舞姿的动作细——编译详细模式三、幕后——GCC 的各种选项(Overall Option&#xff09…

Unity UGUI 之 事件接口

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是事件接口&…

使用两台虚拟机分别部署前端和后端项目

使用两台虚拟机分别部署前端和后端项目 1 部署方案2 准备两台虚拟机,并配置网络环境3 部署后端项目3.1 打包服务3.2 上传jar包到服务器3.3 集成Systemd3.3.1 移动端服务集成Systemd3.3.2 后台管理系统集成Systemd 4 配置域名映射5 部署前端项目5.1 移动端5.1.1 打包…

享元模式(结构型)

目录 一、前言 二、享元模式 三、总结 一、前言 享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少大量细粒度对象的内存占用。它通过共享尽可能多的相同数据来节约内存空间。 享元模式由以下角色组成: Flyweight&…

推荐系统三十六式学习笔记:工程篇.常见架构25|Netflix个性化推荐架构

目录 架构的重要性经典架构1.数据流2.在线层3.离线层4.近线层 简化架构总结 你是否曾经觉得算法就是推荐系统的全部,即便不是全部,至少也是嫡长子,然而实际上,工程实现才是推荐系统的骨架。如果没有好的软件实现,算法不…

达梦数据库激活

SSH登录 192.168.0.148 账号:root 密码:xxx 1.上传 dm.key 文件到安装目录 /bin 目录下 cd /home/dmdba/dmdbms/bin rz -E dm.key2.修改 dm.key 文件权限 chown -R dmdba.dinstall dm.key3.打开数据库工具,新建查询,输入 cd /…

亚信安慧AntDB-M负载均衡

负载均衡是分布式系统中常用的技术,主要是将工作任务均衡分布到系统的各个资源点上,可以充分利用系统资源。 AntDB-M分布式内存数据库节点角色可以分为管理节点(MN)、计算节点(CN)和数据节点(DN)三种。管理节点收到客户端连接请求后,会经由负…

视觉巡线小车(STM32+OpenMV)——总结

文章目录 目录 文章目录 前言 一、效果展示 二、完整流程 1、STM32CubeMX配置 2、Keil编辑 3、硬件接线 4、参数调试 5、图像处理调试 三、总结 前言 基于前面的系列文章,已基本介绍完了基于STM32OpenMV的视觉巡线小车,本文将以小编自己的小车…

Visual Studio Code + vue快速安装配置Node.js+Vue+webpack+vscode

第一部分:Node.js 第一步:下载Node.js 方法1:链接 下载 | Node.js 中文网 (nodejs.cn) 方法2:百度网盘 链接:https://pan.baidu.com/s/1zIqu8H9rb_I1i-1OWD7swQ?pwdaurk 提取码:aurk --来自百度网盘…

【React 】开发环境搭建详细指南

文章目录 一、准备工作1. 安装 Node.js 和 npm2. 选择代码编辑器 二、创建 React 项目1. 使用 Create React App2. 手动配置 React 项目 三、集成开发工具1. ESLint 和 Prettier2. 使用 Git 进行版本控制 在现代前端开发中,React 是一个非常流行的框架,用…

【日常记录】【插件】Typed.js:用于创建打字效果的 JavaScript 库

文章目录 1. 引言2. 安装3. 基本使用参考链接 1. 引言 Typed.js是一个用于创建打字效果的 JavaScript 库。这个效果就是 chatgpt、百度的文心一言等其他的大模型,回复用户的问题的时候的效果 typed-js 官网typed 案例 2. 安装 CDN方式 这俩都可以,还有其…

在 Windows 上安装 PostgreSQL

官网下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloadsWindows平台 官网直接提供exe安装包,没有手动安装的压缩包 postgresql-14.4-1-windows-x64.exe几个重要的安装选项 安装界面会指定服务程序和库两个路径&#xf…

【JavaScript】深入理解 `let`、`var` 和 `const`

文章目录 一、var 的声明与特点二、let 的声明与特点三、const 的声明与特点四、let、var 和 const 的对比五、实战示例六、最佳实践 在 JavaScript 中,变量声明是编程的基础,而 let、var 和 const 是三种常用的变量声明方式。本文将详细介绍这三种变量声…

Centos7_Minimal安装Cannot find a valid baseurl for repo: base/7/x86_6

问题 运行yum报此问题 就是没网 解决方法 修改网络信息配置文件,打开配置文件,输入命令: vi /etc/sysconfig/network-scripts/ifcfg-网卡名字把ONBOOTno,改为ONBOOTyes 重启网卡 /etc/init.d/network restart 网路通了

pycharm+pytorch+gpu开发环境搭建

一、安装anacoda 1、下载Anaconda安装包 官网下载地址 https://www.anaconda.com/distribution/ 清华镜像 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载python3.8对应的版本Anaconda3-2021.04-Windows-x86_64.exe 下载完成…

PCB设计应该注意的问题

1.PCB布局与走线 论文 常见的PCB布局要点 1.放置滤波电容时遵循的的原则为: 放置的位置以靠近器件的引脚为最佳,电容的大小以从大到小以次靠近所要滤波的器件连接处,如一般使用的电容为10uF、1uF、0.1uF、0.01uF等,10倍的差额&a…

实验2-1-4 输出菱形图案

#include<stdio.h> int main(){printf(" A \n");printf("A A\n");printf(" A \n");}