keepalived 的vip keepalived的vip可以做端口转发吗_keepalived 的vip

1、配置三台虚拟机,其中一台作为LVS负载均衡服务器,另外两台作为real server(RS)。需要将三台机子的IP地址配置在同一个网段之内。

2、将node01作为负载均衡LVS服务器:

            ①其eth0网卡的地址即为DIP的地址,还需要为其配置VIP地址:为eth0网卡添加子网卡(如eth0:8)IP地址作为VIP地址

            ②将node01的ip-forward转发功能开启,实现数据由VIP自动转发至DIP。操作:修改ip_forward文件内容为1(不能使用vi)

出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

3、调整RS的通告级别

    问题描述:在DR模型中,用户Client对LVS的VIP地址进行请求,LVS将请求分发给RS处理,RS将处理结果直接通过运营商网络发送回Client,故RS就必须要持有VIP地址才能与Client顺利通信。而为了能让RS持有VIP并且不暴露给外界(如果暴露会引起混乱),一般采用将VIP地址配置给本机LO(local本地回环接口,外界无法访问)的子接口下来实现。除此之外,为了防止RS响应对VIP的ARP请求,对RS的eth0网卡的arp_ignore和arp_announce参数进行配置。

arp_ignore  定义收到ARP请求时的响应级别

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求—>即只要网卡知道的IP地址中符合条件的都会响应,这样就会暴露隐藏的VIP 

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求 

arp_announce  定义将自己的地址向外通告时的通告级别 (网卡一通电会将自己的地址向外通告)

0 - 将本地任何接口上的任何地址向外通告  ——>会暴露VIP

2 - 仅向与本地接口上地址匹配的网络进行通告(即eth0只会将自己的MAC地址发送,不会暴露出VIP)

(注意:proc目录下的文件修改不能用vi,只能用重定向追加覆盖) 

其他注意事项:在给RS的回环接口LO配置VIP时,一定要将子网掩码设置成255.255.255.255即自己独立一个子网,如果配成三个255,就会出现本机的eth0和LO在同一个网段下,由于LO离内核更近,故拥有更高的优先级,这样本机向外发出的包就会发给LO导致发送不出去。

4、为RS下载httpd并启动服务 

5、配置LVS服务器

     下载ipvsadm,并配置  ipvsadm指令详解

          例:       

ipvsadm -A -t 192.168.42.100:80 -s rr  
设置规则:将访问192.168.42.100的80端口的TCP请求,通过轮询的方式进行负载均衡
 接着,为此规则添加RS
ipvsadm -a -t 192.168.42.100:80 -r 192.168.42.12 -g

6、用浏览器对LVS服务器进行访问,查看响应返回信息  

PS:    TCP连接,客户机至于RS握手而不与LVS握手

提出问题:  

            1、若RS有机器宕机,就会出现有些客户端请求无法响应

            2、LVS出现宕机

           即出现集群中无法忽视的单点故障

  LVS宕机解决方案:    即实现高可用

          主/备模型,由于只能有一台LVS服务器拥有公网VIP地址,故多台LVS无法共同服务,采用一台提供服务,另外几台处于热等待状态,若主LVS挂掉,得到VIP地址的备LVS立刻能提供服务

  继续提问题:

           1、主LVS挂掉之后,由哪一个从机顶替

           2、各个从LVS服务器怎么才能知道主LVS是否挂掉

解决方案:由主LVS隔一段时间向网络广播自己的状态,若一段时间内从LVS未接收到主LVS的状态,则从LVS采用谦让制选择他们当中优先级最大的从LVS顶替

7、采用KeepAlive进程来解决LVS单点故障问题,实现高可用,也可对于RS的宕机问题,采用健康检查。

      ps:健康检查不能只采用ping的方式(因为ping通只能说明网络的下三层是正常联通的,而不能说明上层的进程通讯正常)

通过keepalive可直接配置网卡和配置LVS负载均衡,故将前一个实验配置的网卡down掉,并把ipvsadm的配置删除

修改keepalived.conf文件,主要配置三个东西:①VRRP虚拟路由协议(配置master的VIP地址) ②virtual server 即配置LVS参数    ③配置RS的健康检查

注意:进行轮询实验时要设置连接保持时间为0,不然无法出现轮询现象。还有keepalived.conf中vrrp_strict需要注释掉,不然外网无法ping通VIP

keepalived的缺陷:由于keepalive属于一个进程提供服务,也会出现异常故障,若其出现异常,将会导致所有的LVS都为自己配上VIP,数据包发送回出现混乱,故也无法保证高可用