LVS DR +キープアライブの実際の戦闘

実際の戦闘環境(CentOS7)

VIP 10.211.55.180(仮想IP)
LVS1 10.211.55.151(メインLVS)
LVS2 10.211.55.152(スタンバイLVS)
RS1 10.211.55.171(実サーバー1)
RS2 10.211.55.172(実サーバー2)


環境内のすべてのノードを初期化します

iptalbes -F#ファイアウォールを空にする

systemctl stop Firewalld#ファイアウォールを閉じる

systemctl disable Firewalld#起動時にファイアウォールが起動しないようにします

setenforce 0#selinuxを一時的に閉じます

sed -i's / ^ SELINUX =。* $ / SELINUX = disabled / g '/ etc / selinux / config#関闭selinux

yum -y install epel-release #Install epel source


LVS1,2操作


1. keepalivedipvsadmをインストールします


yum -y install keepalived ipvsadm



[root @ localhost〜] #lsmod | grep ip_vs#ipvsモジュールを確認してください

ip_vs_rr 12600 1

ip_vs 145497 3 ip_vs_rr

nf_conntrack 139264 9 ip_vs、nf_nat、nf_nat_ipv4、nf_nat_ipv6、xt_conntrack、nf_nat_masquerade_ipv4、nf_conntrack_netlink、nf_conntrack_ipv4、nf_conntrack_ipv6

libcrc32c 12644 4 xfs、ip_vs、nf_nat、nf_conntrack 




2. keepalived(LVS1、2)を構成します


2.1keepalivedの構成ファイルを変更します

[root @ localhost〜] #cd / etc / keepalived /

[root @ localhost keepalived] #cat keepalived.conf

!keepalivedのはのための設定ファイル

global_defsは{ 
   {notification_email 
     [email protected] 
   } 
   notification_email_from [email protected] 
   SMTP_SERVER 127.0.0.1 
   smtp_connect_timeout 30 
   LVS_DEVELのROUTER_ID 
   vrrp_skip_check_adv_addr 
## vrrp_strict 
   vrrp_garp_interval 0 
   vrrp_gna_interval 0 
} 

vrrp_instance VI_1 {
    ここ州LVS1は、MASTER番号マスターであります次に、LVS2はBACKUP
    インターフェイスに変更されます。eth0#CENTOS7 ens33 
    virtual_router_id 51 メインとスタンバイの
    優先度が一貫している場合100#LVS1が100の場合、LVS2は100未満(90など)です。
    advert_int 1  
    authentication { 
        auth_type PASS
        auth_pass 1111 
    } 
    virtual_ipaddress { 
        10.211.55.180 #VIP 
    } 
} 

10.211.55.180 80 {#VIP VIRTUAL_SERVER 
    delay_loop 6 
    lb_algo RR 
    lb_kind DR 
    50 persistence_timeout
    プロトコルTCP 

    real_server 10.211.55.171 80 {#后端RS1检测
        重量1 
        TCP_CHECK { 
            CONNECT_TIMEOUT 3 
            nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
        } 
    } 
    real_server 10.211.55.172 80 {#后端RS2检
        重み
        1TCP_CHECK { 
            connect_timeout 3
            1nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
        } 
    } 
}



2.2起動の設定(LVS1、2)

systemctl enable keepalived

systemctl startkeepalived



3. LVSを構成し、次のスクリプト(LVS1、2)を実行して、起動するようにスクリプトを設定します


vi /opt/lvs_dr.sh

#!/ bin / sh 
#説明:DirectorサーバーのLVSを開始
VIP = 10.211.55.180 
RIP1 = 10.211.55.171 
RIP2 = 10.211.55.172 
case "$ 1" in 
    start)
        echo "start LVS of Director Server" 
#仮想IPアドレスを設定およびsysctlパラメーター
#/ sbin / ifconfig eth0:0 $ VIP 
       Broadcast $ VIP netmask 255.255.255.255 up 
#route add -host $ VIP dev eth0:0 echo "1"> / proc / sys / net / ipv4 / ip_forward 
#Clear IPVS table 
       / sbin / ipvsadm -C 
#set LVS 
/ sbin / ipvsadm -A -t $ VIP:80 -s rr#-p 600#共有会话持久化则♪的-p600取消注释
/ sbin / ipvsadm -a -t $ VIP:80 -r $ RIP1:80 -g 
/ sbin / ipvsadm -a -t $ VIP:80 -r $ RIP2:80 -g 
#Run LVS
      / sbin / ipvsadm 
       ;; 
    stop)
        echo "close LVS Directorserver" 
        echo "0"> / proc / sys / net / ipv4 / ip_forward 
        / sbin / ipvsadm -C 
      #/ sbin / ifconfig eth0:0 down 
        ;; 
    *)
        echo "Usage:$ 0 {start | stop}" 
        exit 1 
esac


chmod + x /opt/lvs_dr.sh#実行権限を追加


echo "/opt/lvs_dr.sh start" >> / etc / profile#自動開始



4. RS操作を構成し、次の操作を実行します(RS1、2)


nginxをインストールします

yum -y install nginx#RS1、2がインストールされています


echo 10.211.55.171> /usr/share/nginx/html/index.html#RS1操作中

echo 10.211.55.172> /usr/share/nginx/html/index.html#RS2操作中

systemctl start nginx#RS1、2はすべて動作しています


RSスクリプトを設定し、自動的に開始するようにブートを設定します

vi /opt/lvs_rs.sh

#!/ bin / bash 
VIP = 10.211.55.180 
/ sbin / ifconfig lo:0 $ VIPブロードキャスト$ VIPネットマスク255.255.255.255up 
/ sbin / route add -host $ VIP dev lo:0 
echo“ 1”> / proc / sys / net / ipv4 / conf / lo / arp_ignore 
echo“ 2”> / proc / sys / net / ipv4 / conf / lo / arp_announce 
echo“ 1”> / proc / sys / net / ipv4 / conf / all / arp_ignore 
echo“ 2″> / proc / sys / net / ipv4 / conf / all / arp_announce 
sysctl -p

この操作では、ループバックデバイスの仮想IPアドレスをバインドし、そのサブネットマスクを255.255.255.255に設定して、Directorサーバーの仮想IPとの相互通信を維持し、ローカルARP要求を禁止します。

上記のVIPアドレスである仮想IPは、Director ServerとすべてのRealサーバーで共有されているため、VIPアドレスのARP要求がある場合、Director ServerがすべてのRealサーバーに応答すると問題が発生するため、禁止する必要があります。実サーバーはARP要求に応答します。lvsrsスクリプトの役割は、RealServerがarp要求に応答しないようにすることです。


chmod + /opt/lvs_rs.sh#実行権限を追加

echo "/opt/lvs_rs.sh"#Startupが自動的に


5.テスト

クライアントを見つけて、次のコマンドを実行します

-> $ for i in `seq 20`; do curl 10.211.55.180; done

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172




おすすめ

転載: blog.51cto.com/slapping/2551450