今RS1とRS2上記とのhttpdテストページをインストールする準備ができて
[ルート@ RS1〜]#yumをインストールhttpdの-y [ルート@ RS1〜]#>は/var/www/html/index.html "これはR1である"エコー [ルート@ RS1〜]#はHTTPDを起動systemctl [ルート@ RS2 〜]#yumをインストールhttpdの-y [ルート@ RS2〜]#は"これはR2である"エコー> /var/www/html/index.html [ルート@ RS2〜]#はHTTPDを起動systemctl
そして、LVSとLvs2にkeepalivedのipvsadmの(使用しての効果をテストするにはを参照してください)(sorryserverを達成するために)HTTPDを取り付けます
[LVS @ルート〜]#yumをインストールipvsadmの-y
[LVS @ルート〜]#yumをkeepalivedの-yインストール
[LVS @ルートを〜]#yumをインストールhttpdの-y
[ルート@ LVS〜]#は"これはlvs1ある"エコー> /var/www/html/index.html
[LVS @ルート〜]#はHTTPDを起動systemctl
#yumをインストールhttpdの-y [lvs2〜@ルート]
#は>は/ var / WWW "これはlvs2である"エコー[ルートlvs2〜@] /html/index.html
#はHTTPDを起動systemctl [lvs2〜@ルート]
#yumをインストールipvsadmの-y [lvs2〜@ルート]
#yumをインストールkeepalivedの-y [lvs2〜@ルート]
往路を開きます(ルータの外部ネットワークカードを追加し、2つのネットワークアドレスを追加します)、ルータ・サーバの設定
[ルーターネットワークスクリプト@ルート]#cpはのifcfg-ens33のifcfg-eth1の [ルーターネットワークスクリプト@ルート]#件のvimのifcfg-eth1の NAME = "eth1の" DEVICE = "eth1の" ONBOOT = yesの NetBootイメージ= yesの BOOTPROTO =静的 IPADDR = 172.16.14.100 NETMASK = 255.255.0.0 TYPE =イーサネット [ルートルーターネットワークスクリプト@]#は、ネットワークの再起動systemctl #1:これは一時的な増加である#1のIP AA 10.0.0.10/8のdevのeth0のは、[ルーターネットワークスクリプトは@ルート] 、あなたは永久たい場合は、設定ファイルに記述された [ルートルータ〜@]#のvimの/etc/sysctl.confの net.ipv4.ip_forward = 1 [ルータ〜@ルート]#sysctlを-p
クライアント・サーバ、ゲートウェイルーティングポイントの設定
[ルートクライアント@〜]#のvimの/ etc / sysconfig / network-scriptsに/のifcfg-ens33の NAME = "eth0の" DEVICE = "eth0の" ONBOOT = yesの ネットブート= yesの BOOTPROTO =静的 IPADDR = 172.16.14.200 NETMASK = 255.255.0.0 GATEWAY = 172.16.14.100の TYPE =イーサネット
ルータへのゲートウェイポイントのRS1とRS2の構成
[ルート@ RS1〜]#VINET NAME = "eth0の" DEVICE = "eth0の" ONBOOT = yesの ネットブート= yesの UUID = "95b18552-6cc5-48c5-b29a-91ed73675c50" BOOTPROTO =静的 IPADDR = 192.168.37.24 NETMASK = 255.255.255.0 GATEWAY = 192.168.37.22 [ルート@ RS1〜]#systemctlの再起動ネットワーク [ルート@ RS2〜]#VINET NAME = "eth0の" DEVICE = "eth0の" ONBOOT = yesの ネットブート= yesの UUID = "cdd70dbc-1363-45da-9c7a- 0ae369f9aac3" BOOTPROTO =静的 IPADDR = 192.168.37.25 NETMASK = 255.255.255.0 GATEWAY = 192.168.37.22 [ルート@ RS2〜]#systemctlの再起動ネットワーク
LVSおよびルータlvs2にゲートウェイサーバーを設定します
[ルートLVS @〜]#VINET NAME = "eth0の" DEVICE = "eth0の" ONBOOT = yesの ネットブート= yesの UUID = "15caec5a-6740-4a81-8c72-5fbcb6fb9d25" BOOTPROTO =静的 IPADDR = 192.168.37.23 NETMASK = 255.255.255.0 GATEWAY = 192.168.37.22 TYPE =イーサネット
[ルート@ lvs2〜]#VINET
NAME = "eth0の"
DEVICE = "eth0の"
ONBOOT = yesの
ネットブート= yesの
UUIDは= "686fb723-2360-4683-bb81-8bc6a20778ff"
BOOTPROTO =静的
IPADDR = 192.168.37.26
NETMASK = 255.255.255.0
GATEWAY = 192.168.37.22
VIPはRS1とRS2に追加され、ARP通知を閉じました
[ルート@ RS1〜]#ifconfigコマンドのLO:1 10.0.0.100ネットマスク255.255.255.255 [ルート@ RS1〜]#ルート-host 10.0.0.100のdevのLOを追加:1 [ルート@ RS1〜]#件のvimに/etc/sysctl.conf net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 [ルート@ RS1〜] #sysctlを-p [ルート@ RS2〜]#ifconfigコマンドのLO:1 10.0.0.100ネットマスク255.255.255.255 [ルート@ RS2〜]#ルート-host 10.0.0.100のdevのLO追加:1 [ルート@ RS2〜]#のvimのの/ etcを/sysctl.conf net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 [ルート@ RS2〜]#sysctlを-p
LVS設定サーバとLvs2にkeepalivedの
[ルート@のLVS〜]#のVimの/etc/keepalived/keepalived.conf
global_defs {
{notification_email
ルート@ localhostを
}
notification_email_from Alexandre.Cassen@localhost
SMTP_SERVER 127.0.0.1
smtp_connect_timeout 30
ROUTER_ID KA1
vrrp_mcast_group4 224.100.100.99
}
{notification_email
ルート@ localhostを
}
notification_email_from Alexandre.Cassen@localhost
SMTP_SERVER 127.0.0.1
smtp_connect_timeout 30
ROUTER_ID KA1
vrrp_mcast_group4 224.100.100.99
}
vrrp_instance VI_1 {
状態マスター
インターフェースeth0は
77 virtual_router_id
優先度を100
advert_int 1つの
認証{
AUTH_TYPEパス
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 devのeth0のlableはeth0:1
}
}
状態マスター
インターフェースeth0は
77 virtual_router_id
優先度を100
advert_int 1つの
認証{
AUTH_TYPEパス
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 devのeth0のlableはeth0:1
}
}
10.0.0.100 80 {VIRTUAL_SERVER
delay_loop 6
delay_loop 6
lb_algo RR
lb_kind DRの
プロトコルTCP
192.168.37.23 80 sorry_server
lb_kind DRの
プロトコルTCP
192.168.37.23 80 sorry_server
real_server 192.168.37.24 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
}
}
[ルート@のlvs2〜]#のVimの/etc/keepalived/keepalived.conf
global_defs {
{notification_email
ルート@ localhostを
}
notification_email_from Alexandre.Cassen@localhost
SMTP_SERVER 127.0.0.1
smtp_connect_timeout 30
ROUTER_ID KA2
vrrp_mcast_group4 224.100.100.99
}
{notification_email
ルート@ localhostを
}
notification_email_from Alexandre.Cassen@localhost
SMTP_SERVER 127.0.0.1
smtp_connect_timeout 30
ROUTER_ID KA2
vrrp_mcast_group4 224.100.100.99
}
VI_1 vrrp_instance {
状態バックアップ
インターフェースeth0は
77 virtual_router_id
優先90
advert_int 1つの
認証{
AUTH_TYPEパス
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 devのeth0のlableはeth0:1
}
}
状態バックアップ
インターフェースeth0は
77 virtual_router_id
優先90
advert_int 1つの
認証{
AUTH_TYPEパス
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 devのeth0のlableはeth0:1
}
}
10.0.0.100 80 {VIRTUAL_SERVER
delay_loop 6
delay_loop 6
lb_algo RR
lb_kind DRの
プロトコルTCP
192.168.37.26 80 sorry_server
lb_kind DRの
プロトコルTCP
192.168.37.26 80 sorry_server
real_server 192.168.37.24 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
体重1
HTTP_GET {
URL {
パス/
= 200 STATUS_CODE
}
3 CONNECT_TIMEOUT
nb_get_retry 3
delay_before_retry 3
}
}
}
}
サーバーLVSそれぞれkeepalivedの開始
[ルート@ lvs2〜]#はkeepalivedの開始systemctl
[ルート@ LVSを#はkeepalivedのを開始systemctl〜]
クライアントサーバテストで
以下はパラメータであり、keepalivedの
また、keepalivedの上、通知スクリプトを定義することができます
各サーバー構成スクリプトでLVS
[root@lvs keepalived]# vim notify.sh #!/bin/bash # contact='root@localhost' notify() { mailsubject="$(hostname) to be $1, vip floating" mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1" echo "$mailbody" | mail -s "$mailsubject" $contact } case $1 in master) notify master ;; backup) notify backup ;; fault) notify fault ;; *) echo "Usage: $(basename $0) {master|backup|fault}" exit 1 ;; esac
在各lvs服务器配置
[root@lvs keepalived]# vim keepalived.conf vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 77 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 10.0.0.100/8 dev eth0 lable eth0:1 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh障害" }