LVS/DR工作模式详解

LVS/DR工作模式简介:

Client通过路由向Director发送请求,Director接收到Client的请求包,然后根据负载均衡算法选取一台realserver,原封不动的将包转发过去,最后由realserver对报文进行处理,然后重新封装报文直接通过路由回复给用户。而不是再经过Director再发送给用户

优点:可扩展性

这里写图片描述

知识点讲解:
路由器转发了客户端向调度器的请求后,调度器直接转发给后端服务器。因为这个包的目的地址是VIP,后端服务器是拒收的,大家都知道,不是给自己的请求包,自己是不会回应的。所以要给后端的Realserver配置一个VIP(设置在虚拟接口上)。这样就又产生了一个问题,同一个局域网内这么多VIP肯定会引起地址冲突。这时候就需要把Realserver上的VIP隐藏起来,只能自己看到。在linux内核参数内有arp_ignore、arp_announce这两个参数。而且要让这两参数在所有的回环地址和物理地址生效。
arp_ignore = 1 #只回应配置在入站网卡接口上的IP地址的arp广播
arp_announce = 2 #忽略这个IP数据包的源地址并尝试选择能与该地址通信的
本地地址
实验:
系统环境:
平台:CentOS 6.5
Linux防火墙:除作为路由器的机器外。其他机器均关闭防火墙
客户端:192.168.92.10
路由器:eth0:192.168.92.100
eth1:192.168.4.1
调度器:eth0:0:192.168.4.200 VIP
eth0:192.168.4.208 DIP
WEB1:RIP:192.168.4.206 (VIP:192.168.4.200)
WEB2:RIP:192.168.4.207 (VIP:192.168.4.200)
注意事项:
1、调度器VIP配置在虚拟接口eth0:0
2、Realserver的VIP配置在虚拟回环接口lo:0 子网掩码32位
3、Realserver修改内核参数,隐藏VIP防止ARP冲突
操作:

Web1
1、配置网络环境:
[root@web1 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.4.206
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
[root@web1 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.200
NETMASK=255.255.255.255
ONBOOT=yes
BOOTPROTO=none
[root@web1 ~]# cat /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
……
[root@web1 ~]# sysctl -p
[root@web1 ~]#service network restart
[root@web1 ~]#
2、设置web页面,启web服务:
[root@web1 ~]#yum -y install httpd
[root@web1 ~]#echo web1 > /var/www/index.html
[root@web1 ~]# service httpd start;checkconfig httpd on
Web2:
1、配置网络环境:
[root@web2 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.4.207
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
[root@web2 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.200
NETMASK=255.255.255.255
ONBOOT=yes
BOOTPROTO=none
[root@web2~]# cat /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
……
[root@web2 ~]# sysctl -p
[root@web2~]#service network restart
2、设置web页面,启web服务:
[root@web2 ~]#yum -y install httpd
[root@web2 ~]#echo web2 > /var/www/index.html
[root@web2 ~]# service httpd start;checkconfig httpd on
LVS:
1、配置网络环境:
[root@lvs network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.4.208
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
[root@lvs network-scripts]# cat ifcfg-eth0:0
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.4.200
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
[root@lvs~]# cat /etc/sysctl.conf
ip_forward = 1
……
[root@web2 ~]# sysctl -p
[root@lvs ~]#service network restart
2、装包起服务:
[root@lvs ~]#rpm -ivh /misc/cd/Packages/ipvsadm-1.26-2.el6.x86_64.rpm
[root@lvs ~]#service ipvsadm start
[root@lvs ~]#chkconfig ipvsadm on
3、创建集群为DR模式 并添加RealServer
[root@lvs ~]#ipvsadm -A -t 192.168.4.200:80 -s wrr
[root@lvs ~]#ipvsadm -a -t 192.168.4.200:80 -r 192.168.4.206 -g -w 1
[root@lvs ~]#ipvsadm -a -t 192.168.4.200:80 -r 192.168.4.207 -g -w 2
[root@lvs ~]#service ipvsadm save
路由器:
1、配置网络环境
[root@Router network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.92.100
NETMASK=255.255.255.0
[root@Router network-scripts]# cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.4.1
NETMASK=255.255.255.0
2、设置Linux路由器的SNAT、DNAT功能
[root@Router ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp -jSNAT –to-source 192.168.92.100
[root@Router ~]# iptables -t nat -A PREROUTING -d 192.168.92.100 -p tcp –dport 80 -j DNAT –to-destination 192.168.4.200:80
[root@Router ~]# service iptables save

最后由客户端使用curl命令反复连接http://192.168.4.200查看访问的页面是否会轮询到不同的后端真实服务器
Client:
[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.92.10
[root@client ~]# /etc/init.d/network restart
[root@client ~]#curl http://192.168.4.200

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值