LVS-Nat和Dr模式集群原理及部署

server/2024/10/18 16:53:54/

目录

一.lvs-nat模式集群原理及部署方法

1.实验环境

2.思路图

lvs%E9%85%8D%E7%BD%AE1%EF%BC%9A-toc" style="margin-left:120px;">3.lvs配置1:

lvs%E9%85%8D%E7%BD%AE2%EF%BC%9A-toc" style="margin-left:120px;">4.lvs配置2:

5.webserver1配置:

6.webserver2配置:

lvs%E9%85%8D%E7%BD%AE%EF%BC%9A-toc" style="margin-left:120px;">7.lvs配置:

lvs-dr%E6%A8%A1%E5%BC%8F%E5%8E%9F%E7%90%86%E9%9B%86%E7%BE%A4%E5%8F%8A%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95-toc" style="margin-left:80px;">二.lvs-dr模式原理集群及部署方法

1.实验环境

2.思路图

3.client: 简单配置ip网卡。

4.router配置:

lvs%E9%85%8D%E7%BD%AE%3A-toc" style="margin-left:120px;">5.lvs配置:

6.webserver1配置:

    6.1 限制响应级别:

    6.2 限制通告级别:

7.webserver2配置:

8.测试:


一.lvs-nat模式集群原理及部署方法

1.实验环境
主机名IP角色网卡
lvs.rhel9.org

172.25.254.100

eth1:192.168.0.100

调度器

eth0:nat

eth1:仅主机

webserver1.rhel9.org192.168.0.10; wg192.168.0.100web服务1eth0:仅主机
webserver2.rhel9.org192.168.0.20; wg192.168.0.100web服务2eth0:仅主机
2.思路图

lvs%E9%85%8D%E7%BD%AE1%EF%BC%9A">3.lvs配置1:

lvs的虚拟机设置里面添加网卡,选择仅主机连接。

bash vmest.sh eth0 172.25.254.100 lvs.rhel9.org   #vmset.sh为自己写的配置ip脚本
bash vmest.sh eth1 192.168.0.100 lvs.rhel9.org
vi /etc/NetworkManager/system-connections/eth0.nmconnection	[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]address1=172.25.254.100/24,172.25.254.2method=manualdns1=114.114.114.114;
nmcli connection reload
nmcli connection up eth1
vi /etc/NetworkManager/system-connections/eth1.nmconnection[connection]id=eth1type=ethernetinterface-name=eth1[ipv4]address1=192.168.0.100/24method=manual
nmcli connection reload
nmcli connection up eth1    #一定要看清楚自己的ip。
lvs%E9%85%8D%E7%BD%AE2%EF%BC%9A">4.lvs配置2:

内核功能路由需要开启,sysctl -a 命令会显示系统中所有的内核参数及其当前的值,输出结果为 net.ipv4.ip_forward = 1 ,这表示系统的 IP 转发功能已启用。如果结果为 net.ipv4.ip_forward = 0 ,则表示 IP 转发功能被禁用。

sysctl -a | grep ip_forward  #过滤
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
sysctl -p    #生效
5.webserver1配置:

虚拟机设置里面修改网络适配器选择仅主机模式,查看网卡,保证网卡跟lvs的dip一致,否则无法通信。起Apache网络服务,下载httpd,保持开机自启。

bash vmest.sh eth0 192.168.0.10 webserver1.rhel9.org
vi /etc/NetworkManager/system-connections/eth0.nmconnection	[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]address1=192.168.0.10/24,192.168.0.100method=manual     #dns随意,不影响操作结果
nmcli connection reload
nmcli connection up eth0
route -n    #查看网卡
yum install httpd -y   #下载httpd
echo webserver1 - 192.168.0.10 > /var/www/html/index.html   
systemctl enable --now httpd
6.webserver2配置:

虚拟机设置里面修改网络适配器选择仅主机模式,查看网卡,保证网卡跟lvs的dip一致,否则无法通信。起Apache网络服务,下载httpd,保持开机自启。

bash vmest.sh eth0 192.168.0.20 webserver2.rhel9.org
vi /etc/NetworkManager/system-connections/eth0.nmconnection	[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]address1=192.168.0.20/24,192.168.0.100method=manual   #dns随意,不影响操作结果
nmcli connection reload
nmcli connection up eth0
route -n    #查看网卡
yum install httpd -y   #下载httpd
echo webserver1 - 192.168.0.20 > /var/www/html/index.html   
systemctl enable --now httpd
lvs%E9%85%8D%E7%BD%AE%EF%BC%9A">7.lvs配置:

lvs里面测试ip。有对应的内容就对了,没有就检查一下自己的路径和ip。接着安装lvs软件包ipvsadm,配置相关策略,ipvsadm-save保存一下,最后xhell新开端口测试。

curl 192.168.0.10
curl 192.168.0.20
#####################################################
yum install ipvsadm -y    #安装ipvsadm
ipvsadm -A -t 172.25.254.100:80 -s rr     #添加调度策略
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
ipvsadm -Ln    #查看策略
ipvsadm-save > /etc/sysconfig/ipvsadm-config  #保存规则
systemctl enable --now ipvsadm.service   #开机启动
for i in {1..6};do curl 172.25.254.100;done   #测试

lvs-dr%E6%A8%A1%E5%BC%8F%E5%8E%9F%E7%90%86%E9%9B%86%E7%BE%A4%E5%8F%8A%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95">二.lvs-dr模式原理集群及部署方法

1.实验环境
主机名IPvip角色网卡
client.rhel9.org172.25.254.200; wg172.25.254.100测试主机eth0:nat
router.rhel9.orgeth0:172.25.254.100; eth1:192.168.0.100路由器eth0:nat eth1:仅主机
lvs.rhel9.org192.168.0.50; wg192.168.0.100192.168.0.200 /32调度器eth1:仅主机
webserver1.rhel9.org192.168.0.10; wg192.168.0.100192.168.0.200 /32web服务1eth0:仅主机
webserver2.rhel9.org192.168.0.20; wg192.168.0.100192.168.0.200 /32web服务2eth0:仅主机
2.思路图

3.client: 简单配置ip网卡。
bash vmest.sh eth0 172.25.254.200 client.rhel9.org
vim /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]method=manualaddress1=172.25.254.200/24,172.25.254.100
nmcli connection reload
nmcli connection up eth0
route -n
4.router配置:

打开虚拟机设置,添加网络适配器选择仅主机,修改ip。内核功能路由需要开启,sysctl -a 命令会显示系统中所有的内核参数及其当前的值,输出结果为 net.ipv4.ip_forward = 1 ,这表示系统的 IP 转发功能已启用。如果结果为 net.ipv4.ip_forward = 0 ,则表示 IP 转发功能被禁用。

bash vmest.sh eth0 172.25.254.100 router.rhel9.org
vim /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]method=manualaddress1=172.25.254.100/24
nmcli connection reload
nmcli connection up eth0
################################################################
bash vmest.sh eth1 192.168.0.100 router.rhel9.org
vim /etc/NetworkManager/system-connections/eth1.nmconnection[connection]id=eth1type=ethernetinterface-name=eth1[ipv4]method=manualaddress1=192.168.0.100/24
nmcli connection reload
nmcli connection up eth0
route -n
###############################################################
sysctl -a | grep ip_forward  #过滤
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf
sysctl -p    #刷新生效
lvs%E9%85%8D%E7%BD%AE%3A">5.lvs配置:

删掉原先的net模式的eth0的ip,修改仅主机的eth1的ip,保存退出,记得重启。顺手看看网关修改成功没。最后添加vip192.168.0.200/32回环接口。配置策略,保存退出。

nmcli connection delete eth0
bash vmest.sh eth0 192.168.0.20 lvs.rhel9.org
vim /etc/NetworkManager/system-connections/eth1.nmconnection[connection]id=eth1type=ethernetinterface-name=eth1[ipv4]method=manualaddress1=192.168.0.50/24,192.168.0.100
nmcli connection reload
nmcli connection up eth0
route -n
ip a a 192.168.0.200/32 dev lo #添加临时ip
#####################################################
ipvsadm -A -t 192.168.0.200:80 -s wrr     #添加调度策略
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 1
ipvsadm -Ln    #查看策略
ipvsadm-save > /etc/sysconfig/ipvsadm-config  #保存规则
systemctl enable --now ipvsadm.service   #开机启动
6.webserver1配置:

在原有的eth0.nmconnection进行修改网关,改成一致。最后添加vip192.168.0.200/32回环接口。

    6.1 限制响应级别:

arp_ignore 0:默认值,表示可使用本地任意接口上配置的任意地址进行响应 1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应。

    6.2 限制通告级别:

arp_announce 0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告 1:尽量避免将接口信息向非直接连接网络进行通告 2:必须避免将接口信息向非本网络进行通告。

vi /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]method=manualaddress1=192.168.0.10/24,192.168.0.100
route -n
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  #也可以在/etc/sysctl.conf写入net.ipv4.conf.all.arp_ignore = 1;在sysctl -p 刷新
ip a a 192.168.0.200/32 dev lo  #添加临时ip
7.webserver2配置:

在原有的eth0.nmconnection进行修改网关,改成一致。最后添加vip192.168.0.200/32回环接口。

vi /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]method=manualaddress1=192.168.0.20/24,192.168.0.100
route -n
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
ip a a 192.168.0.200/32 dev lo   #添加临时ip
8.测试:

在client主机进行ping200是否可以通,ping100是否可以通。最后测试全部。

for i in {1..10};do curl 192.168.0.200;done

http://www.ppmy.cn/server/98374.html

相关文章

Python的类

1、创建类 在Python中,可以使用class关键字来创建类。以下是一个简单的示例: class MyClass:def __init__(self, name):self.name namedef say_hello(self):print(f"Hello, {self.name}!")在上面的代码中,我们定义了一个名为MyC…

大数据-Big Data(一):概述与基础

目录 1. 大数据的定义与特征 1.1 什么是大数据? 1.2 大数据的4V特征 2. 大数据的基础技术 2.1 数据存储技术 2.2 数据处理与分析技术 3. 大数据生命周期 3.1 数据生成与采集 3.2 数据存储与管理 3.3 数据处理与清洗 3.4 数据分析与挖掘 3.5 数据可视化与…

北京青蓝智慧科技:160个项目通过“数据要素×”大赛湖北分赛初赛

近日,2024年“数据要素”大赛的湖北分赛在武汉热烈开幕。 八个赛道的参赛队伍齐聚一堂,共同争夺数据创新先锋的殊荣。 经过激烈的角逐,初赛评审专家团最终评选出了160个入围项目,每个赛道分别有20个项目脱颖而出,其中…

关于k8s的pvc存储卷

目录 1.PVC 和 PV 1.1 PV 1.2 PVC 1.3 StorageClass 1.4 PV和PVC的生命周期 2.实战演练 2.1 创建静态pv 2.2 创建动态pv 3.总结 1.PVC 和 PV 1.1 PV PV 全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,…

鸿蒙(API 12 Beta3版)【视频解码】 音视频编码

开发者可以调用本模块的Native API接口,完成视频解码,即将媒体数据解码成YUV文件或送显。 当前支持的解码能力如下: 视频硬解类型视频软解类型AVC(H.264)、HEVC(H.265)AVC(H.264) 视频解码软/硬件解码存在差异,基于MimeType创建…

Windows图形界面(GUI)-MFC-C/C++ - CSliderCtrl

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 CSliderCtrl 创建滑动条 设置滑动条属性 成员函数 消息处理 注意事项 示例代码 CSliderCtrl 创建滑动条 在对话框编辑器中,从工具箱中拖拽一个Slider Control到对话框…

Unity入门5——材质

创建材质 点击Assets → Create → Material,得到一个默认材质球的副本。 使用材质 直接把材质球拖拽到物体上,或设置mesh renderer组件下的Materials 数组中第一个元素

学懂C++ (十五):高级教程——搞懂new/delete和malloc/free的区别

在C中,new/delete和malloc/free都是用于动态内存分配和释放的操作,但它们有显著的区别。这些区别主要体现在内存分配方式、内存初始化、类型安全以及对象的构造和析构等方面。 new 和 delete new 运算符 类型安全:new运算符会根据指定类型…