LVS简述及实战

LVS

lvs简介

LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基于LVS+keepalived实现。

lvs相关概念

VS:Virtual Server

RS:Real Server

CIP:Client IP

VIP: Virtual serve IP VS外网的IP

DIP: Director IP VS内网的IP

RIP: Real server IP

lvs集群的类型

lvs-nat: 修改请求报文的目标IP,多目标IP的DNAT

lvs-dr: 操纵封装新的MAC地址

lvs-tun: 在原请求IP报文之外新加一个IP首部

lvs-fullnat: 修改请求报文的源和目标IP

LVS的nat模式

实验环境:三台虚拟机:lvs主机、webserver1、webserver2

lvs配置

安装web服务:dnf install httpd -y

修改路由信息:(网卡eth0 nat模式,eth1仅主机模式)

在lvs中打开内核路由功能:vim /etc/sysctl.conf

 

webserver配置

下载httpd服务 dnf install httpd -y

修改路由信息:

webserver2配置同理,ip为192.168.0.20,三台主机均需要关闭防火墙。

测试

ipvsadm使用

lvs主机

安装ipvsadm:dnf install ipvsadm -y

查看 ipvsadm -Ln

测试

 ipvasdm相关命令

1.管理集群服务中的增删改
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
-A #添加
-E #修改
-t #tcp服务
-u #udp服务
-s #指定调度算法,默认为WLC
-p #设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver
-f #firewall mask 火墙标记,是一个数字
2.管理集群中RealServer的曾增删改
-a #添加realserver
-e #更改realserver
-t #tcp协议
-u #udp协议
-f #火墙 标签
-r #realserver地址
-g #直连路由模式
-i #ipip隧道模式
-m #nat模式
-w #设定权重
-Z #清空计数器
-C #清空lvs策略
-L #查看lvs策略
-n #不做解析
--rate :输出速率信息

DR模式

实验环境需要五台主机:lvs,router,client,web1,web2

lvs

删除eth0网卡
[root@lvs ~]# nmcli connection delete eth0 

配置eth1网卡信息
[root@lvs ~]# vmset.sh eth1 192.168.0.50
[root@lvs ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection 
[root@lvs ~]# nmcli connection reload 
[root@lvs ~]# nmcli connection up eth1


查看网卡信息

 router

router主机开启两个网卡
[root@router ~]# vmset.sh eth0 172.25.254.100
[root@router ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@router ~]# nmcli connection reload 
[root@router ~]# nmcli connection up eth0 
[root@router ~]# vmset.sh eth1 192.168.0.100
[root@router ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection 
[root@router ~]# nmcli connection reload 
[root@router ~]# nmcli connection up eth1

打开内核路由功能

查看eth0网卡信息
[root@client ~]# 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

查看eth1网卡信息
[root@client ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.100/24
method=manual

client

配置网卡信息
[root@client ~]# vmset.sh eth0 172.25.254.200
[root@client ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@client ~]# nmcli connection reload 
[root@client ~]# nmcli connection up eth0 

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

[ipv4]
address1=172.25.254.200/24,172.25.254.100
method=manual

web

两台webserver配置基本相同

webserver1:192.168.0.10

webserver2:192.168.0.20

在两台webserver主机中设置vip不对外响应
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 

lvs和两台webserver添加vip:ip a a 192.168.0.200/32 dev lo

测试

LVS火墙标记

两台web服务器安装 
[root@webserver1 ~]# yum install mod_ssl -y

安装后重启httpd      
[root@webserver1 ~]# systemctl restart httpd

lvs中配置策略:

[root@lvs ~]# ipvsadm -A -t 192.168.0.200:443 -s rr

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

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

查询结果 curl -k https://192.168.0.200 

lvs打标签

[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 ~]# ipvsadm -C

设定新的调度规则

测试

 

  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值