一、隐藏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