LVS-nat-dr

主程序:ipvsadm

配置文件:

規則保存工具:/usr/sbin/ipvsadm-save
規則重載工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config

ipvsadm使用:

增:
     示例:ipvsadm -A -t 172.16.42.1:80 -s rr
               ipvsadm -a -t 172.16.42.1:80 -r 172.16.42.2 -w 1
刪:
     示例:ipvsadm -d -t 172.16.42.1:80 -r 172.16.42.2
改:
     示例:ipvsadm -E -t 172.16.42.1:80 -s wrr
查:
     示例:ipvsadm -ln
保存重載:
     示例:ipvsadm -S > /etc/sysconfig/ipvsadm
                ipvsadm -R </etc/sysconfig/ipvsadm

調度方法:

靜態方法:僅根據算法本身進行調度;
    RR:輪詢;
    WRR: 加權輪詢;
    SH:實現session sticy,源IP地址hash;將來自于同一個IP地址的請求始終發往第一次挑中的RS,從而實現會話綁定;
    DH:目標地址哈希,將發往同一個目標地址的請求始終轉發至第一次挑中的RS,典型使用場景是正向代理緩存場景中的負載均衡;
動態方法:主要根據每RS當前的負載狀態及調度算法進行調度;
    LC:least connections
    Overhead=activeconns*256+inactiveconns
    WLC:Weighted LC
    Overhead=(activeconns*256+inactiveconns)/weight
    SED:Shortest Expection Delay
    Overhead=(activeconns+1)*256/weight
    NQ:Never Queue
    LBLC:Locality-Based LC,動態的DH算法;
    LBLCR:LBLC with Replication,帶復制功能的LBLC;

LVS-nat:

多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和PORT實現轉發;
(1)RIP和DIP必須在同一個IP網絡,且應該使用私網地址;RS的網關要指向DIP;
(2)請求報文和響應報文都必須經由Director轉發;Director易于成為系統瓶頸;
(3)支持端口映射,可修改請求報文的目標PORT;

(4)vs必須是Linux系統,rs可以是任意系統;

LVS-nat-dr

RS主機操作
    1.配置好IP地址即可
VS主機操作
    1.兩張網卡,配置好IP地址
    2.yum安裝ipvsadm
    3.添加lvs:ipvsadm -A -t 172.16.42.1:80 -s rr
       添加RS:ipvsadm -a -t 172.16.42.1:80 -r 172.16.42.2 -w 1
                       ipvsadm -a -t 172.16.42.1:80 -r 172.16.42.3 -w 1

LVS-dr:

通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變;
Director和各RS都得配置使用VIP;
(1) 確保前端路由器將目標IP為VIP的請求報文發往Director:
(a) 在前端網關做靜態綁定;
(b) 在RS上使用arptables;
(c) 在RS上修改內核參數以限制arp通告及應答級別;
arp_announce
arp_ignore
(2) RS的RIP可以使用私網地址,也可以是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向DIP,以確保響應報文不會經由Director;
(3) RS跟Director要在同一個物理網絡;
(4) 請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client;

(5) 不支持端口映射;

LVS-nat-dr

RS1主機操作
1.編輯以下腳本, vim rs.sh,然后啟動 bash rs.sh start
    #!/bin/bash
    #
    vip=172.16.42.2
    mask=’255.255.255.255′
    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 lo:0 $vip netmask $mask broadcast $vip up #vip地址
    route add -host $vip dev lo:0 #路由表
    ;;
    stop)
    ifconfig lo:0 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 “Usage $(basename $0) start|stop”
    exit 1
    ;;
    esac
RS2主機操作
1.同上
#!/bin/bash
#
vip=172.16.42.3
……….
…………..
VS主機操作
1.yum安裝ipvsadm
2.編輯以下腳本, vim vs.sh,然后啟動 bash vs.sh start
    #!/bin/bash
    #
    vip=’172.16.42.1′
    iface=’ens33:0′
    mask=’255.255.255.255′
    port=’80’
    rs1=’172.16.42.2′
    rs2=’172.16.42.3′
    scheduler=’wrr’
    type=’-g’
    case $1 in
    start)
    ifconfig $iface $vip netmask $mask broadcast $vip up
    iptables -F
    ipvsadm -A -t ${vip}:${port} -s $scheduler
    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
    ;;
    stop)
    ipvsadm -C
    ifconfig $iface down
    ;;
    *)
    echo “Usage $(basename $0) start|stop”
    exit 1
    ;;
    esac

LVS-tun:

轉發方式:不修改請求報文的IP首部(源IP為CIP,目標IP為VIP),而是在原IP報文之外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RS;RS直接響應給客戶端(源IP是VIP,目標IP是CIP);
(1) DIP, VIP, RIP都應該是公網地址;
(2) RS的網關不能,也不可能指向DIP;
(3) 請求報文要經由Director,但響應不能經由Director;
(4) 不支持端口映射;
(5) RS的OS得支持隧道功能;

端口綁定:

VS主機操作
1.添加iptable規則打上標記,再用lvs綁定端口
    iptables -t mangle -A PREROUTING -d 172.16.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 172.16.42.2 -g
    ipvsadm -a -f 3 -r 172.16.42.3 -g

健康檢測:

使用ldirectord,安裝啟動即可,然后在配置文件中修改以下內容。
配置示例:
    checktimeout=3
    checkinterval=1
    fallback=127.0.0.1:80
    autoreload=yes
    logfile=”/var/log/ldirectord.log”
    quiescent=no
    virtual=5
    real=172.16.42.2:80 gate
    real=172.16.42.3:80 gate
    fallback=127.0.0.1:80 gate
    service=http
    scheduler=wrr
    checktype=negotiate
    checkport=80
    request=”index.html” #這個文件得存在
    receive=”CentOS”

原創文章,作者:z long,如若轉載,請注明出處:http://www.www58058.com/84213

(0)
z longz long
上一篇 2017-08-08
下一篇 2017-08-08

相關推薦

  • N26 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后…

    Linux干貨 2017-01-26
  • keepalived+haproxy實現wordpress的動靜分離及負載均衡、高可用

    實驗目的:使用keepalived+haproxy實現wordpress的動靜分離及負載均衡、高可用 實驗要求:客戶端請求的動態資源代理至動態資源web組,請求的靜態代理至靜態資源web組,啟用統計面信息并只對特定啟用統計面管理功能,啟用https安全連接 系統環境:CentOS 7.3、關閉selinux和清除iptables規則,A和B主機各需要兩塊網卡…

    2017-05-18
  • OpenSSL:實現創建私有CA、簽署證書請求詳解

    一、OpenSSL:CA默認配置信息     1.證書簽發機構CA:公共信任CA、私有CA                建立私有CA方式如下: 小范圍測試使用openssl、 大…

    Linux干貨 2016-04-30
  • sed命令及vim編輯器

    sed[option]… 'script' inputfile…選項:-n:不輸出模式空間內容的自動打印-e: 多點編輯-f /PATH/TO/SCRIPT_FILE: 從指定文件中讀取編輯腳本-r: 支持使用擴展正則表達式-i: 原處編輯script:'地址命令' 1.地址定界:(1) 不給地…

    Linux干貨 2016-08-11
  • Hadoop hdfs分布式文件系統

    一、MapReduce理論基礎 每個MapReduce job都是Hadoop客戶端想要執行的一個工作單元,它一般由輸入數據、MapReduce程序和配置信息組成,而Hadoop會把每個job分隔成兩類任務(task):map任務和reduce任務。在Hadoop集群中有兩類節點來執行兩類job進程的執行 1.1 大數據處理 任何基礎業務包含了收集、分析、監…

    2017-12-08
  • Linux文件管理命令詳解–cp,mv,rm

    在Linux系統里平時需要對目錄文件做一些管理操作,其中最基本的有cp,mv,rm等命令: cp命令:copy 復制   其中包含源文件,目標文件: copy分為單源復制和多源復制,詳解如下:               單源復制:cp [option]…[-T] S…

    Linux干貨 2016-11-06
欧美性久久久久