一、隐藏VIP方法:对外隐藏,对内可见
1、Kernel parameter
- 目标mac地址为全F,交换机触发广播
- /proc/sys/net/ipv4/conf/*IF*/
- arp_ignore:定义接受到ARP请求时的响应级别
0(默认):只要本地配置的有相应地址,就给予响应
1:仅在请求的目标(mac)地址配置请求到达的接口上的时候,才给予响应。
- arp_announce:定义将自己地址向外通告时的通告级别
0(默认):将本地任何接口上的任何地址向外通告
1:试图仅向目标网络通告与其网络匹配的地址
2:仅向与本地接口上地址匹配的网络进行通告
2、名词解析
LVS(Linux Virtual Server):Linux虚拟服务器,是一个虚拟的服务器集群系统。
ipvs(IP Virtual Server):嵌入到linux内核,是内核的一个模块
ipvsadm(IP Virtual Server Admin):ipvs的管理应用程序
3、LVS类型
- NAT:地址转换
- DR:直接路由
- TUN:隧道
4、LVS调度方法
四种静态:
- rr(轮询)
- wrr(加权)
- dh
- sh
七种动态:
- lc(最少连接)
- wlc(加权最少连接 - 默认):偷看数据包传输控制层的Flag标志,来计算服务器的连接数。
- sed(最短期望延迟)
- nq(never queue)
- LBLC(基于本地的最少连接)
- DH
- LBLCR(基于本地的带复制功能的最少连接)
二、监控多个端口号
1、安装ipvs的管理应用程序:ipvsadm
yum install ipvsadm -y
2、LVS收到什么包时触发负载的设置
添加: -A -t|u|f service-address [-s scheduler]
- -A:--add-service 在服务器列表中新添加一条新的虚拟服务器记录
- -t:TCP协议的集群
- -u:UDP协议的集群
service-address IP:PORT
- -f:FWM - 防火墙标记
service-address:Mark Number
- -s:调度算法
修改:-E
删除:-D -t|u|f service-address
同一个LVS可以对多个端口进行负载:
ipvsadm -A -t 192.168.217.100:80 -s rr
ipvsadm -A -t 192.168.9.15:8080 -s rr
3、触发负载后,给那些负载的设置
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
- -a --add-server 在服务器表中添加一条新的真实主机记录
- -t|u|f service-address:事先定义好的某集群服务
- -r server-address:某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射
- -g:DR(LVS类型)
- -i:TUN(LVS类型)
- -m:NAT(LVS类型)
- -w weight:定义服务器权重
修改:-e
删除:-d -t|u|f service-address -r server-address
ipvsadm -a -t 192.168.217.100:80 -r 192.168.217.12 -g
ipvsadm -a -t 192.168.217.100:80 -r 192.168.217.13 -g
查看
- -L|l
- --n:数字格式显示主机地址和端口
- --stats:统计数据
- --rate:速率
- --timeout:显示tcp、tcpfin和udp的会话超时时长
- --c:显示当前ipvs的连接状况(LVS负载的记录)
删除所有集群服务
- -C:清空ipvs规则
保存规则
- -S
ipvsadm -S > /path/to/somefile
载入此前的规则
- -R
ipvsadm -R < /path/form/somefile