Linux 基础服务 LVS

lvs
client    192.168.10.10   gw192.168.10.1
lvs         192.168.10.1     192.168.2.1
web1     192.168.2.50     gw192.168.2.1
web2      192.168.2.60    gw192.168.2.1
client
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.10.10/24
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.10.1
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.1
web1   192.168.2.50    gw 192.168.2.1
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo 11111 > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.2.50
11111
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
web1   192.168.2.60    gw 192.168.2.1
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo 222222 > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.2.60
2222222
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
lvs
第一张网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
IPADDR=192.168.10.1      client的网关一样
PREFIX=24
添加一张网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
NAME=ens37   #网卡配置文件名称
uuid删除
DEVICE=ens37   #设备名
ONBOOT=yes
IPADDR=192.168.2.1   #web的gw一致
PREFIX=24
[root@localhost network-scripts]# systemctl restart network
[root@localhost ~]# vim /etc/sysctl.conf   #打开路由转发
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p   #让其立即生效
net.ipv4.ip_forward = 1
lvs写入到了linux内核当中
[root@localhost ~]# modprobe ip_vs   #加载lvs的模块
安装管理lvs的工具
[root@localhost ~]# yum -y install ipvsadm
添加一个集群   这里的ip写的是client的访问的ip   client访问的ip肯定是和client同网段的ip
[root@localhost ~]# ipvsadm -A -t 192.168.10.1:80 -s  rr
-A   添加一个集群  负载均衡集群
-t    tcp链接
192.168.10.1:80    和client同网段的ip   10.10   10.1
-s   rr   使用调度算法
[root@localhost ~]# ipvsadm -a -t 192.168.10.1:80 -r  192.168.2.50:80 -m -w 1
-a  添加一个后端真实的节点
-r   真实节点的ip
-m   nat模式    -g   dr模式   -i ip隧道模式
-w  权重
[root@localhost ~]# ipvsadm -a -t 192.168.10.1:80 -r  192.168.2.60:80 -m -w 1
[root@localhost ~]# ipvsadm -S   #保存配置
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.2.50:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.2.60:http -m -w 1
[root@localhost ~]# 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.10.1:80 rr
  -> 192.168.2.50:80              Masq    1      0          0         
  -> 192.168.2.60:80              Masq    1      0          0         
删除
删除真实节点
-d 
[root@localhost ~]# ipvsadm -d -t 192.168.10.1:80 -r  192.168.2.60:80 
-D  删除整个集群
[root@localhost ~]# ipvsadm -D -t 192.168.10.1:80 
[root@localhost ~]# ipvsadm -ln
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
client:
[root@localhost ~]# curl 192.168.10.1
22222
[root@localhost ~]# curl 192.168.10.1
11111
DR模式
client   192.168.2.10
lvs      192.168.2.20    vip  192.168.2.200
web    192.168.2.50    vip  192.168.2.200   
web2   192.168.2.60   vip   192.168.2.200
client:
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.2.10/24
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.2.1
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
[root@localhost ~]# systemctl restart network
lvs:
[root@localhost ~]# nmcli connection modify ens37 ipv4.addresses 192.168.2.20/24
[root@localhost ~]# nmcli connection modify ens37 ipv4.gateway 192.168.2.1
[root@localhost ~]# nmcli connection modify ens37 ipv4.method manual
[root@localhost ~]# systemctl restart network
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens37 ifcfg-ens37:0
[root@localhost network-scripts]# vim ifcfg-ens37:0
NAME=ens37:0
DEVICE=ens37:0
ONBOOT=yes
IPADDR=192.168.2.200
PREFIX=24
[root@localhost network-scripts]# systemctl restart network
web1  web上面虚拟ip只能在本地回环网卡上添加  因为如果web主机上有其他的服务    ens33网卡需要接受其他的请求
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.2.200  #和lvs上一致
NETMASK=255.255.255.255   #子网掩码必须用4个255
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
[root@localhost ~]# vim /etc/sysctl.conf 
[root@localhost ~]# sysctl -p   #让其立刻生效
让其虚拟ip变成私有的ip地址   不发送任何的广播   不接受任何的请求
web虚拟ip只能在lo      ens33   
net.ipv4.conf.lo.arp_ignore = 1    
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
添加路由   让web可以接受来自192.168.2.200的请求
[root@localhost ~]# route add -host 192.168.2.200 dev lo:0
[root@localhost ~]# scp /etc/sysctl.conf root@192.168.2.60:/etc/sysctl.conf   #拷贝编写的文件
web2
[root@localhost ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
[root@localhost ~]# route add -host 192.168.2.200 dev lo:0
没有设备
DEVICE=lo:0这里没有更改
lvs
[root@localhost ~]# ipvsadm -D -t 192.168.10.1:80
[root@localhost ~]# ipvsadm -A -t 192.168.2.200:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.50:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.60:80 -g -w 1
[root@localhost ~]# ipvsadm -S
[root@localhost ~]# 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.2.200:80 rr
  -> 192.168.2.50:80              Route   1      0          0         
  -> 192.168.2.60:80              Route   1      0          0         
[root@localhost ~]# curl 192.168.2.200
22222
[root@localhost ~]# curl 192.168.2.200
11111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值