LVS-DR数据包流向分析介绍

发布时间:2020-04-16 15:45:02 作者:三月
来源:亿速云 阅读:456

下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用亿速云在行业内累计的经验来做一个解答。

LVS-DR数据包流向分析

LVS-DR中的ARP问题

解决ARP的两个问题的设置方法

Keepalived

LVS-DR数据包流向分析介绍

Keepalived工具介绍

专为LVS和HA设计的一-款健康检查工具

Keepalived实现原理剖析

常用配置选项讲解
Keepalived备份服务器的配置与master的配置有三个选项不同

负载均衡+高可用群集

LVS——DR模式+keepalived群集实践

LVS-DR数据包流向分析介绍

实验环境

在lvs1调度服务器上安装keepalived,ipvsadm服务
root@lvs1 ~]# yum install keepalived ipvsadm -y
[root@lvs1 ~]# vim /etc/sysctl.conf             //配置路由转发功能
net.ipv4.ip_forward=1                           //路由功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0      //proc响应关闭重定向功能
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs1 ~]# sysctl -p                     //加载生效
[root@lvs1 ~]# cd /etc/sysconfig/network-scripts/
[root@lvs1 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0      //复制虚拟网卡的配置文件
[root@lvs1 network-scripts]# vim ifcfg-ens33:0
DEVICE=ens33:0                                    //添加配置文件信息,原有的信息删除
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@lvs1 network-scripts]# cd /etc/init.d/            //创建脚本便于service使用
[root@lvs1 init.d]# vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10                              //虚拟ip
RIP1=192.168.100.200                           //真实web服务器ip
RIP2=192.168.100.222
case "$1" in
start)
                /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm               //保存配置
                systemctl start ipvsadm                                       //启动服务
                /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up   //设置ens33:0地址,广播地址,子网掩码,并开启
                /sbin/route add -host $VIP dev ens33:0               //添加路由网段信息
                /sbin/ipvsadm -A -t $VIP:80 -s rr                    //指定虚拟服务访问入口,指定轮询算法
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g               //指定真实服务器,dr模式
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
                echo "ipvsadm starting --------------------[ok]"
                ;;
stop)
                /sbin/ipvsadm -C                               //清空缓存
                systemctl stop ipvsadm                        //关闭服务
                ifconfig ens33:0 down                          //关闭接口
                route del $VIP                                   //删除路由信息
                echo "ipvsamd stoped----------------------[ok]"
                 ;;
status)
                if [ ! -e /var/lock/subsys/ipvsadm ];then                  //判断文件存在与否决定状态
                echo "ipvsadm stoped---------------"
                exit 1
                                else
                                echo "ipvsamd Runing ---------[ok]"
                fi
                ;;
*)
                echo "Usage: $0 {start|stop|status}"
                exit 1
esac
exit 0
[root@lvs1 init.d]# chmod +x dr.sh                                //给执行权限
修改lvs1服务器为仅主机模式,并修改网卡配置
[root@lvs1 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33       //修改网卡信息
BOOTPROTO=static
IPADDR=192.168.100.110
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@lvs1 init.d]# service network restart                //重启网络服务
[root@lvs1 init.d]# ifup ens33:0                          //开启虚拟网卡
[root@lvs1 init.d]# service dr.sh start                      //开启lvs服务
ipvsadm starting --------------------[ok]
[root@lvs1 init.d]# systemctl stop firewalld.service              //关闭防火墙
[root@lvs1 init.d]# setenforce 0
修改lvs2调度服务器配置
[root@lvs2 ~]# yum install keepalived ipvsadm -y
[root@lvs2 ~]# vim /etc/sysctl.conf                 //配置路由转发功能
net.ipv4.ip_forward=1                        //路由功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0     //proc响应关闭重定向功能
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs2 ~]# sysctl -p                   //加载生效
[root@lvs2 ~]# cd /etc/sysconfig/network-scripts/
[root@lvs2 network-scripts]# cp -p ifcfg-ens33 ifcfg-ens33:0    //复制虚拟网卡的配置文件
[root@lvs2 network-scripts]# vim ifcfg-ens33:0
DEVICE=ens33:0                       //添加配置文件信息,原有的信息删除
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
[root@lvs2 network-scripts]# cd /etc/init.d/             //创建脚本便于service使用
[root@lvs2 init.d]# vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10      //虚拟ip
RIP1=192.168.100.200          //真实web服务器ip
RIP2=192.168.100.222
case "$1" in
start)
                /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm     //保存配置
                systemctl start ipvsadm             //启动服务
                /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up   //设置ens33:0地址,广播地址,子网掩码,并开启
                /sbin/route add -host $VIP dev ens33:0            //添加路由网段信息
                /sbin/ipvsadm -A -t $VIP:80 -s rr               //指定虚拟服务访问入口,指定轮询算法
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g         //指定真实服务器,dr模式
                /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
                echo "ipvsadm starting --------------------[ok]"
                ;;
stop)
                /sbin/ipvsadm -C           //清空缓存
                systemctl stop ipvsadm        //关闭服务
                ifconfig ens33:0 down          //关闭接口
                route del $VIP           //删除路由信息
                echo "ipvsamd stoped----------------------[ok]"
                 ;;
status)
                if [ ! -e /var/lock/subsys/ipvsadm ];then        //判断文件存在与否决定状态
                echo "ipvsadm stoped---------------"
                exit 1
                                else
                                echo "ipvsamd Runing ---------[ok]"
                fi
                ;;
*)
                echo "Usage: $0 {start|stop|status}"
                exit 1
esac
exit 0
[root@lvs2 init.d]# chmod +x dr.sh             //给执行权限

[root@lvs2 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33         //修改网卡信息,切换为仅主机模式
BOOTPROTO=static
IPADDR=192.168.100.111
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@lvs2 init.d]# service network restart           //重启网络服务
[root@lvs2 init.d]# ifup ens33:0                  //开启虚拟网卡
[root@lvs2 init.d]# service dr.sh start              //开启lvs服务
ipvsadm starting --------------------[ok]
[root@lvs2 init.d]# systemctl stop firewalld.service   ##关闭防火墙
[root@lvs2 init.d]# setenforce 0
配置web1节点服务器
[root@web1 ~]# yum install httpd -y         //安装web服务
[root@web1 ~]# systemctl stop firewalld.service          //关闭防火墙
[root@web1 ~]# setenforce 0
[root@web1 ~]# echo "this is kgc web" > /var/www/html/index.html        //创建网站页面
[root@web1 ~]# cd /etc/sysconfig/network-scripts/   
[root@web1 network-scripts]# cp -p ifcfg-lo ifcfg-lo:0          //修改回环网卡的虚拟网卡
[root@web1 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
[root@web1 network-scripts]# cd /etc/init.d/
[root@web1 init.d]# vim web.sh                 //编写arp脚本
#!/bin/bash
VIP=192.168.100.10
                case "$1" in
                start)
                                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                                /sbin/route add -host $VIP dev lo:0
                                echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore       //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
                                sysctl -p >/dev/null 2>&1
                                echo "RealServer Start OK "
                                ;;
                stop)
                                ifconfig lo:0 down
                                route del $VIP /dev/null 2>&1
                                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore       //arp开启
                                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 "RealServer Stopd"
                                ;;
                *)
                                echo "Usage: $0 {start|stop}"
                                exit 1
                esac
                exit 0
[root@web1 init.d]# chmod +x web.sh          //给权限
配置web1网卡
[root@web1 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33        //修改网卡,仅主机模式
BOOTPROTO=static
IPADDR=192.168.100.200
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@web1 init.d]# service network restart         //重启网络服务
[root@web1 init.d]# service web.sh start         //启动脚本
RealServer Start OK 
[root@web1 init.d]# systemctl start httpd.service       //开启web服务
[root@web1 init.d]# ifup lo:0                 //开启回环虚拟网卡
配置web2节点服务器和web1相同的配置
[root@web2 ~]# yum install httpd -y               //安装web服务
[root@web2 ~]# systemctl stop firewalld.service      //关闭防火墙
[root@web2 ~]# setenforce 0
[root@web2 ~]# echo "this is accp web" > /var/www/html/index.html     //创建网站页面
[root@web2 ~]# cd /etc/sysconfig/network-scripts/   
[root@web2 network-scripts]# cp -p ifcfg-lo ifcfg-lo:0        //修改回环网卡的虚拟网卡
[root@web2 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
[root@web2 network-scripts]# cd /etc/init.d/
[root@web2 init.d]# vim web.sh                //编写arp脚本
#!/bin/bash
VIP=192.168.100.10
                case "$1" in
                start)
                                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                                /sbin/route add -host $VIP dev lo:0
                                echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore      //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
                                sysctl -p >/dev/null 2>&1
                                echo "RealServer Start OK "
                                ;;
                stop)
                                ifconfig lo:0 down
                                route del $VIP /dev/null 2>&1
                                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore       //arp开启
                                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 "RealServer Stopd"
                                ;;
                *)
                                echo "Usage: $0 {start|stop}"
                                exit 1
                esac
                exit 0
[root@web2 init.d]# chmod +x web.sh             //给权限
配置web2网卡
[root@web2 init.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33      //修改网卡,仅主机模式
BOOTPROTO=static
IPADDR=192.168.80.222
NETMASK=255.255.255.0
GATEWAY=192.168.80.1
[root@web2init.d]# service network restart           //重启网络服务
[root@web2init.d]# service web.sh start            //启动脚本
RealServer Start OK 
[root@web2 init.d]# systemctl start httpd.service       //开启web服务
[root@web2 init.d]# ifup lo:0            //开启回环虚拟网卡
配置lvs1上keepalived部署
[root@lvs1 init.d]# vim /etc/keepalived/keepalived.conf
global_defs {
    ...
    smtp_server 127.0.0.1              //指向本地
    router_id LVS_01        //指定名称,备份服务器不同名称
    ...             
}

vrrp_instance VI_1 {
    state MASTER                 //备份服务器是BACKUP
    virtual_router_id 10        //组号相同
    ...
    auth_pass abc123             //验证密码
    priority 100                //优先级备份小于主服务器
    ...
    virtual_ipaddress {
                192.168.100.10
        }
    ...
virtual_server 192.168.100.10 80 {
...
    real_server 192.168.100.200 80 {
                weight 1
                TCP_CHECK {
                        connect_port 80       
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                }   
        }   
        real_server 192.168.100.222 80 {
                weight 1
                TCP_CHECK {                       //tcp
                        connect_port 80                  //添加端口
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                }   
        }    
}
[root@lvs1 init.d]# systemctl start keepalived.service 
[root@lvs1 init.d]# scp /etc/keepalived/keepalived.conf root@192.168.100.111:/etc/keepalived/    //复制到lvs2服务器上
在lvs2服务器上修改keepalived配置文件
[root@lvs2 init.d]# vim /etc/keepalived/keepalived.conf   ##修改keepalive配置文件
router_id LVS_02   ##router_id不能相同
...
state BACKUP     ##备服务器
...
priority 90    ##优先级低于主服务器
[root@lvs2 init.d]# systemctl start keepalived.service    ##启动keepalive服务
使用client测试机测试(访问不到重启全部服务即可)

LVS-DR数据包流向分析介绍

看了以上关于LVS-DR数据包流向分析介绍,如果大家还有什么地方需要了解的可以在亿速云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,亿速云技术工程师在行业内拥有十几年的经验了。亿速云官网链接www.yisu.com

推荐阅读:
  1. LVS-DR与 Keepalived群集
  2. 部署LVS-DR与 Keepalived群集(实战!!!)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

lvs-dr数据包 %d

上一篇:Azure Traffic Manager的详细介绍

下一篇:怎么样利用Nginx实现负载均衡的Tomcat集群

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》