详细LVS实验配置

news2024/9/24 17:20:56

一、LVS的NAT模式

1、实验环境

主机名ipVIP角色
lvs192.168.0.100172.25.254.100调度器
webserver1192.168.0.10,网关192.168.0.100null
真实服务器( RS
webserver2192.168.0.20,网关192.168.0.100null
真实服务器( RS

2、配置命令

 1)webserver1、2

  ip配置

  [root@webserver1 boot]#vmset.sh eth0 192.168.0.100 webserver1.hyl.org

  [root@webserver1 boot]# vim /etc/NetworkManager/system-connections/eth0.nmconnection

[root@webserver1 boot]# nmcli connection reload

[root@webserver1 boot]# nmcli connection up eth0

[root@webserver1 boot]# route -n

Kernel IP routing table

Destination    Gateway          Genmask       Flags Metric Ref      Use Iface

0.0.0.0      192.168.0.100      0.0.0.0             UG 100 0 0                 eth0

192.168.0.0    0.0.0.0        255.255.255.0      U 100 0 0                   eth0

配置httpd服务

[root@webserver1 boot]# yum install httpd -y

[root@webserver1 boot]# echo webserver - 192.168.0.10 > /var/www/html/index.html

[root@webserver boot]# systemctl enable  --now httpd

[root@webserver2 boot]#  echo webserver2 - 192.168.0.20 > /var/www/html/index.html

[root@webserver2 boot]# systemctl enable  --now httpd

 2)lvs调度器

配置ip

[root@lvs boot]# vmset.sh eth0 172.25.254.100 lvs.hyl.org

[root@lvs boot]# vmset.sh eth1 192.168.0.100  lvs.hyl.org

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)

[root@lvs boot]# vim /etc/NetworkManager/system-connections/eth1.nmconnection

[root@lvs boot]# nmcli connection reload

[root@lvs boot]# nmcli connection up eth1

启用内核路由功能
[root@lvs boot]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
[root@lvs boot]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs boot]# sysctl -p
net.ipv4.ip_forward = 1
关闭火墙

[root@lvs boot]# systemctl stop firewalld.service

测试httpd服务

[root@lvs boot]# curl 192.168.0.10
webserver - 192.168.0.10

[root@lvs boot]# curl 192.168.0.20
webserver2 - 192.168.0.20

安装ipvsadm

[root@lvs boot]# yum install ipvsadm -y

添加调度策略

[root@lvs boot]# ipvsadm -A -t 172.25.254.100:80 -s rr

[root@lvs boot]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m

[root@lvs boot]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m

[root@lvs boot]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

   -> RemoteAddress:Port     Forward Weight ActiveConn InActConn

TCP 172.25.254.100:80 rr

   -> 192.168.0.10:80   Masq   1   0   0

   -> 192.168.0.20:80

保存规则
[root@lvs boot]# ipvsadm-save -n  > /etc/sysconfig/ipvsadm
 
[root@lvs boot]# cat /etc/sysconfig/ipvsadm
 
-A -t 172.25.254.100:80 -s rr
 
-a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
-a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
[root@lvs boot]# ipvsadm -C
 
[root@lvs boot]# ipvsadm-restore < /etc/sysconfig/ipvsadm
 
[root@lvs boot]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.254.100:80 -s rr
 
-a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
-a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
删除所有规则
[root@lvs boot]# ipvsadm -C
[root@lvs boot]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
重新加载规则
[root@lvs boot]# ipvsadm -R < /etc/sysconfig/ipvsadm-config
[root@lvs boot]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.254.100:80 rr
-> 192.168.0.101:80 Masq 1 0 0
-> 192.168.0.102:80 Masq 1 0 0

3、测试

[root@lvs boot]# for i in {1..10}; do curl 172.25.254.100; done

webserver2 - 192.168.0.20

webserver - 192.168.0.10

webserver2 - 192.168.0.20

webserver - 192.168.0.10

webserver2 - 192.168.0.20

webserver - 192.168.0.10

webserver2 - 192.168.0.20

webserver - 192.168.0.10

webserver2 - 192.168.0.20

webserver - 192.168.0.10

二、LVS的DR模式

1、实验环境

主机名ipVIP角色
clientnat:172.25.254.200  网关:172.25.254.100null客户端
router

nat:172.25.254.100     仅主机:192.168.0.100

null路由器
lvs

仅主机:192.168.0.50   网关:192.168.0.100

lo:192.168.0.200

调度器

webserver1

仅主机:192.168.0.10  网关:192.168.0.100

lo:192.168.0.200RS1
webserver2

仅主机:192.168.0.20  网关:192.168.0.100

lo:192.168.0.200RS2

2、实验配置

1)webserver1、2

ip配置

server1、2一样

[root@webserver2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.20/24,192.168.0.100
method=manual

[root@webserver2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.100   0.0.0.0         UG    100    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

rs主机中使vip不对外响应

[root@webserver boot]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver boot]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@webserver boot]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  
[root@webserver boot]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@webserver boot]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@webserver boot]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@webserver boot]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@webserver boot]#  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  

查看

[root@webserver boot]#  sysctl -a | grep arp_ignore
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.lo.arp_ignore = 1

[root@webserver2 boot]# sysctl -a | grep arp_ignore
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.lo.arp_ignore = 1

在server设定vip

[root@webserver boot]#  ip a a 192.168.0.200/32 dev lo
[root@webserver2 boot]# ip a a 192.168.0.200/32 dev lo

2)client

ip配置

[root@client ~]# vmset.sh eth0 172.25.254.200 client.hyl.org

3)router

ip配置

[root@router ~]# vmset.sh eth0 172.25.254.100 router.hyl.org

[root@router ~]# vmset.sh eth1 192.168.0.100 router.hyl.org

[root@router ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnect ion
[root@router ~]# nmcli connection reload
[root@router ~]# nmcli  connection  up reth1
####eth0为nat网卡#######

[root@router ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.254.100/24,172.25.254.2
method=manual
dns=114.114.114.114;

#####eth1为仅主机网卡#######
[root@router ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnec         tion
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.100/24
method=manual

启用内核路由功能

[root@router ~]# sysctl -a | grep ip_forward

net.ipv4.ip_forward = 0

net.ipv4.ip_forward_update_priority = 1

net.ipv4.ip_forward_use_pmtu = 0

[root@router ~]# vim /etc/sysctl.conf

[root@router ~]# sysctl -p

net.ipv4.ip_forward = 1

4)lvs

ip配置
[root@lvs boot]# vmset.sh eth1 192.168.0.50 lvs.hyl.org
[root@lvs boot]#vim /etc/NetworkManager/system-connections/eth1.nmconnect ion
[root@lvs boot]# nmcli connection reload
[root@lvs boot]#nmcli  connection  up reth1

在Ivs主机中添加vip

[root@lvs ~]# nmcli connection reload

[root@lvs ~]# nmcli connection up lo
配置策略

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@lvs ~]# ipvsadm -A -t 192.168.0.200:80 -s wrr

[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1

[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 wrr
  -> 192.168.0.10:80              Route   1      0          0
  -> 192.168.0.20:80              Route   2      0          0

3、实验测试

[root@client ~]# for i in {1..10}
> do
> curl 192.168.0.200
> done

webserver2 - 192.168.0.20
webserver - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20

三、LVS的火墙标记

1、轮询规则遇到错误

[root@lvs ~]# ipvsadm -E -t 192.168.0.200:80 -s rr
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 rr
  -> 192.168.0.10:80              Route   1      0          0
  -> 192.168.0.20:80              Route   2      0          1

######RS安装mod ssl模块 让rs支持https#########

[root@webserver ~]# yum install mod_ssl -y

[root@webserver ~]# systemctl restart httpd

######查看httpd端口
[root@webserver ~]# netstat -ntulp | grep httpd
tcp6       0      0 :::443                  :::*               LISTEN      34138/httpd
tcp6       0      0 :::80                   :::*               LISTEN      34138/httpd

当访问vip时两次调度都到了  测试错误
[root@client ~]# curl 192.168.0.200;curl -k https://192.168.0.200
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20

2、LVS主机中为端口做标记

#####在vs调度器中设定端口标签,人为80和443是一个整体
[root@lvs ~]# iptables -t mangle  -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK  --set-mark 66
[root@lvs ~]# iptables -t mangle -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
MARK       6    --  0.0.0.0/0            192.168.0.200        multiport dports 80,443 MARK set 0x42
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

3、lvs调度配置

设定调度规则

[root@lvs ~]# ipvsadm -C
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@lvs ~]# ipvsadm -A -f 66 -s rr
[root@lvs ~]# ipvsadm -a -f 66 -r 192.168.0.10 -g
[root@lvs ~]# ipvsadm -a -f 66 -r 192.168.0.20 -g

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  66 rr
  -> 192.168.0.10:0               Route   1      0          0
  -> 192.168.0.20:0               Route   1      0          0

4、测试

[root@client ~]# curl 192.168.0.200;curl -k https://192.168.0.200
webserver2 - 192.168.0.20
webserver - 192.168.0.10

5、lvs持久链接

在lvs调度器中设定

[root@lvs ~]# ipvsadm -E -f 66 -s rr -p

[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  66 rr persistent 360
  -> 192.168.0.10:0               Route   1      0          0
  -> 192.168.0.20:0               Route   1      0          0

测试

##############################
[root@client ~]# for i in {1..10}
> do
> curl 192.168.0.200
> done

webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20

更改时间

[root@lvs ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port  Scheduler Flags

  -> RemoteAddress:Port  Forward Weight ActiveConn InActConn

FWM 66 rr persistent 1

  -> 192.168.0.10:0 Route 1 0 2

  -> 192.168.0.20:0 Route 1 0 0

[root@lvs ~]# ipvsadm -E -f 66 -s rr

[root@lvs ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

FWM 66 rr

  -> 192.168.0.10:0 Route 1 0 2

  -> 192.168.0.20:0 Route 1 0 0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言初阶】C语言操作符全攻略:提升编程效率的关键步骤

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言数组 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀操作符 &#x1f4d2;1. 算术操作…

从0开始搭建vue + flask 旅游景点数据分析系统( 八):美化前端可视化图形

这一期来美化我们仅有的三个可视化图形&#xff08;可怜&#xff09;&#xff0c;毕竟&#xff0c;帅是一辈子的事。 1 折线图改面积图&#xff08;渐变色&#xff09; 需求&#xff1a;折线图改为蓝色的面积图&#xff0c;并且有一点的渐变色。 这个非常简单&#xff0c;只…

提升效率神器!2024年Windows平台录屏工具

现在生活中经常会用到录屏工具&#xff0c;比如会议记录、比如课程教学、比如游戏瞬间等等。如何选择一款适合WIN10录屏的工具就值得我们研究一下。 1.福昕REC大师 链接直达&#xff1a;https://www.foxitsoftware.cn/REC/ 这款软件的界面设计极其简约直观&#xff0c;一眼…

代码随想录第二十三天|动态规划(7)

目录 LeetCode 188. 买卖股票的最佳时机 IV LeetCode 309. 买卖股票的最佳时机含冷冻期 LeetCode 714. 买卖股票的最佳时机含手续费。 总结 LeetCode 188. 买卖股票的最佳时机 IV 题目链接&#xff1a;LeetCode 188. 买卖股票的最佳时机 IV 思想&#xff1a;本题跟之前的…

Kevin De Rug VoxEdit 竞赛来了!

让 Kevin de Rug 再现&#xff0c;去世界的某个地方冒险。 让你的创造力更上一层楼。以 Pixelmon 的 Kevin de Rug 为主题&#xff0c;在这场精彩的 VoxEdit 竞赛中释放你惊人的体素技能。 主题&#xff1a;让 Kevin de Rug 再现&#xff0c;去世界的某个地方冒险。 Kevin 被…

Linux系统驱动(十一)GPIO子系统

文章目录 一、GPIO子系统&#xff08;一&#xff09;框架结构&#xff08;二&#xff09;GPIO子系统的API&#xff08;三&#xff09;gpio子系统控制LED灯的设备树1. 画出硬件连接图2. 找出控制器的设备树3. 参考内核帮助文档 二、使用GPIO子系统实现流水灯1. 设备树文件&#…

Win11解压文件Cpu占用率过高?解决方法在此!

在Win11电脑操作中&#xff0c;用户遇到解压文件时CPU占有率过高的问题&#xff0c;不知道要如何操作才能解决该问题&#xff1f;接下来系统之家小编给大家分享几种不同的解决方法&#xff0c;帮助大家轻松解决问题&#xff0c;降低Win11电脑CPU占有率&#xff0c;提升Win11电脑…

记一次框架升级

背景 随着公司业务的不断扩展&#xff0c;新技术的更新换代&#xff0c;企业内部免不了会对软硬件进行升级&#xff0c;淘汰老旧的组件和实现方案&#xff0c;更新一波技术栈。这不&#xff0c;最近我们公司就面临这么一个难题&#xff1a;旧版本的组件上发现漏洞&#xff0c;为…

Fiddler代理后浏览器无法上网啥情况

当使用Fiddler作为代理服务器后&#xff0c;浏览器无法上网的情况通常是由以下几个原因造成的&#xff1a; 代理服务器配置不正确&#xff1a; 确保在浏览器或其他客户端中正确配置了Fiddler作为代理服务器。代理服务器地址应为运行Fiddler的计算机的局域网IP地址&#xff0c;端…

【Canvas与艺术】黄色立体感放射光芒五角星

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>黄色立体感放射光芒五角星</title><style type"text/c…

黄金走势分析及经济前景展望

黄金市场动态 近期&#xff0c;全球经济不确定性加剧&#xff0c;使得黄金市场备受关注。美国国债收益率的上涨进一步支撑了美元&#xff0c;推动黄金价格进入高位震荡阶段。尽管黄金在短期内受到波动的影响&#xff0c;但长期避险资产的吸引力仍不容忽视。 经济数据与黄金走势…

Spring---AOP(面向切面编程)

AOP(Aspect-Oriented Programming: 面向切面编程)&#xff1a;将那些与业务无关&#xff0c;却为业务模块所共调用的逻辑&#xff08;例如事务处理、日志管理、权限控制等&#xff09;封装抽取成一个可重用的模块&#xff0c;这个模块被命名为“切面”&#xff08;Aspect&#…

Promethues Metrics

Metrics Metrics可分为三部分&#xff1a; HELP 描述metric作用TYPE metric类别 TYEP Counter 某个事件发生的次数数字只能增长 Total reuqests Total ExceptionsGauge 描述当前值可以上升或下降 CurrentCPU Utilization Available System Memory Number of concurren…

萌新的Java入门日记19

Vue真恶心&#xff01;&#xff01;&#xff01;呜呜呜 5.配置代理 为了避免因后端服务器迁移造成的麻烦&#xff0c;在 vite.config.js 文件中配置如下代码&#xff1a; export default defineConfig({plugins: [vue()],server:{// 配置vite冷启动项目自动使用浏览器访问首页…

【中项】系统集成项目管理工程师-第10章 项目整合管理-10.6实施整体变更控制

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

4个免费好用的免扣素材神器!png素材根本用不完!

你是否曾为找不到合适的PPT素材而头疼&#xff1f;模糊的图片、带水印的模板&#xff0c;还有那些让人抓狂的素材搜索难题。别急&#xff0c;今天就来给大家安利四款我私藏的PPT素材神器&#xff0c;让你的PPT设计从此变得简单又高效&#xff01; 一、千鹿设计助手 — AI免抠图…

算法力扣刷题记录 七十【70. 爬楼梯及算法性能分析:时间复杂度和空间复杂度】

前言 动态规划章节第二篇。记录 七十【70. 爬楼梯】 一、题目阅读 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xf…

SQL注入sqli-labs-master关卡三

第三关如下&#xff1a; 查看该关卡的代码发现其与关卡一和关卡二的不同之处在于id($id)这里。 那么我们输入?id1或?id2)--都能用来判断是字符型还是数字型注入。 接着输入?id1) order by 3--检查它的列数。检查到4报错&#xff0c;说明只有三列。 输入?id-1) union select…

02_快速启动 Demo 创建 Electron 项目、electron-forge 搭建一个 electron 项目、手动创建electron项目

快速启动 Demo 创建 Electron 项目 一、克隆一个仓库、快速启动一个项目二、electron-forge 搭建一个 electron 项目三、手动搭建一个 electron 项目四、开发工具中配置 Eslint 一、克隆一个仓库、快速启动一个项目 要使用 git 的话首先电脑上面需要安装 git //克隆示例项目的…

Cpp中的this指针--复习记录

1.什么是this指针? 每个类都有一个this指针&#xff0c;我们的非静态成员函数可以通过这个this指针来操作对象的成员属性。this指针存储的就是类的实例的地址&#xff0c;this指针时时刻刻指向的都是这个实例对象本身。 由下图可知: 我在主函数中栈上创建了一个类的实例(由操…