LVS 部署(上

Posted abel2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS 部署(上相关的知识,希望对你有一定的参考价值。

LVS 部署(上)

1 LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,修改nat-filter input 链,直接到postrouting
  客户端和服务器直接建立连接,lvs是透明的

2、LVS术语

Director Server:调度服务器,即lvs server
Real Server:真实服务器,真正提供应用服务的服务器
VIP:虚拟IP地址,公布给用户访问的IP地址
RIP:真实IP地址,集群节点上使用的IP地址
DIP:Director连接到RealServer的IP地址

3 模式:
    nat:路由转发模式
        lvs充当Real Serve的网关,lvs对Real Serve 做S-nat
        客户端请求--网关--lvs(虽然目的ip为lvs,LVS在intput链上修改目的ip,经output链)--RS--LVS(需手工做s-nat)--客户端
    dr:直接路由模式
        默认模式,DIP,RIP 在一个网络中,lvs和rs均仅使用1块物理网卡
        lvs把到达的数据帧的目的MAC地址修改为某一台Real Serve的MAC,然后不经过lvs直接返回给客户端。lvs不修改三层包头
        客户端请求--网关--lvs(不修改三层,修改目的mac为rs)--rs(物理接口-路由-lo:0-httpd-修改回城ip头--lo:0--物理接口)--网关--客户端
        不要求vip和rip一个网段,只要dip和rip一个网段即可把数据帧送给rs,rs最终经物理接口出去即可。
    tun:隧道模式
        数据包到达lvs后,通过隧道到达RS后,不经过lvs直接返回给客户端
    fullnat模式
        lvs做D-nat和S-NAT

4 部署:

4.0
    yum install ipvsadm

    安装lvs cli工具, 因lvs已集成到linux内核

4.1 nat 模式,MASQUERADE

    lvs
    VIP: 192.168.90.70  网卡1 面向互联网接口ens33
    DIP: 192.168.100.1  网卡2 和RS在一个网络ens34

    RIP1: 192.168.100.11,网卡2 网关设置为 192.168.100.1
    RIP2: 192.168.100.12,网卡2 网关设置为 192.168.100.1

    vm测试部署方式:
    lvs 网卡1 桥接,网卡2 Local
    RS1,RS2 网卡2LocalAddress
    RS1,RS2,lvs 网卡使用vm net10 组成二层网络

    4.1.1 RS 部署httpd, 测试访问正常

    4.1.2 lvs 配置:

    // add virtual service
    ipvsadm -A -t 192.168.90.70:80 -s rr

    //add real server ,测试使用rr轮询算法,-m 使用nat 模式
    ipvsadm -a -t 192.168.90.70:80 -r 192.168.100.1:80 -m -S rr

    //保存配置
    ipvsadm -s > /etc/sysconfig/ipvsadm

    //重启lvs服务
    servicectl restart ipvsadm

    --------------------
    ipvsadm -Ln  查看lvs服务
    ipvsadm -E -t  修改lvs tcp 服务
    ipvsadm -C    清空lvs服务
    ipvsadm -S > /tmp/ip_vs.bak 备份配置

    //测试结果:通过访问vip 实现轮询负载
    # ipvsadm
        IP Virtual Server version 1.2.1 (size=4096)
        Prot LocalAddress:Port Scheduler Flags
        -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
        TCP  controller:http rr
        TCP  lvs:http wrr
        -> 192.168.100.11:http          Masq    1      0          0
        -> 192.168.100.12:http          Masq    1      0          0

4.2 dr模式:

    lvs:
    DIP 192.168.100.1 网卡2, VIP 192.168.100.100 网卡2别名ens33:0
    (lvs一块网卡,怎么配置不重要,因为数据包到达RS后,解封装后,露出三层包头,转发依据源ip(客户端ip))
        
    RIP1: 192.168.100.11 网卡2, VIP 192.168.100.1 lo:0
    RIP2: 192.168.100.12 网卡2, VIP 192.168.100.1 lo:0

    lvs和RS网关均设置为192.168.100.254

    //客户端请求到达网关后,只能送给lvs,网关的arp广播RS不能响应
    方式1: 网关静态mac表,不广播,不推荐
    方式2: RS iptables做arp过滤,不让arp进来或者出去
    方式3: RS 把vip配置在lo:0接口,过滤arp


    vm测试部署方式:
    RS1,RS2,lvs 网卡使用vm net10 组成二层网络,

    4.2.1 配置dip,rip
    4.2.2 配置
        lvs配置vip:ifconfig ens33:0 192.168.100.100/32 up
                    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
                    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

        //先用用再配置ip,防止交换机收到
        rs禁用arp: echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        rs配置ip:  ifconfig lo:0 192.168.100.100/32

        //host主机测试连通性,确认vip mac为lvs ens33mac
        C:Userswu>ping 192.168.100.100

        正在 Ping 192.168.100.100 具有 32 字节的数据:
        来自 192.168.100.100 的回复: 字节=32 时间<1ms TTL=64

        C:Userswu>arp -a
            192.168.100.100       00-0c-29-d4-ca-d6     动态

        # ifconfig ens33
        ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.100.1  netmask 255.255.255.0  broadcast 192.168.100.255
            inet6 fe80::c2f7:1b74:8e1e:7f7c  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:d4:ca:d6  txqueuelen 1000  (Ethernet)

        //rs修改路由
        route add -host 192.168.100.100 dev lo:0
        route -n
            Kernel IP routing table
            Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
            0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 ens33
            192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
            192.168.100.100 0.0.0.0         255.255.255.255 UH    0      0        0 lo

        //配置lvs

        ipvsadm -A -t 192.168.100.100:80 -s rr
        ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.11:80 -g

        //测试
        # ipvsadm
            IP Virtual Server version 1.2.1 (size=4096)
            Prot LocalAddress:Port Scheduler Flags
            -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
            TCP  lvs:http rr
            -> 192.168.100.11:http          Route   1      0          1
            -> 192.168.100.12:http          Route   1      0          1



以上是关于LVS 部署(上的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.3 部署LVS 集群

Keepalived + LVS 高可用负载均衡集群部署

LVS-负载均衡集群部署

负载均衡LVS概述以及DR模式简易部署

Linux学习-LVS之NAT模型部署

LVS负载均衡之LVS-NAT实例部署(配置篇)