出名的建站网站360摄像头海澳門地区限制解除
LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。
查看内核是否已经集成ipvs:
[root@lvs ~]# grep -i "ip_vs" /boot/config-2.6.32-358.18.1.el6.x86_64
CONFIG_IP_VS=m
CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_FTP=m
一、安装ipvsadm:
[root@lvs ~]# yum -y install ipvsadm
二、ipvsadm基本介绍:
2.1 集群服务管理类命令:
2.1.1 添加集群:
# ipvs -A -t|u|f service-address [-s scheduler]
选项说明:
-t: TCP协议的集群
-u: UDP协议的集群service-address: IP:PORT
-f: FWM: 防火墙标记service-address: Mark Number
示例:
[root@lvs ~]# ipvsadm -A -t 172.16.1.253:80 -s wlc
2.1.2 修改集群:
# ipvs -E -t|u|f service-address [-s scheduler]
示例:
[root@lvs ~]# ipvsadm -E -t 172.16.1.253:80 -s wrr
2.1.3 删除集群:
# ipvsadm -D -t|u|f service-address
示例:
[root@lvs ~]# ipvsadm -D -t 172.16.1.253:80
2.2 管理集群中的RealServer:
2.2.1 添加RS:
# ipvsadm -a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
选项说明:
-t|u|f service-address:事先定义好的某集群服务
-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;
[-g|i|m]: LVS类型 -g: DR-i: TUN-m: NAT
[-w weight]: 定义服务器权重
示例:
[root@lvs ~]# ipvsadm -a -t 172.16.1.253:80 -r 172.16.1.101 –g -w 5[root@lvs ~]# ipvsadm -a -t 172.16.1.253:80 -r 172.16.1.102 –g -w 10
2.2.2 修改RS:
# ipvsadm -e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
示例:
[root@lvs ~]# ipvsadm -e -t 172.16.1.253:80 -r 172.16.1.101 –g -w 3
2.2.3 删除RS:
# ipvsadm -d -t|u|f service-address -r server-address
示例:
[root@lvs ~]# ipvsadm -d -t 172.16.1.253:80 -r 172.16.1.101
2.3 查看类:
# ipvsadm -L|l [options]
常用选项[options]如下:
-n: 数字格式显示主机地址和端口
--stats:统计数据
--rate: 速率
--timeout: 显示tcp、tcpfin和udp的会话超时时长
-c: 显示当前的ipvs连接状况
参看当前连接情况
[root@my-LVS01 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=1048576)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.100.5.98:6030 wrr
-> 10.100.5.86:6030 Route 5 5 0
-> 10.100.5.87:6030 Route 5 17 0
-> 10.100.5.88:6030 Route 5 17 0
Forward 转发方式,当前是路由转发
Weight 权重
ActiveConn 当前活跃的连接数
InActConn 当前不活跃的连接数
参看全部连接数和流量
[root@my-LVS01 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=1048576)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 10.100.5.98:6030 113786 19495479 0 2110M 0
-> 10.100.5.86:6030 12883 1679941 0 181747K 0
-> 10.100.5.87:6030 40269 10218905 0 1105M 0
-> 10.100.5.88:6030 40240 7403127 0 804275K 0
--stats选项是统计自该条转发规则生效以来的
Conns (connections scheduled) 已经转发过的连接数
InPkts (incoming packets) 入包个数
OutPkts (outgoing packets) 出包个数
InBytes (incoming bytes) 入流量(字节)
OutBytes (outgoing bytes) 出流量(字节)
参看速率信息
[root@my-LVS01 ~]# ipvsadm -Ln --rate
IP Virtual Server version 1.2.1 (size=1048576)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 10.100.5.98:6030 0 2 0 193 0
-> 10.100.5.86:6030 0 0 0 54 0
-> 10.100.5.87:6030 0 1 0 65 0
-> 10.100.5.88:6030 0 1 0 73 0
--rate选项是显示速率信息
CPS (current connection rate) 每秒连接数
InPPS (current in packet rate) 每秒的入包个数
OutPPS (current out packet rate) 每秒的出包个数
InBPS (current in byte rate) 每秒入流量(字节)
OutBPS (current out byte rate) 每秒入流量(字节)
2.4 其他管理类:
2.4.1 删除所有集群服务:
# ipvsadm -C
该命令与iptables的-F功能类似,执行后会清除所有规则。
2.4.2 保存规则
保存规则至默认配置文件:
# service ipvsadm save
保存规则至指定文件:
# ipvsadm -S > /path/to/somefile
示例:
[root@lvs ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [确定]
2.4.3 载入保存在文件中的规则
# ipvsadm -R < /path/form/somefile
三、lvs的其他注意事项:
- 关于时间同步:各节点间的时间偏差不大于1s,建议使用统一的ntp服务器进行更新时间;
- DR模型中的VIP的MAC广播问题:
在DR模型中,由于每个节点均要配置VIP,因此存在VIP的MAC广播问题,在现在的linux内核中,都提供了相应kernel 参数对MAC广播进行管理,具体如下:
arp_ignore: 定义接收到ARP请求时的响应级别;
0:只要本地配置的有相应地址,就给予响应;
1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;DR模型使用
arp_announce:定义将自己地址向外通告时的通告级别;
0:将本地任何接口上的任何地址向外通告;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;DR模型使用