ipvsadm(ipvsadm命令详解)

http://www.itjxue.com  2023-01-26 13:56  来源:未知  点击次数: 

ipvsadm命令详解

ipvsadm是ipvs的管理器,需要yum安装。

程序包:ipvsadm Unit File: ipvsadm.service

主程序:/usr/sbin/ipvsadm

规则保存工具:/usr/sbin/ipvsadm-save

规则重载工具:/usr/sbin/ipvsadm-restore

配置文件:/etc/sysconfig/ipvsadm-config

ipvs调度规则文件:/etc/sysconfig/ipvsadm

ipvsadm核心功能:

管理集群服务:增、改、删 增、修改:

删除:

管理集群上的RS:增、改、删 增、改:

删:

清空定义的所有内容:

清空计数器:

查看:

ipvs规则:

ipvs连接:

保存:建议保存至/etc/sysconfig/ipvsadm

重载:

防火墙标记

FWM:FireWall Mark MARK target 可用于给特定的报文打标记 --set-mark value 其中:value 可为0xffff格式,表示十六进制数字 借助于防火墙标记来分类报文,而后基于标记定义集群服务;可将多个不同的应用使用同一个集群服务 进行调度 实现方法: 在Director主机打标记:

在Director主机基于标记定义集群服务:

范例:

范例:

session 绑定:对共享同一组RS的多个集群服务,需要统一进行绑定,lvs sh算法无法实现 持久连接( lvs persistence )模板:实现无论使用任何调度算法,在一段时间内(默认360s ),能够 实现将来自同一个地址的请求始终发往同一个RS

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

持久连接实现方式:

范例:

如何查看ipvsadm表中内容

对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望

对ipvsadm 的使用者有一定的帮助。

为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍

一下:

1,virtual-service-address:是指虚拟服务器的ip 地址

2,real-service-address:是指真实服务器的ip 地址

3,scheduler:调度方法

命令选项解释:

有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可

以。

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也

就是增加一台新的虚拟服务器。

-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C --clear 清除内核虚拟服务器表中的所有记录。

-R --restore 恢复虚拟服务器规则

-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式

-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器

记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L|-l --list 显示内核虚拟服务器表

-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

--set tcp tcpfin udp 设置连接超时值

--start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说

明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的

VRRP 功能。

--stop-daemon 停止同步守护进程

-h --help 显示帮助信息

其他的选项:

-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务

[vip:port] or [real-server-ip:port]

-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务

[vip:port] or [real-server-ip:port]

-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

-s --scheduler scheduler 使用的调度算法,有这样几个选项

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,

默认的调度算法是: wlc.

-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客

户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

-M --netmask netmask persistent granularity mask

-r --real-server server-address 真实的服务器[Real-Server:port]

-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)

-i --ipip 指定LVS 的工作模式为隧道模式

-m --masquerading 指定LVS 的工作模式为NAT 模式

-w --weight weight 真实服务器的权值

--mcast-interface interface 指定组播的同步接口

-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c

--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout

--daemon 显示同步守护进程状态

--stats 显示统计信息

--rate 显示速率信息

--sort 对虚拟服务器和真实服务器排序输出

--numeric -n 输出IP 地址和端口的数字形式。

通过rpm包安装的ipvsadm怎么设置

检查是否支持

# modprobe -l|grep ipvs

或#lsmod |grep ip_vs

如果在/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs下有很多ip_vs*这样的文件说明,ipvs模块已经加入。

软件安装

一、RPM安装:

1、根据内核安装相应版本的lvs

下载地址

我下载的是ipvsadm-1.24-6.src.rpm

2、修改打包文件

#rpmbuild -bb /usr/src/redhat/SPECS/ipvsadm.spec出现:

error: Legacy syntax is unsupported: copyright等错误信息时,修改ipvsadm.spec,

将其中的Copyright:标签改成License:即可。

3、创建链接文件

#ln -s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux

不创建链接会出现:libipvs.h:14:23: net/ip_vs.h: No such file or directory等编译错误。

4、#rpmbuild -bb /usr/src/redhat/SPECS/ipvsadm.spec

二、TAR安装:

#下载软件

#wget

#解压缩

#tar -zxvf ipvsadm-1.24.tar.gz

#cd ipvsadm-1.24

#建立编译时必须的一个软链接

#ln -s /usr/src/kernels/2.6.9-42.EL-i686/ /usr/src/linux

#编译安装

#make make install

#确认安装成功

#whereis ipvsadm

lvs-dr模式:

配置vip server

#vi /usr/local/vip.sh

#!/bin/bash

# description: start LVS of DirectorServer

GW=192.168.1.250

# website director vip.

SNS_VIP=192.168.1.244

SNS_RIP1=192.168.1.223

SNS_RIP2=192.168.1.224

. /etc/rc.d/init.d/functions

logger $0 called with $1

case "$1" in

start)

# set squid vip

#/sbin/ipvsadm --set 30 5 60

/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up

/sbin/route add -host $SNS_VIP dev eth0:0

/sbin/ipvsadm -C

/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 1

#/sbin/ipvsadm -A -t $SNS_VIP:80 -s rr

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1

#/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1 -g

/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1

#/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2 -g

/sbin/ipvsadm

touch /var/lock/subsys/ipvsadm /dev/null 21

;;

stop)

/sbin/ipvsadm -C

/sbin/ipvsadm -Z

ifconfig eth0:0 down

ifconfig eth0:1 down

route del $SNS_VIP

#route del $SS_VIP

rm -rf /var/lock/subsys/ipvsadm /dev/null 21

echo "ipvsadm stoped"

;;

status)

if [ ! -e /var/lock/subsys/ipvsadm ];then

echo "ipvsadm stoped"

exit 1

else

echo "ipvsadm OK"

fi

;;

*)

echo "Usage: $0 {start|stop|status}"

exit 1

esac

exit 0

启动ipvsadm服务

#chmod 777 /usr/local/vip.sh

#/usr/local/vip.sh start

出现:

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

- RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP localhost:http wrr persistent 1

- localhost:http Route 1 0 0

- localhost:http Route 1 0 0

表明ipvsadm已经启动并正常工作,用#ipvsadm -L也可查询ipvsadm状态。

配置两个realserver,配置相同

#vi /usr/local/realserver.sh

#!/bin/bash

# description: Config realserver lo and apply noarp

SNS_VIP=192.168.1.244

. /etc/rc.d/init.d/functions

case "$1" in

start)

ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

/sbin/route add -host $SNS_VIP dev lo:0

echo "1" /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" /proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" /proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p /dev/null 21

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $SNS_VIP /dev/null 21

echo "0" /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" /proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" /proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" /proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

启动realserver

#chmod 777 /usr/local/realserver.sh

#/usr/local/realserver.sh start

出现:

RealServer Start OK

apache配置:

在两个realserver服务器的apache首页设置分别为:11111111111、2222222222

测试

用浏览器打开:,即可看到1111111111或22222222222

#ipvsadm -lcn

查看负载链接状况,在测试中发现:

设置tcp超时时间#ipvsadm --set 200 200 20

查看tcp超时时间#ipvsadm -L --timeout

Timeout (tcp tcpfin udp): 200 200 20

但实际在轮叫时,timeout时间总为60秒,一直不明白为什么,郁闷。

--------------------------------------------------------------------------

ipvsadm 的命令参考:

1,virtual-service-address:是指虚拟服务器的ip 地址

2,real-service-address:是指真实服务器的ip 地址

3,scheduler:调度方法

(lna@networksbase.com 翻译 ipvsadm v1.21 2004 年4 月)

ipvsadm 的用法和格式如下:

ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p

[timeout]] [-M netmask]

ipvsadm -D -t|u|f virtual-service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port

[-g|i|m] [-w weight]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options]

ipvsadm -Z [-t|u|f service-address]

ipvsadm --set tcp tcpfin udp

ipvsadm --start-daemon state [--mcast-interface interface]

ipvsadm --stop-daemon

ipvsadm -h

命令选项解释:

有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可

以。

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也

就是增加一台新的虚拟服务器。

-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C --clear 清除内核虚拟服务器表中的所有记录。

-R --restore 恢复虚拟服务器规则

-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式

-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器

记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L|-l --list 显示内核虚拟服务器表

-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

--set tcp tcpfin udp 设置连接超时值

--start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说

明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的

VRRP 功能。

--stop-daemon 停止同步守护进程

-h --help 显示帮助信息

其他的选项:

-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务

[vip:port] or [real-server-ip:port]

-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务

[vip:port] or [real-server-ip:port]

-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

-s --scheduler scheduler 使用的调度算法,有这样几个选项

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,

默认的调度算法是: wlc.

-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客

户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

-M --netmask netmask persistent granularity mask

-r --real-server server-address 真实的服务器[Real-Server:port]

-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)

-i --ipip 指定LVS 的工作模式为隧道模式

-m --masquerading 指定LVS 的工作模式为NAT 模式

-w --weight weight 真实服务器的权值

--mcast-interface interface 指定组播的同步接口

-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c

--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout

--daemon 显示同步守护进程状态

--stats 显示统计信息

--rate 显示速率信息

--sort 对虚拟服务器和真实服务器排序输出

--numeric -n 输出IP 地址和端口的数字形式

(责任编辑:IT教学网)

更多