美文网首页
lvs 应用

lvs 应用

作者: 圈圈_4eef | 来源:发表于2019-03-28 23:12 被阅读0次

    lvs:根据请求报文的目标 地址端口协议,调度转发到后端主机real server ,根据调度算法挑选rs。

    ipvs是用户空间命令行工具,用于管理集群服务,及real server,      在调度器上安装ipvs     yum install   ipvs

    vip:接收客户端的请求。                 dip:与rip通信的私网地址。            rip:后端真实的server。。

    cip:客户ip。。            

    lvs集群类型:1.lvs-nat:修改请求报文的的目标ip多目标ip,的dnat。

       2,  lvs-dr:操作封装请求新的mac地址。

    3,lvs-tun:在请求ip报文之外新加一个新的IP首部,

    4,lvsfullnat:修改请求源和目标ip。。

    lvs-nat:多目标的DNAT,通过将请求的报文目标地址和目标端口修改为某天选的rip和port实现转发。

    rip和dip必须在同一网络,且应该使用私网地址,rs网关指向dip

    请求和响应报文经由directory转发,directory义形成系统瓶颈,

    支持端口映射可修改请求报文的目标port,vs是linux系统,rs可是任意系统。。。

    lvs-dr: 通过请求报文重新封装mac首部,进行转发,源mac是dip所在的接口mac,目标mac是某挑选的rs的rip所在mac地址,        源ip端口和目标端口均保持不变,,

    directory和各rs都得配置vip:

    在内核修改参数以限制arp通告和应答,,arp_announce限制通报为2,,,aip_ignore限制应答为1,,,

    rip可使用公网地址和私网地址,单rip和dip要在同一网络,rip网关不能指向dip,以确保响应报文不经由directory。 请求报文经由directory,  不支持端口映射,,

    lvs-tun:转发方式;不修改请求报文的ip首部,而在ip报文之外在封装一个ip首部,(源ip为dip,目标ip为rip)

    将报文发往挑选出的rs,      rs直接响应给客户端,,,

    dip,vip,rip 都应该是公网地址,,,

    rs网关不能指向dip,           请求报文经由directory,但响应报文不能经由directory

    不支持端口映射,,,rs的os得支持隧道功能,,

    lvs-fullnat:通过同时修改请求报文的源ip地址和目标ip地址进行转发,

    vip是公网地址rip和dip是私网地址,且通常不在同一ip网络,rip网关通常不会指向dip

    rs收到的请求报文源地址是dip,只响应给dip但directory还就将其转发给client,

    请求报文和响应报文都经由directory

    总结:lvs-nat和lvs-fullnat请求报文和响应报文都经由directory,

    lvs-nat网关要指向directory,

    lvs-fullnat:rip和dip未必能在同一网络,但要能通信,

    lvs-dr,lvs-tun;请求报文要经由directory但响应报文由rs直接发往client,

    lvs-dr:通过封装通过封装新的mac首部实现,通往mac网络转发,

    lvs-tun:通过源ip报文之外封装新的ip首部实现转发支持远距离通信,

    lvs的调度算法:

    静态调度算法:rr轮询:  wrr加权轮询,,

    sh:来自同一ip地址的请求,将其转发调度第一次匹配到的rs

    dh:发往同一地址的请求,将其调度转发至第一次匹配的rs,

    动态方法:

    lc:最少链接;                             wlc:加权最少链接。

    sed:最短期望延迟,,                                        lblc:动态dh算法。      lblcr:带复制功能的lblc算法。。

    集群的定义:  ipvsadm                     在directory安装ipvsadm

    ipvsadm  -A     -E  |  -t    -f   -s   -p                    (定义集群类型)

    -A 添加;;;               -E:编辑修改集群,,     -t;指定类型 t是tcp协议类型      -u:指定udp协议类型。

    -s:指定调度算法  默认wlc 加权最少链接。         -p:启动持久链接功能 默认为65秒,,,

    -f:指定防火墙标记。。。

    示列: ipvsadm -A  -t 192.168.0.99:80 -s rr

    管理集群的rs:;;

    ipvsadm  -a   |-e    -t     |-u   -f    -r  server-address     -g(dr类型)      -m(nat类型)     -i(tun类型)   -w(权重)

    示列:   ipvsadm -a -t 192.168.0.99:80 -r 192.168.0.6 -m

    查看:ipvsadm     -Ln

    -n:地址和端口输出                                       --exact:展示数字显示精确值。。。

    -c:显示链接状态。。                                 --stats:统计数据

    --rate:速率数据。。。

    ipvsadm  -ln --stats:   查看统计数据                   conns:链接数。                        inpkts:入站报文数

    outpkts:出站报文数,                     inbytes:入站字节数,,,          outbytes:出站字节数。。

    ipvsadm   -ln   -c :查看谁请求链接过。

    ipvsadm -ln   --rate:查看速率:           cps是每秒建立的连接数,                 inpps:每秒入站的报文数

    inbps:每秒入站的字节数,,,                               outbps:每秒出站的字节数。。。

    ipvsadm -S -n  >  /etc/sysconfig/ipvsadm       保存规则;

    ipvsadm  -R   <   /etc/sysconfig/ipvsadm        还原

    lvs- nat类型:配置                sysctl  -w    net.ipv4.ip_forward=1     打开核心转发。。。

    rip和dip在同一网络。 rs网关指向dip,vs主机打开核心转发。。()

    vs主机可来自外网的客户端访问,-t  tcp协议地址指向vs的外网地址。

    ipvsadm -A -t 192.168.1.5:80  -s rr      指定调度类型为轮询。 -s   wrr 加权轮询。。。。-t指定外网地址tcp协议。。

    ipvsadm -a  -t  192.168.1.5:80  -r 192.168.237.6 -m      指定后端主机  -m 类型为nat类型。。

    ipvsadm -a  -t  192.168.0.5:80  -r  192.168.237.9  -m        

    如果rs都宕了指定本机接收请求:ipvsadm -a -t 192.168.0.5:80 -r 127.0.0.1 -g

    dr类型配置:   dr模型每个主机需要配置vip, ,在各rs限制arp广播通告,出站和入站经过lo:0。。在lvs调度器上配置虚拟网卡接口为  ens33:0。(arp_ignore忽略应答为1,, arp_announce忽略通告为2,)。各rs请求经过vs主机。。。应答不需要经过vs主机。。   rs的rip可使用私网地址,也可使用公网地址。rip与dip在同一网络。rip网关不能指向dip。

    rs主机IP为:192.168.0.5                   虚拟ip为:192.168.0.99

    rs主机为:192.168.0.6 和 192.168.0.9

    1.先在个主机配置虚拟ip,,

    lvs主机:;     ifconfig ens33:0 192.168.0.99 netmask 255.255.255.255 broadcast 192.168.0.99 up

    rs主机:ifconfig lo:0 192.168.0.99 netmask 255.255.255.255 broadcast 192.168.0.99 up

    2. 在每个real server上配置禁止应答和禁止通告。。/proc/sys/net/ipv4/conf/all/(arp_announce为1和arp_ignore为2)

    3.  在lvs主机配置集群调度:

    ipvsadm -A  -t  192.168.0.99:80  -s  rr    配置-t指定tcp协议虚拟ip。 -s 指定调度算法轮询。。

    ipvsadm -a -t 192.168.0.99:80  -g     指定虚拟ip    -g类型为dr类型。

    ipvsadm -a   -t   192.168.0.99:80   -g        

    配置80和443端口绑定:

    ipvs代理指定80端口和443一块代理请求。基于防火墙mangle表打标功能.。。

    配制ssl加密,没有ssl.conf 配置文件安装mod_ssl模块。。

    在ca上配置创建公钥,切换到1 、/etc/pki/CA目录。。(umask 077; openssl genrsa -out  private/cakey.pem  2048)

     openssl req -new  -x509   -key  private/cskey.pem -out  cacert.pem -days 365     配置公钥

    创建文件:touch  index.txt                  echo 01 >  serial

    2.在rs上配置私钥,(umask 077; openssl genrsa -out httpd.key 2048)

    openssl req -new -key httpd.key -out httpd.csr   

    把配置的私钥httpd.csr  传给 ca让签署:scp   httpd.csr   192.168.0.5:/tmp   

    3,CA签署:openssl ca -in htpd.csr  -out httpd.crt  -days  365

    配置完成后把ca的签署的证书httpd.crt 发给rs:        后端服务器httpd.crt和自己的httpd.key放置自己的网页目录,然后配置/etc/httpd/conf.d/ssl.conf 文件。。

    配置ssl.conf文件。。

    指定签署的证书和私钥位置。。

    在vs配置防火墙标记。

    iptables -t mangle -A PREROUTING -d 192.168.0.99 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 3

    然后配置集群类型:   ipvsadm -A  -f  3   -s   rr    防火墙标记指定三。调度类型为轮询。。

    ipvsadm -a  -f  3  -r  192.168.0.6  -g     添加真实的server,指定类型为dr    -g

    ipvsadm -a  -f  3  -r  192.168.0.9   -g   

    lvs  persistence:  持久链接。。  实现无论使用任何调度算法,在一段时间内能够实现将,来自同一ip的主机,始终发往同一个rs。。   -p    就是启用持久链接功能。。

    ipvsadm -A |E  -t  |u  | -f   server-address | [-s  scheduler]  [-p  ]

    基于防火墙的持久链接:   ipvsadm -A  -f   3  -s   rr  -p       持久链接默认为360秒。

    每个客户端持久链接,0端口定义集群服务,客户端对所有的请求统统调度后端主机,,

    ipvsadm -A  -t   192.168.0.99:0  -s rr  -p     

    相关文章

      网友评论

          本文标题:lvs 应用

          本文链接:https://www.haomeiwen.com/subject/rqzqmqtx.html