0
点赞
收藏
分享

微信扫一扫

arcgis(shp)注记转CAD(dwg)文字

扶摇_hyber 2024-08-08 阅读 25

目录

一、什么是LVS

二、LVS的核心思想

三、 LVS的优势

四、LVS的调度算法

 4.1. LVS的调度算法类型

4.2. LVS静态调度算法

4.3. LVS动态调度算法

 4.4.在4.15版本内核以后新增调度算法

 五、LVS软件相关信息

六、ipvsadm命令

七、 LVS的NAT模式实验详解

7.1实验环境

7.2实验要求

7.3实验步骤

1.环境搭建

2. Lvs中打开内核路由功能

3.webserver1和webserver2配置

4.webserver1和webserver2下载httpd模块并写页面内容

5. LVS中测试,保证可以正常访问后端两台真实服务器

 6. LVS中安装软件

7. LVS添加服务和算法规则(-s rr表示调度算法是:轮询算法)

8.客户机访问测试

7.4 nat模式数据逻辑

八、LVS的DR模式实验详解

8.1实验环境

8.2实验要求

8.3实验步骤

1.环境搭建

2.路由器开启内核路由功能

3.配置rs主机中使vip不对外响应(webserver1和webserver2)

4.在LVS主机中和rs主机中添加VIP

5.客户机测试

6.Wireshark抓包查看MAC地址变化

8.4 DR模式数据逻辑

九、LVS-火墙mark标记解决调度问题

9.1实验环境:

9.2实验要求:

9.3实验步骤

1.RS安装mod_ssl模块,让RS支持https

2.查看端口,确保端口都存在

3.LVS主机中为端口做标记

 4.客户端访问测试

十、LVS的TUN模式(不常用了解一下)

10.1转发方式

10.2 TUN模式数据传输过程

10.3 TUN详解

十一、LVS的fullnet模式(了解)

11.1 fullnet模式简介

11.2 fullnet模式详解


一、什么是LVS

二、LVS的核心思想

三、 LVS的优势

四、LVS的调度算法

 4.1. LVS的调度算法类型

4.2. LVS静态调度算法

4.3. LVS动态调度算法

 4.4.在4.15版本内核以后新增调度算法

 五、LVS软件相关信息

  • 程序包:ipvsadm Unit File: ipvsadm.service
  • 主程序:/usr/sbin/ipvsadm
  • 规则保存工具:/usr/sbin/ipvsadm-save
  • 规则重载工具:/usr/sbin/ipvsadm-restore
  • 配置文件:/etc/sysconfig/ipvsadm-config ipvs
  • 调度规则文件:/etc/sysconfig/ipvsadm

六、ipvsadm命令

核心功能:

  • 集群服务管理:增、删、改
  • 集群服务的RS管理:增、删、改
  • 查看

部分命令展示:

命令描述示例
ipvsadm -A添加一个新的虚拟服务ipvsadm -A -t 192.168.1.100:80 -s rr
ipvsadm -E修改已存在的虚拟服务ipvsadm -E -t 192.168.1.100:80 -s wrr
ipvsadm -D删除虚拟服务ipvsadm -D -t 192.168.1.100:80
ipvsadm -a添加一个真实服务器到虚拟服务中ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.200 -m
ipvsadm -e修改真实服务器的参数ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.200 -g -w 10
ipvsadm -d从虚拟服务中删除真实服务器ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.200
ipvsadm -L查看 IPVS 表ipvsadm -L -n
ipvsadm -C清空 IPVS 表ipvsadm -C
ipvsadm -S保存 IPVS 表到指定文件ipvsadm -S > /etc/sysconfig/ipvsadm
ipvsadm -R从指定文件恢复 IPVS 表ipvsadm -R < /etc/sysconfig/ipvsadm

如果想要了解更多的ipvsadm命令可以访问下面链接学习:
https://www.cnblogs.com/rushiyi/p/12425905.htmlicon-default.png?t=N7T8https://www.cnblogs.com/rushiyi/p/12425905.html

七、 LVS的NAT模式实验详解

7.1实验环境

1.使用母盘主机克隆四台红帽9机子。

2.两台作为真实服务器,一台作为LVS负载调度器,一台作为客户端。

3.LVS负载调度器两张网卡,一张NAT,一张仅主机;NAT作为VIP连接客户端,仅主机作为DIP连接两台服务器,作为两台服务器的网关;NAT网卡在:172.25.254.0/24网段,IP地址是172.25.254.100/24;仅主机在192.168.0.0/24网段,IP地址是192.168.0.100。

4.两台真实服务器一张网卡,模式为仅主机,网段是192.168.0.0/24;webserver1的IP地址是192.168.0.10/24;webserver2的IP地址是192.168.0.20/24。

5.客户端一张网卡,模式为NAT模式,网段是172.25.254.0/24,IP地址是:172.25.254.200。

7.2实验要求

要求从客户端访问LVS能做到负载均衡

第一次如果是webserver1响应的,第二次就是webserver2响应。

7.3实验步骤

1.环境搭建

LVS主机两张网卡,一张NAT模式,一张仅主机模式。NAT作为VIP连接客户端,仅主机作为DIP连接两台服务器,作为两台服务器的网关。

NAT网卡在:172.25.254.0/24网段;仅主机在192.168.0.0/24网段,对应的IP配置如下图:

NAT:

仅主机:

2. Lvs中打开内核路由功能

#查看打开内核路由功能的命令
[root@LVS ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0    # 0表示关闭,1表示打开
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

#修改配置文件
[root@LVS ~]# vim /etc/sysctl.conf 
[root@LVS ~]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
[root@LVS ~]# sysctl -p
net.ipv4.ip_forward = 1

3.webserver1webserver2配置

webserver1:

#配置IP地址和网关,ipv4.method manual:表示为手动模式 connection.autoconnect yes:表示为自动连接
[root@webserver1 ~]# nmcli connection modify ens160 ipv4.addresses 192.168.0.10/24 ipv4.gateway 192.168.0.100 ipv4.method manual connection.autoconnect yes

#重启网卡
[root@webserver1 ~]#nmcli connection up ens160

webserver2:

#配置IP地址和网关,ipv4.method manual:表示为手动模式 connection.autoconnect yes:表示为自动连接
[root@webserver2 ~]# nmcli connection modify ens160 ipv4.addresses 192.168.0.20/24 ipv4.gateway 192.168.0.100 ipv4.method manual connection.autoconnect yes

#重启网卡
[root@webserver2 ~]#nmcli connection up ens160

4.webserver1webserver2下载httpd模块并写页面内容

webserver1:

[root@webserver1 ~]# yum install httpd -y
[root@webserver1 ~]# echo webserver1 192.168.0.10 > /var/www/html/index.html 
[root@webserver1 ~]# cat /var/www/html/index.html 
webserver1 192.168.0.10

webserver2:

[root@webserver2 ~]# yum install httpd -y
[root@webserver2 ~]# echo webserver1 192.168.0.20 > /var/www/html/index.html 
[root@webserver2 ~]# cat /var/www/html/index.html 
webserver1 192.168.0.20

注意:

在企业中两个服务器的页面应该是一致的,但是这里是实验环境,我们设不一致,方面我们观察实验结果。

5. LVS中测试,保证可以正常访问后端两台真实服务器

[root@LVS ~]# curl 192.168.0.10
webserver1 192.168.0.10
[root@LVS ~]# curl 192.168.0.20
webserver2 192.168.0.20

 6. LVS中安装软件

7. LVS添加服务和算法规则(-s rr表示调度算法是:轮询算法)

8.客户机访问测试

[root@localhost ~]# curl 172.25.254.100
webserver1 192.168.0.10
[root@localhost ~]# curl 172.25.254.100
webserver2 192.168.0.20
[root@localhost ~]# curl 172.25.254.100
webserver1 192.168.0.10
[root@localhost ~]# curl 172.25.254.100
webserver2 192.168.0.20

7.4 nat模式数据逻辑

1.客户端发送访问请求,请求数据包中含有请求来源(cip),访问目标地址(VIP)访问目标端口 (9000port)

2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口

3.RS1相应请求,发送响应数据包,包中的相应保温为数据来源(RIP1)响应目标(CIP)相应端口 (9000port)

4.VS服务器接收到响应数据包,改变包中的数据来源(RIP1-->VIP),响应目标端口(9000-->80)

5.VS服务器把修改过报文的响应数据包回传给客户端

八、LVS的DR模式实验详解

8.1实验环境

1.母盘克隆五台红帽9机子

2.两台作为真实服务器,一台作为LVS负载调度器,一台作为路由器,一台作为客户端

3.webserver1和webserver2环境配置和上个实验一样。

4.LVS只需一张仅主机的网卡,IP地址为:192..168.0.50;禁用上个实验NAT那张网卡。

5.路由器两张网卡,一张NAT模式,IP地址为:172.25.254.100,作为客户端的网关;一张仅主机连接内网,IP地址为:192.168.0.100,作为内网的网关。

6.客户端IP地址为:172.25.254.200,网关为:172.25.254.100.

8.2实验要求

要求从客户端访问LVS能做到负载均衡,第一次如果是webserver1响应的,第二次就是webserver2响应。且服务器返回数据的时候是直接通过VIP返回给客户端,不经过交换机这些。

8.3实验步骤

1.环境搭建

IP配置与上一个实验操作相同,这里不细说。参考上一个实验配置IP的方式,将实验环境搭建完成。LVS记得禁用网卡和内核路由功能。

LVS中禁用网卡的命令格式为:

nmcli device disconnect 网卡名

2.路由器开启内核路由功能

与上一个实验相同,在配置文件中加入命令即可。

3.配置rs主机中使vip不对外响应(webserver1和webserver2)

webserver1:

webserver2:

4.在LVS主机中和rs主机中添加VIP

在DR模式中,RS接收到访问请求后不需要回传给LVS调度器,直接把回传数据发送给client,所以RS和LVS上都要有vip

#配置环回网卡IP
[root@LVS ~]# ip a a 192.168.0.200/32 dev lo

rs主机配置相同,都是上面这一条命令。

注意:网段是/32,一定不要写错了,VIP要独立的应该网段。

5.客户机测试

[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver1 192.168.0.10
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver1 192.168.0.10

6.Wireshark抓包查看MAC地址变化

将自己所有主机的MAC地址记录一下,然后用抓包工具抓包查看一下,注意,抓的是内网的包。

8.4 DR模式数据逻辑

这也是前面要抓包的原因,因为DR模式在传递的时候IP层是不变的,IP地址都一样,改变的第二层MAC地址,所有只有通过抓包查看MAC地址的变化来观察原理。 

1.客户端发送数据帧给vs调度主机帧中内容为客户端IP+客户端的MAC+VIP+VIP的MAC

2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC,此时帧中的数据为客户端IP+客户端 的MAC+VIP+RS1的MAC

3.RS1得到2中的数据包做出响应回传数据包,数据包中的内容为VIP+RS1的MAC+客户端IP+客户端IP的MAC

九、LVS-火墙mark标记解决调度问题

9.1实验环境:

1.在上一个实验的环境下继续完成实验。

9.2实验要求:

问题:以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题 当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上

1.如果不做火墙mark标志,当客户端通过http的80端口,和https的443端口访问时,两次是后端同一台服务器发来的,如下所示:

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

2.这是我们不想看见的,我们LVS执行的算法是rr轮询,要做到负载均衡,第一次http如果是10主机发来的回复,那么第二次https的应该是20主机发来的。这就是本次实验要实现的要求。

9.3实验步骤

1.RS安装mod_ssl模块,让RS支持https

webserver1:

[root@webserver1 ~]# yum install mod_ssl -y
#一定要重启,不让不行
[root@webserver1 ~]# systemctl restart httpd

webserver2:

[root@webserver2 ~]# yum install mod_ssl -y
[root@webserver1 ~]# systemctl restart httpd

2.查看端口,确保端口都存在

[root@webserver1 ~]# netstat -lnupt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3855/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      3855/httpd          
[root@webserver2 ~]# netstat -lnupt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3855/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      3855/httpd          

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

#为端口做标记 -A:添加;-D:删除
[root@LVS ~]#  -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 66

#基于标记定义集群服务
[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.客户端访问测试

#-k:忽略https证书,不然访问不了
[root@client ~]# curl 192.168.0.200; curl -k https://192.168.0.200 
webserver1 192.168.0.10
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200; curl -k https://192.168.0.200
webserver1 192.168.0.10
webserver2 192.168.0.20

十、LVS的TUN模式(不常用了解一下)

10.1转发方式

不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部 (源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)

10.2 TUN模式数据传输过程

1.客户端发送请求数据包,包内有源IP+vip+dport

2.到达vs调度器后对客户端发送过来的数据包重新封装添加IP报文头,新添加的IP报文头中包含TUNSRCIP(DIP)+TUNDESTIP(RSIP1)并发送到RS1

3.RS收到VS调度器发送过来的数据包做出响应,生成的响应报文中包含SRCIP(VIP)+DSTIP(CIP)+port,响应数据包通过网络直接回传给client

10.3 TUN详解

如果想要了解更多可以访问一下链接:

https://www.cnblogs.com/luwei0915/articles/10488825.htmlicon-default.png?t=N7T8https://www.cnblogs.com/luwei0915/articles/10488825.html

十一、LVS的fullnet模式(了解)

11.1 fullnet模式简介

fullnat:通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP --> DIP

VIP --> RIP

1.VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP

2.RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client

3.请求和响应报文都经由Director

4.支持端口映射

11.2 fullnet模式详解

如果想要了解更多可以访问一下链接:

https://blog.51cto.com/u_16099331/9937768icon-default.png?t=N7T8https://blog.51cto.com/u_16099331/9937768

举报

相关推荐

0 条评论