LVS

156 阅读2分钟
    隐藏VIP方法:对外隐藏,对内可见
	kernel parameter
	目标mac地址为全F,交换机触发广播
	/proc/sys/net/ipv4/conf/*IF*/
	arp_ignore:定义接受到ARP请求时的响应级别:
		0:只要本地配置的有相应地址,就给予响应
		1:仅在请求的目标(MAC)地址配置请求到达的接口上的时候,才给予响应;
	arp_announce:定义将自己地址向外通告时的通告级别;
		0:将本地任何接口上的任何地址向外通告
		1:试图仅向目标网络通告与其网络匹配的地址;
		2:仅向与本地接口上地址匹配的网络进行通告
四种静态:
	rr:轮询
	wrr:
	dh:
	sh:
动态调度方法:
	lc:最少连接
	wlc:加权最少连接
	sed:最短期望延迟
	nq:never queue
	LBLC:基于本地的最少连接
	DH:
	LBLCR:基于本地的带复制功能的最少连接
ipvs内核模块
	yum install ipvsadm -y
管理集群服务
	添加: -A -t|u|f service-address [-s scheduler]
	-t TCP协议的集群
	-u UDP协议的集群
	service-address:IP:port
	-f FWM:防火墙标记
	service-address: MARK Number
	修改 -E
	删除 -D -t|u|f service-address
	ipvsadm -A -t 192.168.9.100:80 -s rr
管理集群服务中的RS
	添加:-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] 定义服务器权重
	修改 -e
	删除 -d -t|u|f service-address -r server-address
	#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -g
	#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g
    查看 -L|l
	-n 数字格式显示主机地址和端口
	-stats 统计数据
	-rate 速率
	-timeout 显示tcp、tcpfin和udp的会话超时时长
	-:c 显示当前的ipvs连接状况
	删除所有集群服务
	-C 清空ipvs规则
	保存规则
		-S
		ipvsadm -S > /path/to/somefile
	载入此前的规则
		-R
		ipvsadm -R < /path/from/somefile

配置 vip
	ifconfig eth0:2 192.168.150.100/24
					/24 = netmask 255.255.255.0
					/16 = netmask 255.255.0.0
解除vip
	ifconfig eth0:2 down
	
LVS:

node01:
	ifconfig eth0:8 192.168.150.100/24
node02~node03:
	1)修改内核
		echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
		echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
		echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
		echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
	2)设置隐藏的vip
		ifconfig lo:3 192.168.150.100 netmask 255.255.255.255
			规避死循环
RS中的服务
	node02~node03:
		yum install httpd -y
		service httpd start
		vi /var/www/html/index.html
			from 192.168.150.1x // x 在node02写2 在node03写3
LVS服务配置
	node01:
		yum install ipvsadm
		ipvsadm -A -t 192.168.150.100:80 -s rr
		ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.12 -g -w 1
		ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.13 -g -w 1
		ipvsadm -ln
验证:
	浏览器访问 192.168.150.100 看到负载 疯狂F5
	node01:
		netstat -natp 结论看不到socket连接
	node02~node03:
		netstat -natp 结论看到很多socket连接
	node01:
		ipvsadm -lnc  查看偷窥记录本
		state FIN_WAIT: 连接过,偷窥了所有的包
			  SYN_RECV: 基本上lvs都记录了,证明lvs没事,一定是后边网络层出问题