LVS简介
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
工作在OSI第四层中,在服务器承受不了业务需求量的时候,使用均衡负载的方式来使服务器能够给用户正常提供服务。
lvs工作流程:
当用户发起请求时,lvs 调度器先将请求接收,调度器会根据收到请求的服务和根据自己预设的工作模式和算法来判断哪台服务器的负载较低,
然后将此条请求转发给负载较低提供服务的服务器,由这台提供服务的服务器来处理此条请求,最后提供服务的服务器根据预设的工作模式来
决定资源返回给客户端的方式。
LVS 的四种工作模式原理简介及优缺点
##NAT
特点
1.RIP和DIP必须在同一个Ip网络中,且应使用私网地址,RS的网关要指向DIP;
2.请求报文和响应报文必须经由Director转发;
3.支持端口映射,可修改请求报文的目标端口;
4.director必须为Linux系统,RS可以为任意系统;
工作的流程

如上图所示
首先客户端向VIP发送请求,报文首部为①,director收到请求后通过预设的算法来判断将请求转发给哪一台RS并且将报文首部修改为②,请求
通过DIP转发到RIP,服务器返回资源时,报文首部为③,资源通过RIP转发到DIP,director收到资源后将报文首部修改为④,最后通过VIP返回
到CIP客户端。
DR模式(默认模式)
特点
1 dr模式通过修改请求报文的目标MAC地址进行转发
2 director要配置VIP和DIP
3 所有的RS都要配置RIP和VIP
4 RIP可以使用私有地址,也可以使用公网地址
5 RS跟director必须在同一个物理网络中,中间不能有路由器相隔
6 请求报文经过director,并且由director调度,但响应报文一定不能经过director
7 因为响应报文不经过director,所以不支持端口映射
8 因为响应报文不经过director,所以RS网关不能指向DIP
9 RS可以是大多数OS
工作流程如下

如上图所示
首先客户端向VIP发送请求,报文首部为①,因为RS的VIP都限制了arp包的回应和通告并且VIP是配置到lo网卡上,所以客户端发送的请求一定是发送到director,director收到请求后通过预设的算法来判断将请求转发给哪一台RS并且将报文首部修改为②,由MAC地址来判断由哪台服务器提供服务,RS收到请求后,通过lo网卡上的VIP将资源返回给客户端,报文首部为③。
TUN
特点
1 不修改请求报文的ip首部,而是在原有的ip首部再封装一个ip首部。
2 RIP、DIP、VIP必须是公网地址。
3 RS的网关不是指向DIP(因为响应报文是不通过director的)。
4 请求报文必须经过director,且由director调度,但响应报文不能经过director。
5 不支持端口映射(因为响应报文是不通过director的)。
6 RS的OS必须支持隧道功能(因为要解封装ip首部两次,若不支持则不能识别tun模式的文首部)。
工作流程如下

如上图:客户端将请求发送给VIP,报文首部为①,因为RIP是公网地址,而VIP是配置再lo网卡上,客户端从公网
访问是找不到RS的VIP的,所以客户端发送的请求一定是发送到director,director收到请求后通过预设的算法来判
断将请求转发给哪一台RS并且将报文首部再封装一层报文首部,此时报文首部修改成②,通过外面一层报文首部
访问到RS,RS收到请求后,再解封装内层报文首部得知,是客户端通过CIP到director的VIP来访问的,于是通过
lo网卡的VIP和客户端的CIP来封装报文首部,并且将资源返回给客户端,报文首部为③
fullnat
特点
1 director通过同时修改请求报文的目标地址和源地址进行转发。
2 VIP是公网地址,RIP和DIP是私网地址,RIP与DIP无须在用一个网络中。
3 RS接收到请求报文的源地址为DIP,因此要响应给DIP。
4 请求报文和响应报文都必须经过director。
5 支持端口映射。
6 RS可以使用任意OS
工作流程

如上图:客户端通过CIP将请求发送给director的VIP,报文首部为①,director收到请求后通过预设的算法来判断将请求转发给哪一台RS,
因为RIP和DIP不在同一个网络中,需要经过路由器,所以报文首部为②,RS收到请求后,返回资源时,因为中间需要经过路由器,所以报文首
部为③,最后又director将资源返回给客户端,报文首部为④。
LVS的配置方法
nat模式
要求 nat模型实现http和https两种负载均衡集群,注意,各RS都要提供同一个私钥和同一个证书。
在R1和R2上
dnf -y install httpd mod_ssl
systemctl start httpd
echo "2" > /var/www/html/index.html
mv httpd.key httpd.crt /etc/httpd/
cd /etc/httpd/conf.d/
vim ssl.conf
修改路径
......
SSLCertificateFile /etc/httpd/httpd.crt
SSLCertificateKeyFile /etc/httpd/httpd.key
......
重启httpd
[root@host1 conf.d]# systemctl restart httpd
首先 在r1和r2上面安装号httpd,然后在/var/www/html下配置网页分别输出为R1和R2.启动apache,查看网页。
| IP类型 | IP地址 |
|---|---|
| VIP | 192.168.31.150 |
| DIP | 192.168.31.138 |
| R1 | 192.168.31.139 |
| R2 | 192.168.31.140 |
安装好apache后生成一个证书,r1和r2一起使用
[root@R2 ~]# mkdir /etc/pki/CA
[root@R2 ~]# cd /etc/pki/CA
[root@R2 CA]# mkdir private
[root@R2 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
..........................+++++
...........................................+++++
e is 65537 (0x010001)
[root@R2 CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:JXRT
Organizational Unit Name (eg, section) []:JXRT
Common Name (eg, your name or your server's hostname) []:czh.com
Email Address []:1@1.com
[root@R2 CA]# mkdir certs newcerts crl
[root@R2 CA]# touch index.txt && echo 01 > serial
[root@R2 CA]# (umask 077;openssl genrsa -out httpd.key 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
...+++++
..............................

LVS(Linux Virtual Server)是基于OSI第四层的集群系统,用于负载均衡以应对高业务需求。它包括DR模式(默认)、NAT、TUN和fullnat四种工作模式。DR模式中,数据包直接从调度器到真实服务器;NAT模式通过地址转换实现负载均衡;TUN模式通过隧道技术;fullnat模式涉及全面的网络地址转换。配置LVS时,例如在NAT模式下,需要配置服务器的IP转发,设置规则,并确保RS服务器共享相同证书和私钥。了解这些模式和配置方法对优化服务器性能至关重要。
最低0.47元/天 解锁文章
1181

被折叠的 条评论
为什么被折叠?



