LVS跨网段DR模型与Firewall Mark

环境规划

在这里插入图片描述
按照上图配置好ip地址

路由器开启路由转发功能

路由器开启路由功能
[router]#

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

RS服务器的配置

[RS1]#
[RS2]#

vim lvs_dr_rs.sh
#!/bin/bash
vip=10.0.0.100
mask='255.255.255.255'
dev=lo:1
rpm -q httpd &> /dev/null || yum -y install httpd &> /dev/null
service httpd start &> /dev/null && echo "The httpd Server is Ready"
echo "<h1>`hostname`</h1>" > /var/www/html/index.html
case $1 in
start)
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig $dev $vip netmask $mask #broadcast $vip up
        #route add -host $vip dev $dev
echo "The RS Server is Ready"
;;
stop)
        ifconfig $dev down
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
        echo "Usage: $(basename $0) start|stop"
        exit 1
;;
esac

bash lvs_dr_rs.sh start

lvs服务器的配置

[lvs]#

yum install ipvsadm -y

vim lvs_dr_vs.sh
#!/bin/bash
vip='10.0.0.100'
iface='lo:1'
mask='255.255.255.255'
port='80'
rs1='192.168.43.27'
rs2='192.168.43.37'
scheduler='wrr'
type='-g'
case $1 in
start)
        ifconfig $iface $vip netmask $mask #broadcast $vip up
        iptables -F
        ipvsadm -A -t ${vip}:${port} -s $scheduler
        ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
        ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
;;
stop)
        ipvsadm -C
        ifconfig $iface down
;;
*)
        echo "Usage $(basename $0) start|stop"
exit 1
esac

bash lvs_dr_vs.sh start

客户端测试

[Client]#

while : ;do curl http://10.0.0.100;sleep 0.5; done

注意:

  1. 在 VMware Workstation中,如果在开机状态下添加网卡,是不会添加直连路由的(在没有重启的情况下)
  2. 以上实验做复杂了,可以将 router 的 192.168.43.7/24 这个ip去掉,配置不变。

Firewall Mark

借助于防火墙标记来分类报文,而后基于标记定义集群服务;可将多个不同的应用使用同一个集群服务进行调度

RS服务器上开启https
[RS1]#
[RS2]#

yum install mod_ssl -y 
systemctl restart httpd

防火墙标记
[lvs]#

iptables -t mangle -A PREROUTING -d 10.0.0.100 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 10

添加lvs规则
[lvs]#

ipvsadm -C
ipvsadm -A -f 10 -s rr
ipvsadm -a -f 10 -r 192.168.43.27 -g
ipvsadm -a -f 10 -r 192.168.43.37 -g

客户端测试
[Client]#

while : ;do curl http://10.0.0.100;curl -k https://10.0.0.100;sleep 0.5; done

持久连接

持久连接( lvs persistence )模板:实现无论使用任何调度算法,在一段时间内(默认360s ),能够实现将来自同一个地址的请求始终发往同一个RS
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
持久连接实现方式:

  1. 每端口持久(PPC):每个端口定义为一个集群服务,每集群服务单独调度
  2. 每防火墙标记持久(PFWMC):基于防火墙标记定义集群服务;可实现将多个端口上的应用统一调度,即所谓的port Affinity
  3. 每客户端持久(PCC):基于0端口(表示所有服务)定义集群服务,即将客户端对所有应用的请求都调度至后端主机,必须定义为持久模式
  4. 举例
ipvsadm -E -f 10 -s rr -p
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值