ipvsadm命令用法
ipvsadm命令用法
准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能:
  使用命令添加基于TCP一些的集群服务
  在集群中添加若干台后端真实服务器
  实现同一客户端访问,调度器分配固定服务器
  会使用ipvsadm实现规则的增、删、改
  保存ipvsadm规则
方案
安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料。
常用ipvsadm命令语法格式
ipvsadm -A   添加虚拟服务器
ipvsadm -E   修改虚拟服务器
ipvsadm -D   删除虚拟服务器
ipvsadm -C   清空所有
ipvsadm -a   添加真实服务器
ipvsadm -e   修改真实服务器
ipvsadm -d   删除真实服务器
ipvsadm -L   查看LVS规则表
-s[rr|wrr|lc|wlc]  指定集群算法
ipvsadm -A   添加虚拟服务器
ipvsadm -E   修改虚拟服务器
ipvsadm -D   删除虚拟服务器
ipvsadm -C   清空所有
ipvsadm -a   添加真实服务器
ipvsadm -e   修改真实服务器
ipvsadm -d   删除真实服务器
可以man ipvsadm看到这些选项
步骤一:使用命令增、删、改LVS集群规则
1)创建LVS虚拟集群服务器(算法为加权轮询:wrr)
# yum -y install ipvsadm
# ss -tunlp | grep 80
[root@proxy ~]# killall varnishd
[root@proxy ~]# killall nginx 
[root@proxy ~]# 
[root@proxy ~]# killall httpd
# ipvsadm -Ln
页面显示
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
# ipvsadm -A -t 192.168.4.5:80 -s wrr
# 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.4.5:80 wrr
# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -m -w 1
# 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.4.5:80 wrr
  -> 192.168.2.100:80             Masq    1      0          0         
# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -m -w 2
# 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.4.5:80 wrr
  -> 192.168.2.100:80             Masq    1      0          0         
  -> 192.168.2.200:80             Masq    2      0          0   
# ss -tunlp | grep 80     #不怕设置了就会启动80端口,因为LVS是在内核里的,它不是一个软件。
# ipvsadm -A -t 192.168.4.5:3306 -s rr
# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.10 -g -w 2
# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.20 -g -w 2
# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.30 -g -w 3
# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.40 -g -w 4
# 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.4.5:80 wrr
  -> 192.168.2.100:80             Masq    1      0          0         
  -> 192.168.2.200:80             Masq    2      0          0         
TCP  192.168.4.5:3306 rr
  -> 192.168.2.10:3306            Route   2      0          0         
  -> 192.168.2.20:3306            Route   2      0          0         
  -> 192.168.2.30:3306            Route   3      0          0         
  -> 192.168.2.40:3306            Route   4      0          0   
# ipvsadm -e -t 192.168.4.5:3306 -r 192.168.2.10 -m -w 1
# ipvsadm -Ln
# ipvsadm -e -t 192.168.4.5:3306 -r 192.168.2.20 -m -w 1
# ipvsadm -Ln
# ipvsadm -e -t 192.168.4.5:3306 -r 192.168.2.30 -m -w 1
# ipvsadm -Ln
# ipvsadm -e -t 192.168.4.5:3306 -r 192.168.2.40 -m -w 1
# ipvsadm -Ln
# ipvsadm -d -t 192.168.4.5:3306 -r 192.168.2.10
# ipvsadm -Ln
# ipvsadm -d -t 192.168.4.5:3306 -r 192.168.2.20
# ipvsadm -Ln
# ipvsadm -d -t 192.168.4.5:3306 -r 192.168.2.30
# ipvsadm -Ln
# ipvsadm -d -t 192.168.4.5:3306 -r 192.168.2.40
# ipvsadm -Ln
# ipvsadm -D -t 192.168.4.5:3306
# ipvsadm -Ln
# ipvsadm -C
# ipvsadm -Ln
给web1和web2配网关
# nmcli connection modify eth1 ipv4.method manual ipv4.gateway 192.168.2.5
# nmcli connection up eth1
----------------------------------------------------------------------------------------------------
步骤一:配置基础环境
1)设置Web服务器(以web1为例)
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html
2)启动Web服务器软件
[root@web1 ~]# systemctl restart httpd
3)关闭防火墙与SELinux
[root@web1 ~]# systmctl stop firewalld
[root@web1 ~]# setenforce 0
web2:
1)设置Web服务器
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.2.200" > /var/www/html/index.html
2)启动Web服务器软件
[root@web1 ~]# systemctl restart httpd
3)关闭防火墙与SELinux
[root@web1 ~]# systmctl stop firewalld
[root@web1 ~]# setenforce 0
-----------------------------------------------------------------------------------------------------
步骤三:部署LVS-NAT模式调度器
1)确认调度器的路由转发功能(如果已经开启,可以忽略)
调度器proxy操作:
# echo 1 > /proc/sys/net/ipv4/ip_forward     #打开路由功能,临时修改!马上生效!可以和永久配置一起用!都可以的!不会有冲突。
# cat /proc/sys/net/ipv4/ip_forward
1
# vim /etc/sysctl.conf                       #修改配置文件,设置永久规则!但是并不马上生效,所以可以用临时修改来使它马上生效!
最后一行添加
net.ipv4.ip_forward = 1
或者可以
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf    #修改配置文件,设置永久规则
#修改配置文件,设置永久规则
--------------------------------------------------------------------------------------------------------
调度器proxy操作:
# ipvsadm -A -t 192.168.4.5:80 -s wrr
# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -m
# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -m
# 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.4.5:80 wrr
  -> 192.168.2.100:80             Masq    1      0          0         
  -> 192.168.2.200:80             Masq    1      0          0 
# ipvsadm-save -n > /etc/sysconfig/ipvsadm-config       #-n是不要显示表头的其他东西
# cat /etc/sysconfig/ipvsadm-config
-A -t 192.168.4.5:80 -s wrr
-a -t 192.168.4.5:80 -r 192.168.2.100:80 -m -w 1
-a -t 192.168.4.5:80 -r 192.168.2.200:80 -m -w 1
# ipvsadm-save 
-A -t proxy:http -s wrr
-a -t proxy:http -r host1:http -m -w 1
-a -t proxy:http -r host2:http -m -w 1
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.100  host1   www.a.com  www.b.com
192.168.2.200  host2
192.168.4.10  host3
---------------------------------------------
web1操作:
# nmcli connection down eth0
成功取消激活连接 'eth0'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/1)
eht0是192.168.4.100
---------------------------------------------
client操作:
# curl 192.168.4.5
192.168.2.200
[root@client ~]# curl 192.168.4.5
192.168.2.100
[root@client ~]# curl 192.168.4.5
192.168.2.200
[root@client ~]# curl 192.168.4.5
192.168.2.100
                    
                
                
            
        
浙公网安备 33010602011771号