热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVSNAT模式集群搭建实验

LVS-NAT模式集群搭建实验前言Linux虚拟服务器(LinuxVirtualServer,LVS)是一个虚拟的服务器集群系统&#x

LVS - NAT 模式集群搭建实验


前言

Linux虚拟服务器(Linux Virtual Server,LVS)是一个虚拟的服务器集群系统,用于实现负载平衡。本文重点在于LVS - NAT 模式的搭建过程,服务器集群化原理以及分类在本人的集群化知识整理一文中简单梳理了集群化的原理和知识点,如有遗漏或错误的地方,欢迎大家指正。


基本理论说明


Virtual server via NAT(VS-NAT)

优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。

缺点:扩展性有限。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生。假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的处理器将使得这个延迟时间变短),负载均衡器的最大容许能力为8.93M/s,假定每台物理服务器的平台容许能力为400K/s来计算,负责均衡器能为22台物理服务器计算。

解决办法:即使是是负载均衡器成为整个系统的瓶颈,如果是这样也有两种方法来解决它。一种是混合处理,另一种是采用Virtual Server via IP tunneling或Virtual Server via direct routing。如果采用混合处理的方法,将需要许多同属单一的RR DNS域。你采用Virtual Server via IP tunneling或Virtual Server via direct routing以获得更好的可扩展性。也可以嵌套使用负载均衡器,在最前端的是VS-Tunneling或VS-Drouting的负载均衡器,然后后面采用VS-NAT的负载均衡器。


实验步骤

实验目标:掌握搭建LVS集群的nat模式

实验准备:4台C6标准虚拟机(selinux关闭)

实验规划:


服务器IP
负载调度服务器eth0:192.168.10.10 eth1:10.0.0.10
真实服务器1eth0:192.168.10.11
真实服务器2eth0:192.168.10.12
访问机eth0:10.0.0.140

ps:标准虚拟机安装见网络阶段Centos6安装指南

实验拓扑图:


一、配置负载调度服务器

配置外网IP

vim /etc/sysconfig/network-scripts/ifcfg-eth1

保存退出,重启网卡,尝试ping通访问机。

ifup eth1
ping 10.0.0.140

开启内核转发

echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sysctl -p

加载模块

modprobe ip_vs
cat /proc/net/ip_vs

LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。

yum -y install ipvsadm

添加调度规则

ipvsadm -A -t 10.0.0.10:80 -s rr
ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:80 -m
ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.12:80 -m#ipvsadm命令选项
-A:添加一条新的虚拟服务
-t: TCP协议的集群
-a:在一个虚拟服务中添加一个新的真实服务器
-r:真实的服务器
-m:指定LVS的工作模式为NAT模式
-s:使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是:wlc

保存调度规则,设置lvs开机自启动。

service ipvsadm save
chkconfig ipvsadm on
ipvsadm -L

成功写入调度规则,开始编辑防火墙规则。

service iptables start
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 10.0.0.140
iptables -t nat -L
service iptables save


二、配置真实服务器

配置网关,重启网卡。

echo "GATEWAY=192.168.10.10" >> /etc/sysconfig/network-scripts/ifcfg-eth0
ifdown eth0 && ifup eth0
route -n

yum安装apache,并编写网页文件进行访问测试。(突出访问区别)

yum -y install httpd
echo "123" >> /var/www/html/index.html
service httpd start
chkconfig httpd on
curl 192.168.10.11

第二台真实服务器设置同理,注意网页文件内容要不一样,方便区分。


三、访问测试

访问机访问测试

curl 10.0.0.10
curl 10.0.0.10
curl 10.0.0.10

成功访问,编写无限循环语句,在负载调度器去查看详细信息。

while 2>1; do curl 10.0.0.10; done
ipvsadm -Ln --stats

连接被平均分配至两个真实服务器,LVS使用RR算法实现了轮循。


四、端口映射

LVS-NAT模式支持端口映射,可修改请求报文的目标PORT。

将任意一台真实服务器的监听端口修改。

vim /etc/httpd/conf/httpd.conf
# 修改136行
Listen 4423

重启服务,去访问机查看。

service httpd restart

已经无法正常访问,负载调度器删除原有规则,添加新的调度规则。

ipvsadm -d -t 10.0.0.10:80 -r 192.168.10.11:80
ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:4423 -m
ipvsadm -Ln#ipvsadm命令选项
-d:删除一条虚拟服务器记录中的某条真实服务器记录。

返回访问端查看

访问已恢复正常。


五、使用WRR算法进行加权操作

删除负载集群,重新添加调度规则。

ipvsadm -D -t 10.0.0.10:80
ipvsadm -A -t 10.0.0.10:80 -s wrr
ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:4423 -m -w2
ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.12:80 -m
service ipvsadm save
ipvsadm -Ln#ipvsadm命令选项
-D:删除虚拟服务
-w:配置真实服务器的权重

返回真实服务器查看

权重配置成功,实验结束。

本文于2020年11月13日由Vonmerlot整理而成。


推荐阅读
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
author-avatar
奔跑的蜗牛彡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有