LVS项目遇到的问题

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/1111783

一、环境

1、基础环境

A、系统:Centos6.3

B、iptables、selinux关闭

C、系统内核参数(负载均衡器、节点)

fs.file-max = 1000000
kernel.core_uses_pid = 1
kernel.msgmax = 1048560
kernel.msgmnb = 1073741824
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
kernel.sysrq = 0
net.core.netdev_max_backlog = 8192
net.core.rmem_default = 2097152
net.core.rmem_max = 16777216
net.core.somaxconn = 8192
net.core.wmem_default = 2097152
net.core.wmem_max = 16777216
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_forward = 1
net.ipv4.ip_local_port_range = 1024    65000
net.ipv4.neigh.default.gc_thresh1 = 10240
net.ipv4.neigh.default.gc_thresh2 = 40960
net.ipv4.neigh.default.gc_thresh3 = 81920
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 51200
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_reordering = 5
net.ipv4.tcp_retrans_collapse = 0
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_sack = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096        16384   4194304
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

二、服务分布

负载均衡器master:

eth0:10.10.10.100(外网)

eth1:172.28.26.119(内网)

负载均衡器backup:

eth0:10.10.10.200(外网)

eth1:172.28.26.120(内网)

VIP:10.10.10.250

node1:

eth0:10.10.10.10(外网)

eth1:172.28.26.121(内网)

node2:

eth0:10.10.10.11(外网)

eth1:172.28.26.122(内网

三、负载均衡器keepalived的配置

[root@zh_lvs_backup ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
#报警功能
        notification_email {
                zhaohaijun@kingsoft.com
        }
        notification_email_from lvs@kingsoft.com
        smtp_server 127.0.0.1
        smtp_connect_timeout 30
        router_id LVS_B_proxy_A
}

vrrp_instance VI_1 {
    state MASTER      (10.10.10.200为BACKUP)
    interface eth0
    virtual_router_id 30
    priority 100     (10.10.10.200为99)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.10.10.250

    }
}

#LVS功能

virtual_server 10.10.10.250 80 {
    delay_loop 6
#    lb_algo wrr
    lb_algo wlc
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 60
    protocol TCP

    real_server 172.28.26.121 80 {
                        weight 1
                        TCP_CHECK {
                                connect_timeout 5
                                nb_get_retry 3
                                delay_before_retry 3
                                connect_port 80
                        }
                }
    real_server 172.28.26.122 80 {
                        weight 1
                        TCP_CHECK {
                                connect_timeout 5
                                nb_get_retry 3
                                delay_before_retry 3
                                connect_port 80
                        }
                }

}

四、节点脚本

cat /sbin/lvs-client.sh

#!/bin/sh
#--------------------------------------------------------
#       by Cooper 2012-06-16 for LVS (real server)
#--------------------------------------------------------

VirtualIP="10.10.10.250"

 

case "$1" in
start)
ifconfig lo:0 $VirtualIP netmask 255.255.255.255 broadcast $VirtualIP up
/sbin/route add -host $VirtualIP dev lo:0
echo "1" > /proc/sys/net/ipv4/ip_forward
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 $VirtualIP
echo "0" > /proc/sys/net/ipv4/ip_forward
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
sysctl -p >/dev/null 2>&1
echo "Realserver Stoped"
;;
restart)
sh $0 stop && sleep 2 && sh $0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

五、问题

客户端请求,负载均衡器也转发了,后端节点返回不了。

六、解决

节点的内核参数加入下面两条:

net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

eth1是内网网卡,,一般情况下,内网网卡来的数据,默认是内网回包,所以返回不了,这两个参数就是取消这个限制,内网网卡来的数据包外网网卡一可以回。

本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/1111783

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
Flutter-解决Try catch出现异常:type ‘_TypeError‘ is not a subtype of type ‘Exception‘ in type cast
Flutter-解决Try catch出现异常:type ‘_TypeError‘ is not a subtype of type ‘Exception‘ in type cast
353 1
|
10月前
|
机器学习/深度学习 人工智能 运维
AI辅助的运维风险预测:智能运维新时代
AI辅助的运维风险预测:智能运维新时代
444 19
AI辅助的运维风险预测:智能运维新时代
|
10月前
|
存储 架构师 容灾
阿里云基础设施高可用最佳实践沙龙上海站圆满举办!
2025年1月9日,阿里云在上海虹桥绿地铂瑞酒店成功举办基础设施高可用最佳实践沙龙NO.2。活动吸引了华东地区多家企业的CTO、架构师和技术从业者参与。专家们分享了高可用的基础知识、分级标准及云端架构实战经验,涵盖计算、存储、网络和云原生等领域,重点讨论了企业如何在阿里云上构建高可用数据中心。现场互动热烈,参会者与专家深入交流,探讨技术应用与合作机会。
|
存储 C语言 Perl
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
|
弹性计算 Cloud Native 应用服务中间件
全景剖析阿里云容器网络数据链路(五)—— Terway ENI-Trunking
本系列联合作者 容器服务 @谢石 近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的颗粒度精细化和可观测性的需求更加强烈。容器网络为了满足客户更高性能和更高的密度,也一直在高速的发展和演进中,这必然对客户对云原生网络的可观测性带来了极高的门槛和挑战。为了提高云原生网络的可观测性,同时便于客户和前后线同学增加对业务链路的可读性
1244 0
全景剖析阿里云容器网络数据链路(五)—— Terway ENI-Trunking
|
安全 网络协议 Shell
高并发服务器的限制有哪些,如何提高并发量
高并发服务器的限制有哪些,如何提高并发量
高并发服务器的限制有哪些,如何提高并发量
|
存储 弹性计算 运维
ACK 集群故障处理与疑难处置 | 学习笔记
快速学习 ACK 集群故障处理与疑难处置
ACK 集群故障处理与疑难处置 | 学习笔记
|
Linux
记录一个解决Arm Linux端U盘挂载时文件名显示乱码、Qt显示乱码的问题
记录一个解决Arm Linux端U盘挂载时文件名显示乱码、Qt显示乱码的问题
661 0
|
机器学习/深度学习 存储 人工智能
AI在数学界的作用和影响
众所周知,数学在科学中占据至关重要的地位。爱因斯坦曾说,“纯数学能使我们发现概念和联系这些概念的规律,给了我们理解自然现象的钥匙。数学之所以比一切其它科学受到尊重,一个理由是因为它的命题是绝对可靠的,无可争辩的,而其它的科学经常处于被新发现的事实推翻的危险。”那么,AI在数学界有哪些作用?AI未来对数学界会有哪些颠覆性影响?现在我们来进行论述和探讨。
592 0
|
Python
pip安装模块报错ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed
pip安装模块报错ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed
720 0