lvs模式配置
lvs模式配置
- lvs简介
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。
1.1 Ivs: Linux Virtual Server
四层交换,四层路由:
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某-台主机(根据挑选算法)
netfilter
- PREROUTING --> INPUT
- PREROUTING --> FORWARD --> POSTROUTING
- OUTPUT --> POSTROUTING
Ivs:
ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务
ipvs:工作于内核中netfilter INPUT钩子.上
支持TCP,UDP,AH, EST, AH_ EST, SCTP等诸多协议
grep -i -A 2 "ipvs’ /boot/config-2.6.32-504.el6.x86_ 64
查看系统对ipvs的支持情况,包括算法
Ivs arch:
- 调度器: director, dispatcher, balancer
- RS: Real Server
- Client IP: CIP
- Director Virutal IP: VIP
- Director IP: DIP
- Real Server IP: RIP
配置NAT模式
- 准备工作
| 服务器名称 | IP | 版本 |
|---|---|---|
| lvs | 192.168.78.134 | centos8/redhat8 |
| RS1 | 192.168.78.135 | centos8/redhat8 |
| RS2 | 192.168.78.136 | centos8/redhat8 |
配置RS1主机
//修改主机名
[root@localhost ~]# hostnamectl set-hostname RS1
[root@localhost ~]# bash
[root@RS1 ~]#
//关闭防火墙和selinux
[root@RS1 ~]# systemctl disable --now firewalld
[root@RS1 ~]# vim /etc/selinux/config
SELINUX=disabled
//查看ip
[root@RS1 ~]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d2:6d:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.78.135/24 brd 192.168.78.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fed2:6da2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
//安装httpd配置
[root@RS1 ~]# yum install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 'RS1' > /var/www/html/index.html
[root@RS1 ~]# cat /var/www/html/index.html
RS1
//配置网卡
[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.135
PREFIX=24
GATEWAY=192.168.78.134 //调度器的主机IP
DNS1=114.114.114.114
[root@RS1 ~]# systemctl restart NetworkManager
访问网页

配置RS2主机
//修改主机名
[root@localhost ~]# hostnamectl set-hostname RS2
[root@localhost ~]# bash
[root@RS2 ~]#
//关闭防火墙和selinux
[root@RS2 ~]# systemctl disable --now firewalld
[root@RS2 ~]# vim /etc/selinux/config
SELINUX=disabled
//查看ip
[root@RS2 ~]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:db:88:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.78.136/24 brd 192.168.78.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.78.136/24 brd 192.168.78.255 scope global secondary dynamic noprefixroute ens33
valid_lft 1781sec preferred_lft 1781sec
inet6 fe80::20c:29ff:fedb:8869/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@RS2 ~]#
//安装apache配置
[root@RS2 ~]# yum install httpd -y
[root@RS2 ~]# systemctl enable --now httpd
[root@RS2 ~]# echo 'RS2' > /var/www/html/index.html
[root@RS2 ~]# cat /var/www/html/index.html
RS2
//配置网卡
[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.136
PREFIX=24
GATEWAY=192.168.78.134 //调度器的主机IP
DNS1=114.114.114.114
[root@RS2 ~]# systemctl restart NetworkManager
访问网页

配置LVS主机
//设置主机名
[root@localhost ~]# hostnamectl set-hostname LVS
[root@localhost ~]# bash
[root@LVS ~]#
//关闭防火墙和selinux
[root@LVS ~]# systemctl disable --now firewalld.service
[root@LVS ~]# vim /etc/selinux/config
SELINUX=disabled
[root@LVS ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //加入这一个
//让其生效
[root@LVS ~]# sysctl -p
net.ipv4.ip_forward = 1
//安装配置ipvsadm
[root@LVS ~]# yum install ipvsadm -y
[root@LVS ~]# ipvsadm -A -t 192.168.78.134:80 -s rr
[root@LVS ~]# ipvsadm -a -t 192.168.78.134:80 -r 192.168.220.135:80 -m
[root@LVS ~]# ipvsadm -a -t 192.168.78.134:80 -r 192.168.220.136:80 -m
[root@LVS ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@LVS ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.78.134:80 -s rr
-a -t 192.168.78.134:80 -r 192.168.220.135:80 -m -w 1
-a -t 192.168.78.134:80 -r 192.168.220.136:80 -m -w 1
[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.78.134:80 rr
-> 192.168.78.135:80 Masq 1 0 0
-> 192.168.78.136:80 Masq 1 0 0
[root@LVS ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.134
PREFIX=24
GATEWAY=192.168.78.2
[root@LVS ~]# systemctl restart NetworkManager
//访问
[root@LVS ~]# curl 192.168.78.134
RS2
[root@LVS ~]# curl 192.168.78.134
RS1
配置DR模式
- 准备工作
| 服务器名称 | IP | 版本 |
|---|---|---|
| lvs | 192.168.78.134 | centos8/redhat8 |
| RS1 | 192.168.78.135 | centos8/redhat8 |
| RS2 | 192.168.78.136 | centos8/redhat8 |
RS1主机
记得恢复快照
//修改主机名
[root@localhost ~]# hostnamectl set-hostname RS1
[root@localhost ~]# bash
[root@RS1 ~]#
//查看ip
[root@RS1 ~]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d2:6d:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.78.135/24 brd 192.168.78.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fed2:6da2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
//关闭防火墙和selinux
[root@RS1 ~]# systemctl disable --now firewalld
[root@RS1 ~]# vim /etc/selinux/config
SELINUX=disabled
//安装httpd配置网页
[root@RS1 ~]# yum install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 'RS1' > /var/www/html/index.html
[root@RS1 ~]# cat /var/www/html/index.html
RS1
RS2主机
//修改主机名
[root@localhost ~]# hostnamectl set-hostname RS2
[root@localhost ~]# bash
[root@RS2 ~]#
//ip
[root@RS2 ~]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:db:88:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.78.136/24 brd 192.168.78.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.78.136/24 brd 192.168.78.255 scope global secondary dynamic noprefixroute ens33
valid_lft 1781sec preferred_lft 1781sec
inet6 fe80::20c:29ff:fedb:8869/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@RS2 ~]#
//关闭防火墙和selinux
[root@RS2 ~]# systemctl disable --now firewalld
[root@RS2 ~]# vim /etc/selinux/config
SELINUX=disabled
//安装apache配置
[root@RS2 ~]# yum install httpd -y
[root@RS2 ~]# systemctl enable --now httpd
[root@RS2 ~]# echo 'RS2' > /var/www/html/index.html
[root@RS2 ~]# cat /var/www/html/index.html
RS2
配置LVS主机
//修改主机名
[root@localhost ~]# hostnamectl set-hostname LVS
[root@localhost ~]# bash
[root@LVS ~]#
//关闭防火墙和selinux
[root@LVS ~]# systemctl disable --now firewalld.service
[root@LVS ~]# vim /etc/selinux/config
SELINUX=disabled
[root@LVS ~]# yum install net-tools -y //安装软件包
//配置dip
[root@LVS ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.134
PREFIX=24
GATEWAY=192.168.78.2
DNS1=114.114.114.114
//配置vip
[root@LVS ~]# ifconfig ens33:0 192.168.78.254/32 broadcast 192.168.78.254 up //配置vip为192.168.78.254 广播地址为192.168.78.254
//查看网卡
[root@LVS ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.78.134 netmask 255.255.255.0 broadcast 192.168.78.255
inet6 fe80::20c:29ff:fe8c:8ed5 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:8c:8e:d5 txqueuelen 1000 (Ethernet)
RX packets 31174 bytes 18679875 (17.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30364 bytes 5067821 (4.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 //vip
inet 192.168.78.254 netmask 0.0.0.0 broadcast 192.168.78.254
ether 00:0c:29:8c:8e:d5 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
配置RS1的rip
注意:此处必须先修改网卡内核参数然后再配置vip,因为如果先配vip,vip配好后就会立马通告给别人,而修改内核参数就是为了不通告
[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.135
PREFIX=24
GATEWAY=192.168.78.2
DNS1=114.114.114.114
//末尾加入下面两行
[root@RS1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
//-P 读取
[root@RS1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
//配置vip
[root@RS1 ~]# ifconfig lo:0 192.168.78.254/32 broadcast 192.168.78.254 up
[root@RS1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.78.135 netmask 255.255.255.0 broadcast 192.168.78.255
inet6 fe80::20c:29ff:fed2:6da2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d2:6d:a2 txqueuelen 1000 (Ethernet)
RX packets 37460 bytes 2876407 (2.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56204 bytes 10689362 (10.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.78.254 netmask 0.0.0.0
loop txqueuelen 1000 (Local Loopback)
配置RS1的rip
[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.78.136
PREFIX=24
GATEWAY=192.168.78.2
DNS1=114.114.114.114
//末尾加入下面两行
[root@RS2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
//-p 读取
[root@RS2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
//配置vip
[root@RS2 ~]# ifconfig lo:0 192.168.78.254/32 broadcast 192.168.78.254 up
[root@RS2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.78.136 netmask 255.255.255.0 broadcast 192.168.78.255
inet6 fe80::20c:29ff:fedb:8869 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:db:88:69 txqueuelen 1000 (Ethernet)
RX packets 39942 bytes 3059152 (2.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 59431 bytes 11212720 (10.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo:0: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.78.254 netmask 0.0.0.0
loop txqueuelen 1000 (Local Loopback)
调度器配置
//分别在三台主机上配置路由
[root@RS1 ~]# route add -host 192.168.78.254 dev lo:0
[root@RS2 ~]# route add -host 192.168.78.254 dev lo:0
[root@LVS ~]# route add -host 192.168.78.254 dev ens33:0
//调度器配置
[root@LVS ~]# yum install ipvsadm -y
[root@LVS ~]# ipvsadm -A -t 192.168.78.254:80 -s wrr
//-g表示dr模式
[root@LVS ~]# ipvsadm -a -t 192.168.78.254:80 -r 192.168.78.135:80 -g
[root@LVS ~]# ipvsadm -a -t 192.168.78.254:80 -r 192.168.78.136:80 -g
[root@LVS ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
//真机cmd命令行测试
C:\Users\wg>curl 192.168.78.254
RS1
C:\Users\wg>curl 192.168.78.254
RS2
C:\Users\wg>curl 192.168.78.254
RS1
C:\Users\wg>curl 192.168.78.254
RS2
[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.78.254:80 wrr
-> 192.168.78.135:80 Route 1 0 2//表示访问次数
-> 192.168.78.136:80 Route 1 0 2
lvs模式配置的更多相关文章
- LVS三种模式配置及优点缺点比较
目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.lin ...
- LVS三种模式配置及优点缺点比较 转
LVS三种模式配置及优点缺点比较 作者:gzh0222,发布于2012-11-12,来源:CSDN 目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- lvs中dr模式配置脚本
1 dr模式介绍 1.1 lvs的安装 安装具体解释:http://blog.csdn.net/CleverCode/article/details/50586957. 1.2 lvs模式 lvs有三 ...
- 一些LVS实验配置、工具和方案
最近做了一些LVS配置和方案的验证实验,将过程中用到的一些配置.工具和具体的解决方案记录一下.使用DR模式.验证一种不中断业务的RealServer升级或者重启方案. 网络规划: 节点 IP地址 ce ...
- LVS模式二:隧道模式(Tun)
一.IP隧道(IP Tunneling) ip隧道是一个将ip报文封装到另一个ip报文的技术,这可以使得目标为一个ip地址的数据报文被封装和转发到另一个ip地址.ip隧道技术也成为ip封装技术. ...
- LVS模式一:直接路由模式DR(Direct Routing)
(一)LVS 一.LVS的了解 LVS(Linux Virtual Server)可以理解为一个虚拟服务器系统. Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI.动态主页 ...
- LVS+Keepalived 配置
LVS+Keepalived配置 环境准备 LVS1:192.168.1.1 LVS2:192.168.1.2 MySQL Server1:192.168.1.13 MySQL Server2:192 ...
- 使用共享网卡的NAT模式配置VMware中的CentOS的上网功能
昨天写了一篇文章总结了前两天折腾VMware 10中的CentOS上网的问题,结果留下一下小瑕疵,就是视频教程中通过共享网卡使用NAT模式配置虚拟机的方法.今天在结合昨天的基础上终于弄明白了这个问题. ...
- wpa_supplicant 移植及 linux 命令行模式配置无线上网
本文涉及内容为linux 命令行模式配置无线上网 及 wpa_supplicant 移植到开发板的过程,仅供参考. 1.源码下载 wpa_supplicant 源码下载地址 :http://hosta ...
随机推荐
- safari iframe 滚动问题(iframe--- iphone中的iframe没有滚动,要设置滚动;)
_::-webkit-full-page-media, _:future, :root #frameBody>.frame-pnl{ overflow:auto; -webkit-overflo ...
- Codeforces 1208F Bits And Pieces
题目描述 You are given an array a of n integers. You need to find the maximum value of ai|(aj&ak) ov ...
- vs code + miktex配置
windows10系统通过choco安装miktex choco install miktex 添加path vscode配置: { // Latex workshop "latex-wor ...
- .Net Core 中使用NLog替代默认日志
1.添加引用nlog.config和Nlog.Web.AspNetCore 2.配置NLog 配置文件 添加一个Web配置文件xxxx.Config <?xml version="1. ...
- c#怎样删除指定文件名的文件
我有一个文件夹,里面有6个文件,我现在要删除字母B开头的三个文件,只需要剩下A开头的文件即可用C#怎样操作??? foreach (string d in Directory.GetFileSyste ...
- Finance财务软件(支持Excel模板打印专题)
我们可以修改模板文件./service/PrintTemplate/凭证打印模板_v1.xlsx 模板中的字段对应 2010_upgrade_01.sql 中的存储过程sp_voucher_print ...
- Linux7重置root管理员密码
1.先确定是否为rhel 7系统(别的系统我没有试过,请慎重尝试) cat /etc/redhat-release 查看Linux的操作系统 2.按键盘e键进入内核编辑界面 3.找到linux16这行 ...
- Java基础之包机制+JavaDoc
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间.[包的本质就是文件夹] 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般利用公司域名 ...
- 在cesium中导出图片
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 2022-3-16内部群每日三题-清辉PMP
1.项目经理正在为客户管理一个跨国项目,拟采用最新技术替换其电信基础设备.项目经理得知,在某些国家,必须遵循特定的环境规定来处置被替换的硬件.在制定商业论证时,未考虑到这些规定,项目经理应该怎么做? ...