zoukankan      html  css  js  c++  java
  • LVS的DR模型实现 Alex

     

    DR模型需要LVS服务器和RS服务器必须在一个网段,中间必须是交换机,不能是路由器,DR模型也可也叫直接路由

    DR需要在所有的主机上都需要配置VIP

      解决地址冲突的方式有三种

    (1) 在前端网关做静态绑定
    (2) 在各RS使用arptables
    (3) 在各RS修改内核参数,来限制arp响应和通告的级别
      限制响应级别:arp_ignore
    0:默认值,表示可使用本地任意接口上配置的任意地址进行响应
    1: 仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

    (通俗易懂就是别人发请求我不搭理你)


      限制通告级别:arp_announce
    0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告
    1:尽量避免将接口信息向非直接连接网络进行通告
    2:必须避免将接口信息向非本网络进行通告

    (对外也不公告)

      一、配置路由 IP地址:192.168.1.3(无任何防火墙规则)

    1、路由服务器开启路由转发

    vi /etc/sysctl.conf 
    net.ipv4.ip_forward=1

    2、路由生效:

    sysctl -p

    3、返回如下,则表示生效成功

    net.ipv4.ip_forward = 1

      二、配置RS服务器

     1、安装httpd包

    yum install httpd -y

    2、开启httpd服务,并设置为开机自启

    systemctl start httpd
    systemctl enable httpd

    3、新建测试页面

    echo 192.168.1.5 RS1 > /var/www/html/index.html 
    echo 192.168.1.6 RS2 > /var/www/html/index.html 

    4、在RS服务器和LVS服务器上都设置网关为路由服务器192.168.1.3

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    GATEWAY=192.168.1.3
    

    5、在LVS服务器上绑定VIP

     添加一个IP地址

    ip a a 192.168.1.100/24 dev ens33

    6、在后端服务器上绑定VIP脚本,也可以RS服务器之间执行这个脚本

    #/bin/bash
    #Date:2021-5-18
    vip=192.168.1.100
    mask=255.255.255.255
    dev=lo:1
    test=192.168.1.100
    rpm q- http &> /dev/null || yum -y install httpd &>/dev/null
    #service httpd start &> /dev/null && echo "The httpd Server is Ready!"
    #echo "<h1>$test `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 "The RS Server is Caneled!"
        ;;
    *)
        echo "Usage: $(basename $0) start|stop"
        exit 1
        ;;
    esac

    7、在LVS服务器上安装IPvsadm包

    yum install ipvsadm -y

    8、添加ipvsadm 规则 默认dr模型

    ipvsadm -A -t 192.168.1.100:80 -s rr
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.5
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.6

    9、测试

    [05:21:03 root@cliean ~]#curl 192.168.1.100
    192.168.1.6 RS2
    [05:21:06 root@cliean ~]#curl 192.168.1.100
    192.168.1.5 RS1
    

     DR模型,三次握手中的请求报文都需要经过LVS服务器,响应报文则不经过LV服务器,由此可以得出网关不起作用,但必须设置网关

     双网卡必须配置在两个不同的网段,否则路由会找不到

    绑定在回环网卡上相对来说比较稳定,不会因为物理网络中断而影响配置

  • 相关阅读:
    【入门】WebRTC知识点概览 | 内有技术干货免费下载
    mysql数据库运维方案
    前端报504错误如何定位
    Python数据分析之双色球高频数据统计
    利用Dapper ORM搭建三层架构
    ASP.NET和IIS工作原理
    C#中的new修饰符
    .NET 三层架构的简单规划
    Docker Hub中拉取镜像时出现超时问题该如何做?
    项目组件:分页(pagination)
  • 原文地址:https://www.cnblogs.com/alexlv/p/14780380.html
Copyright © 2011-2022 走看看