LVS DR模式配置中的3个关键问题

分类: 系统运维

数据包流向:

1 client ------------------------------------------>GW    

sip:cip                       dip:wip

smac:client_mac         dmac:gw_up_mac

2 GW ----------------------------->Director

sip :CIP                          dip:Vip

smac:GW_down_mac       dmac:Vip_max

3 Director ------------------> Real Server

sip:dip                            dip:rip

smac:DIP_mac                dmac:broadcast(局域网arp广播找到rip)


sip:RIP                            dip:DIP

smac:RealServer_mac        dmac:DIP_mac(局域网回广播包)


sip:CIP                             dip:VIP

smac:DIP_mac                  dmac:RealServer_mac (将原始的数据包发给RealServer)


4 Real Server ----------------------------------------->GW

sip:VIP                            dip:CIP

smac:RealServer_mac         dmac:GW_down_mac (处理完请求 返回数据包 )

5 GW------------------------------------------------------->

sip:VIP                            dip:CIP

smac:GW_up_mac            dmac:Client_mac


面临的问题:

1 .数据包需从realServer返回 ,realServer 返回的数据需要源IP为VIP ,添加 lo接口(本地环路接口) ,lo:1  vip/32.

    LO接口的作用是什么?
    假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的'lo'接口,然后返回进入链的'lo'接口.

2 realServer的vip有了,接着就是同一个网段中拥有两个vip, 在网关发送arp广播 需找vip时需要让realServer不接受响应.

    echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore # arp不回包

    echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce  另外一个网卡来接包 回包

3 Director 发送数据包给realServer , 要走dip的网卡,否则ip流向就是vip-->vip 发送不成功.

  调整vip和dip网卡在路由表中的顺序,dip在上,vip在下 即可解决。


4  session共享机制, session存在memcache中,开启轮训模式 这样效率最高.(php中)

 tcp://***.***.***.****:11211
use_cookies = 1
name=phpsessid
auto_start = 0
cookie_lifetime=0
cookie_path=/
cookie_httponly
serialize_handler = php
gc_probability=1
gc_divisor=1000
gc_maxlifetime=60
bug_compat_42 = 0
bug_conpat_warn = 1
refer_check = 
entropy_length = 0
entropy_file =
cache_limiter = nocache
cache_expire = 180
use_trans_sid=0
hash_function=0
hash_bits_per_character =5 

参数可视具体情况修改。

你可能感兴趣的:(linux)