美文网首页
LVS 技术总结(DR模式)

LVS 技术总结(DR模式)

作者: 背麻袋的袋鼠 | 来源:发表于2019-01-02 10:14 被阅读7次

lvs配置脚本 (参数:1:虚IP2:start/stop)

 #/etc/rc.d/init.d/functions
 case "$2" in
 start)
   ifconfig lo:0 "$1" netmask 255.255.255.255 broadcast "$1"
   /sbin/route add -host "$1" dev lo:0
   echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
   echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
   echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
   sysctl -p >/dev/null 2>&1
   echo "RealServer Start OK"
   ;;
  stop)
   ifconfig lo:0 down
   route del "$1" >/dev/null 2>&1
   echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
   echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
   echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
   echo "RealServer Stoped"
   ;;
 *)
   echo "Usage: $0 {start|stop}"
   exit 1
 esac
 exit 0

lvs+keepalived主备机同时做工作机,备用节点负载不到数据的问题

原因:当客户端发送数据包给 VIP .比如我们的 Director1 (Master 主)这个接口正在工作,这时 LVS 能接收到这个包,然后根据 keepalived 的配置进行 load balance .这时 Director1 会使用 LVS-DR 的功能给包路由给自己或者 Director2 (Backup).这时有个问题.在这个例子中因为我们使用了keepalived .这时 Director2 这台是一台 VIP 的备份服务器.会立即启动使用 ipvsadm 的规则来配置这台服务器做备份的处理.来使得更快的故障转移.所以这些规则 Director2 主机都会存在.这就有问题了.当从 Director1 (Master 主),比如使用 rr .会转发大约 50% 的包从 Director1 到 Director2 (Backup)的 514 的端口.这时因为 Director2 因为这些 LVS-DR 的配置规则会接着给这些包做一次 load balance .又发回去给 Director1.这时会产生一个死的循环.
解决方案:给进入 eth0 的包打包 mark 的标记,当数据包是发给 VIP:514 并且 MAC 不其它 LVS 服务器的话. 才做个 mark ,这样才会对指定的 fwmark 进行 loadbalance 放入到 LVS 中处理.只要数据包是从任意其它的 MAC 地址(非 LVS 的转发)会被发往 VIP:port, 会不在进行 loadbalanced 而是直接转给后面监听的 demon 程序进行应用的处理.实际就是我们使用 iptables 来对进入的流量设置 MARK.然后配置 keepalived 只处理有 MARK 过的流量.不在使用以前绑定 VIP 和端口
步骤:
在LVS 1上执行

iptables -t mangle -I PREROUTING -d VIP -p udp -m udp --dportVPORT -m mac ! --mac -source MAC_Director2 -j MARK --set -mark 0x3VIP 为VIP地址
VPORT 为服务端口MAC_Director2 是备机的MAC (keepalived 之间互相监听的那块网卡)

在LVS2上执行

iptables -t mangle -I PREROUTING -d VIP -p udp -m udp --dportVPORT -m mac ! --mac -source $MAC_Director1 -j MARK --set -mark 0x4

VIP 为VIP地址VPORT 为服务端口
$MAC_Director1 是主 的MAC (keepalived 之间互相监听的那块网卡)

若以上步骤执行报错iptables v1.4.7: Bad mac address "--source",将--mac -source 之间的空格去掉就可以

然后改下LVS1 的keepalived配置文件 #主
vrrp_instance VIP_1 {
interface eth0
state MASTER
virtual_router_id 55
priority 100
virtual_ipaddress {
192.168.20.160
}
}
virtual_server fwmark 3 8080 { ####fwmark 3 为刚才用iptables打的标签
delay_loop 3
lb_algo rr
lb_kind DR
protocol UDP
sorry_server 127.0.0.1 8080
real_server 192.168.20.135 8080 {
UDP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.20.136 8080 {
UDP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

然后改下LVS2 的keepalived配置文件 #备

vrrp_instance VIP_1 {
interface eth0
state BACKUP
virtual_router_id 55
priority 80
virtual_ipaddress {
192.168.20.160
}
}
virtual_server fwmark 4 80 { ###fwmark 4 为刚才用iptables打的标签
delay_loop 3
lb_algo rr
lb_kind DR
protocol UDP
sorry_server 127.0.0.1 8080
real_server 192.168.20.135 8080 {
UDP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.20.136 8080 {
UDP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

相关文章

  • LVS 技术总结(DR模式)

    lvs配置脚本 (参数:2:start/stop) lvs+keepalived主备机同时做工作机,备用节点负载不...

  • LVS DR模式搭建、keepalived + LVS

    目录 一、LVS DR模式搭建二、keepalived + LVS 一、LVS DR模式搭建 实验环境:#假设以下...

  • LVS 简介

    集群类型 lvs-nat 模式 lvs-dr 模式 lvs-tun 模式 lvs-fullnat 模式 LVS 工...

  • LVS DR模式搭建、keepalived lvs

    LVS DR模式搭建 LVS DR模式搭建 分发器上操作 两台rs上操作 测试 keepalived lvs ke...

  • linux运维之LVS(二)

    关于LVS的几种工作模式: 1.关于DR模式: 1)LVS DR模式 原理: (1)通过更改数据包的目的MAC地址...

  • LVS的三种工作模式

    一、LVS的三种工作模式 LVS负载均衡常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用...

  • LVS系列之三:部署LVS的DR模式

    title: LVS系列之三:部署LVS的DR模式categories: Linuxtags:- LVStimez...

  • LVS DR

    LVS lvs 搭建略 LVS 的三种工作模式 lvs DR(直接路由) lvs NAT(网络地址转换) lv...

  • 架构设计之:LVS 三种模式

    LVS三种模式 ● NAT:网络地址转换模式● DR:直接路由模式● TUN:隧道模式 LVS/NAT 流程 客户...

  • LVS三种模式(转)

    LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.l...

网友评论

      本文标题:LVS 技术总结(DR模式)

      本文链接:https://www.haomeiwen.com/subject/knbalqtx.html