设为首页 收藏本站
查看: 1374|回复: 0

[经验分享] LVS基于SOCKET流量调度管理之NAT负载模式最佳实践

[复制链接]

尚未签到

发表于 2015-12-24 11:19:48 | 显示全部楼层 |阅读模式
本文主要介绍了如何使用LVS软件搭建NAT负载均衡及在搭建NAT负载均衡的过程中遇到的一些问题,在此分享出来以供大家参考学习,希望对广大博友有一定的参考意义。其中正文内容也附上了keepalived主备服务器的配置信息,以下内容均已经通过测试功能正常,可放心拷贝使用。
第一步:NAT负载模式网络规划
#############################NAT网络拓扑###########################################################
LVS Director机器主:
主机名:ESBLVS01
公网VIP:36.0.0.70
连接外网IP:36.0.0.71
连接内网IP:192.168.0.2
私有VIP:192.168.0.200(该ip地址作为realServer的高可用网关)
子网掩码:255.255.255.0
网关:36.0.0.254
内网网卡不设网关
--------------------------------------------------------------------
LVS Director机器备:
主机名:ESBLVS02
连接外网IP:36.0.0.72
连接内网IP:192.168.0.3
私有VIP:192.168.0.200(该ip地址作为realServer的高可用网关)
子网掩码:255.255.255.0
网关:36.0.0.254
内网网卡不设网关
--------------------------------------------------------------------
RealServer01机器:
主机名:APP1
私网RIP1地址:192.168.0.3
子网掩码:255.255.255.0   
网关设置为调度服务器上的私有VIP:192.168.0.200
RealServer02机器:
主机名:APP3
私网RIP1地址:192.168.0.4
子网掩码:255.255.255.0   
网关设置为调度服务器上的私有VIP:192.168.0.200
RealServer03机器:
主机名:APP3
私网RIP1地址:192.168.0.5
子网掩码:255.255.255.0   
网关设置为调度服务器上的私有VIP:192.168.0.200
########################################################################################
第二步:调整LB调度服务器系统参数
1、开启路由转发功能
#echo 1 > /proc/sys/net/ipv4/ip_forward
2、确保selinux服务和防火墙iptables已经关闭
#getenforce 为disable
#service iptables status 为not running状态
3、手动配置测试lvs调度策略
#!/bin/bash
#It was created by fengzhanhai at 20150325
#The scripts used by manaul control nat loading blancer
VIP=36.0.0.70
RIP1=192.168.0.3
RIP2=192.168.0.4
RIP3=192.168.0.5
DVIP=192.168.0.200
case "$1" in
start)           
/sbin/ifconfig eth1:0 $VIP netmask 255.255.255.0 up
/sbin/ifconfig eth2:0 $DVIP netmask 255.255.255.0 up
#refresh dynamic routing
/sbin/arping -I eth1 -c 3 -s ${VIP} 36.0.0.254 > /dev/null 2>&1
#The Director must be able to forward packets
  echo 1 > /proc/sys/net/ipv4/ip_forward
# Clear ipvsadm rules/services.
  /sbin/ipvsadm -C
# In this recipe, we will use the round-robin scheduling method.
  /sbin/ipvsadm -A -t $VIP:9051 -s rr
# the real server IP (RIP) inside the cluster
  /sbin/ipvsadm -a -t $VIP:9051 -r $RIP1 -m
  /sbin/ipvsadm -a -t $VIP:9051 -r $RIP2 -m
  /sbin/ipvsadm -a -t $VIP:9051 -r $RIP3 -m
  /bin/touch /var/lock/subsys/ipvsadm.lock
;;
stop)
# Reset ipvsadm
  /sbin/ipvsadm -C
# Bring down the VIP interface
  ifconfig eth1:0 down
  ifconfig eth2:0 down
  rm -rf /var/lock/subsys/ipvsadm.lock
;;
status)
  [ -e /var/lock/subsys/ipvsadm.lock ] && echo "ipvs is running..." || echo "ipvsadm is stopped..."
;;
*)
  echo "Usage: $0 {start|stop}"
;;
esac
4、使用keepalived管理LVS的NAT集群配置如下:




  • ! Configuration File for keepalived



  • global_defs {
  • router_id LVS_ESB
  • }


  • vrrp_instance VI_1 {
  •    state MASTER
  •    interface eth1
  •    lvs_sync_daemon_interface eth1
  •    virtual_router_id 125
  •    priority 100
  •    advert_int 1
  •    authentication {
  •        auth_type PASS
  •        auth_pass inzone
  •    }
  •    virtual_ipaddress {
  •       36.0.0.70
  •    }
  • }
  • vrrp_instance VI_2 {
  •    state MASTER
  •    interface eth2
  •    lvs_sync_daemon_interface eth2
  •    virtual_router_id 152
  •    priority 100
  •    advert_int 1
  •    authentication {
  •        auth_type PASS
  •        auth_pass inzone
  •    }
  •    virtual_ipaddress {
  •       192.168.101.100
  •    }
  • }
  • virtual_server 36.0.0.70 9051{
  •    delay_loop 60
  •    lb_algo rr
  •    lb_kind NAT
  •    alpha
  •    protocol TCP
  •    real_server 192.168.101.3 9051{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh SocketRequesterExec 192.168.101.3"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.4 9051{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh SocketRequesterExec 192.168.101.4"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.5 9051{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh SocketRequesterExec 192.168.101.5"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  • }




  • virtual_server 36.0.0.70 40000{
  •    delay_loop 60
  •    lb_algo sh
  •    lb_kind NAT
  •    alpha
  •    protocol TCP


  •    real_server 192.168.101.3 40000{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.3"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.4 40000{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.4"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.5 40000{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.5"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  • }


  • virtual_server 36.0.0.70 40011{
  •    delay_loop 60
  •    lb_algo sh
  •    lb_kind NAT
  •    alpha
  •    protocol TCP


  •    real_server 192.168.101.3 40011{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.3 40011"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.4 40011{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.4 40011"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  •    real_server 192.168.101.5 40011{
  •        weight 1
  •        inhibit_on_failure
  •        MISC_CHECK {
  •        misc_path "./usr/local/bin/esbrequester/misc_chk.sh MQRequesterExec 192.168.101.5 40011"
  •        misc_timeout 30
  •        misc_dynamic
  •        }
  •    }


  • }


  • virtual_server 36.0.0.70 9018{
  •    delay_loop 60
  •    lb_algo rr
  •    lb_kind NAT
  •    alpha
  •    protocol TCP


  •    real_server 192.168.101.3 9018{
  •        weight 1
  •    }


  •    real_server 192.168.101.4 9018{
  •        weight 1
  •    }


  •    real_server 192.168.101.5 9018{
  •        weight 1
  •    }


  • }
#####################################################################################
5、把以上配置拷贝到LVS备调度服务器上并修改MASTER关键字为BACKUP并调小优先级即可
6、启动keepalived:service keepalived start
7、检查地址是否已经接管:ip addr
8、检查后端服务节点是否已经被加入ipvsadm -Ln
9、访问VIP验证业务
至此LVS的NAT模式搭建完成,如果遇到NAT模式下对外VIP无法访问,在调度服务器可以访问的问题,可能是没有开启icmp请检查 /proc/sys/net/ipv4/ip_forward文件内的值是否为1。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-155649-1-1.html 上篇帖子: Lvs负载均衡的配置 下篇帖子: LVS基于socket负载均衡模式高可用集群部署方案实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表