Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux系统 > » 正文

VM linux下的LVS-DR实例

来源: 未知 分享至:

 

DIP:调度器的IP地址

RIP:后台真实服务器(realserver)IP地址

VIP:就是用于服务提供的虚拟IP

 

LVSDR模式比较其NAT模式复杂,也不容易实现,因为这种模式更接近与基于硬件的负载均衡,虽然性能较硬件的负载均衡调度还有差距,但是与NATTUN模式性能有了较大的提高,其要求调度器和realserver在同一个网段内(可以使用交换机相连,当然也可以基于IP的网络连接),在这里调度器上仅仅使用一张网卡即可,DIP是否等于VIP都可以,DT模式最大的优势在于对服务质量的大幅提高,同时应采取相关的设置对realserverARP做的某些限制。

 

具体实现过程可以这么来说:

1、  客户端发来请求报文到调度器,调度器接到分包不做深入的处理,仅仅把目标MAC地址根据算法修改成realserver pool里的某台真实服务器的MAC地址,同时在缓存一份连接记录(确保此次连接的所有报文都传到同一台realserver上)

2、  Realserver接到报文,根据要求做相关的处理,处理结束之后,根据自身网卡绑定的VIP地址,改写报文的源、目标地址,直接把报文回复给客户端,而不再经过调度器,在客观上减轻了调度器的负担。

实验的平台三台VMlinux服务器主机(CentOS 5.5,内核是2.6版本的是默认支持LVS的,所以不需要重新编译内核,可以直接使用),其中一台用作调度器,另外两台用作realserver

 

第一:在调度器上的设置:

[root@localhost ~]# yum -y install ipvsadm   //安装LVS管理工具

[root@localhost ~]# ifconfig    //查看初始的网卡信息(这里仅仅采用一张网卡)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:09:22:5D  

          inet addr:192.168.1.196  Bcast:192.168.1.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe09:225d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:17657 errors:0 dropped:0 overruns:0 frame:0

          TX packets:17945 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:7404853 (7.0 MiB)  TX bytes:10817894 (10.3 MiB)

          Interrupt:169 Base address:0x2000

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:88 errors:0 dropped:0 overruns:0 frame:0

          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:6797 (6.6 KiB)  TX bytes:6797 (6.6 KiB)

[root@localhost ~]# vi /etc/init.d/lvsdr   //编写集群管理脚本,当然你也可以自己逐条添加

#!/bin/bash

#description:start LVS of Directorserver DR

VIP=192.168.1.200

RIP1=192.168.1.193

RIP2=192.168.1.195

#./etc/rc.d/init.d/functions

case "$1" in

        start)

        echo "start LVS of DirectorServer DR"

        /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

        /sbin/route add -host $VIP dev eth0:0

        echo "1">/proc/sys/net/ipv4/ip_forward

        /sbin/ipvadm -C

        /sbin/ipvsadm -A -t $VIP:80 -s rr           //仍然是轮度算法

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 –g     //-g表示采用直接路由模式

        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g

        /sbin/ipvsadm

        ;;

        stop)

        echo "stop LVS of DirectorServer DR"

        echo "0" >/proc/sys/net/ipv4/ip_forward

        /sbin/ipvsadm -C

        /sbin/ifconfig eth0:0 down

        ;;

        *)

        echo "Usage:$0{start|stop}"

        exit 1

 esac

[root@localhost ~]# chmod a+x /etc/init.d/lvsndr   //加可执行权限

[root@localhost ~]# /etc/init.d/lvsdr start

start LVS of DirectorServer DR

/etc/init.d/lvsdr: line 13: /sbin/ipvadm: No such file or directory

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.200:http rr

  -> 192.168.1.195:http           Route   1      0          0         

  -> 192.168.1.193:http


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史