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

 

posted @ 2019-04-29 00:38  安于夏  阅读(1479)  评论(0编辑  收藏  举报