LVS - 直接路由(DR)模式示例

1、调度服务器的lvs_serv_dr.sh脚本

#! /bin/bash

#定义虚拟IP和实服务IP变量
Vip=192.168.2.200
Rs1=192.168.2.222
Rs2=192.168.2.231

source /etc/rc.d/init.d/functions
case "$1" in
start)
    echo "Start LVS of Server..."
    # 在Director服务器上基于物理网卡eth0建立一个虚拟网络接口(新增一个子网卡,设置它的虚拟IP和广播地址以及子网掩码并启动)
    /sbin/ifconfig eth0:1 $Vip broadcast $Vip netmask 255.255.255.255 up
    # 打开Director服务器上开启路由转发功能(多网卡下的网卡间数据包转发)
    #echo 1 > /proc/sys/net/ipv4/ip_forward
    # 将虚拟地址添加到路由表
    /sbin/route add -host $Vip dev eth0:1
    # 清除所有的虚拟服务器记录
    /sbin/ipvsadm -C
    # 在内核虚拟服务器表中添加一台虚拟服务器(指定为tcp协议,指定虚拟ip和prot,指定调度算法)
    /sbin/ipvsadm -A -t $Vip:6500 -s rr  # rr 表示轮询调度
    # 在一台虚拟服务器中增加一台新的真实服务器(执行虚拟服务对应真实服务的关系,指定负载均衡模式)
    /sbin/ipvsadm -a -t $Vip:6500 -r $Rs1:6500 -g  # -g 表示DR模式
    /sbin/ipvsadm -a -t $Vip:6500 -r $Rs2:6500 -g
    # 启动LVS
    /sbin/ipvsadm
    ;;
    
stop)
    echo "Close LVS of Server..."
    # 清除所有的虚拟服务器记录
    /sbin/ipvsadm -C
    # 关闭这个子网卡
    /sbin/ifconfig eth0:1 down
    ;;
    
*)    
    echo "Usage: $0 {start|stop}"
    ;;  
       
esac     
exit 0

2、真实服务器的lvs_real_dr.sh脚本 

#!/bin/bash

#定义虚拟IP变量
Vip=192.168.2.200

source /etc/rc.d/init.d/functions
case "$1" in

start)
    echo "Start Real Server..."
    # 在Real服务器上基于回环虚拟网卡lo建立一个虚拟网络接口
    /sbin/ifconfig lo:1 $Vip broadcast $Vip netmask 255.255.255.255 up
    # 将虚拟地址添加到路由表
    /sbin/route add -host $Vip dev lo:1
    # 定义对目标地址为本地IP的ARP询问的应答模式(1表示只应答目标Ip是接收请求的网络接口(非网卡,双接口可共用一个网卡)本地地址的ARP查询请求)
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    # 控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址(2表示忽略Ip数据包源地址,选择可能接收到该ARP回应的网络接口来进行发送)
    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
    ;;
    
stop)
    echo "Close Real Server..."
    # 关闭这个网卡
    ifconfig lo:1 down
    # 恢复arp_ignore和arp_announce的值
    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 "Usage: "$1" {start|stop}"
    ;;
    
esac
exit 0


3、补充说明

    1). Director 上需要安装 ipvsadm,命令:yum install -y ipvsadm

    2). 脚本使用方式:./lvs_serv_dr.sh start




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值