日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

LVS DR模型配置示例

發布時間:2025/6/15 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS DR模型配置示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要讓路由知道哪臺主機是Director,進行選擇:

1、VIP:MAC(Director VIP) —— MAC綁定,但未必可行,例如路由是運營商的。

2、arptables

3、kernel parameter(常用此配置):

????arp_ignore:定義接收到ARP請求時的響應級別;

????????0:默認級別,只要本機配置有相應的地址,就給予響應;

????????1:只有當請求目標地址是請求到達接口上配置的地址,才給予響應;

????arp_announce:定義將自己的地址向外通告時的通告級別;

????????0:默認級別,將本機任何接口上的任何地址向外通告;

????????1:試圖僅向目標網絡通告與其網絡匹配的地址;

????????2:僅向與本地接口上的地址匹配的網絡進行通告;


# 注意:各節點間的時間偏差不應該超出1秒鐘。

# Director配置NTP服務器:

Director:

yum install ntp

/etc/init.d/ntpd start


Client:

/usr/sbin/ntpdate Director_IP


VS/DR拓撲示例:

????????????192.168.101.253

????????????????10.10.10.1

????????????????????Client

????????????????????????|

????????????????????????|

???????????????? ?(router)

????????????192.168.101.254

????????????????????????|

????????????????????????| ? ? ? ? ?VIP=192.168.101.168

????????????????????????| ————— Director

????????????????????????|???????????? ?DIP=10.10.10.10

????????????????????????|

????????????—————————

????????????|????????????????????????????????|

????????????|????????????????????????????????|

RIP=10.10.10.11????????RIP=10.10.10.12

???????? ?RS1????????????????????????????RS2

VIP=192.168.101.168????VIP=192.168.101.168


????????在如上圖的VS/DR或VS/TUN應用的一種模型中(所有機器都在同一個物理網絡),所有機器(包括Director和RealServer)都使用了一個額外的IP地址VIP。當一個客戶端向VIP發出一個連接請求時,此請求必須要連接至Director的VIP,而不能是RealServer的。因為,LVS的主要目標就是要Director負責調度這些連接請求至RealServer的。

????????因此,在Client發出至VIP的連接請求后,只能由Director將其MAC地址響應給客戶端(也可能是直接與Director連接的路由設備),而Director則會相應的更新其ipvsadm table以追蹤此連接,然后將其轉發至后端的RealServer之一。

????????如果Client在請求建立至VIP的連接時由某RealServer響應了其請求,則Client會在其MAC table中建立起一個VIP至RealServer的對應關系,并以至進行后面的通信。此時,在Client看來只有一個RealServer而無法意識到其它服務器的存在。

????????為了解決此問題,可以通過在路由器上設置其轉發規則來實現。當然,如果沒有權限訪問路由器并做出相應的設置,則只能通過傳統的本地方式來解決此問題。這些方法包括:

1、禁止RealServer響應對VIP的ARP請求;

2、在RealServer上隱藏VIP,使得它們無法獲知網絡上的ARP請求;

3、基于"透明代理(Transparent Proxy)"或者"fwmark (firewall mark)";

4、禁止ARP請求發往RealServer。


????????傳統認為,解決ARP問題可以基于網絡接口,也可以基于主機來實現。Linux采用了基于主機的方式,因為其可以在大多場景中良好的工作,但LVS卻并不屬于這些場景之一,因此,過去實現此功能相當麻煩。現在可以通過設置arp_ignore和arp_announce,這變得相對簡單的多。

????????Linux 2.2和2.4(2.4.26之前的版本)的內核解決"ARP問題"的方法各不相同,且比較麻煩。幸運的是,2.4.26和2.6的內核中引入了兩個新的調整ARP棧的標志(device flags):arp_announce和arp_ignore。基于此,在DR/TUN的環境中,所有IPVS相關的設定均可使用arp_announce=2和arp_ignore=1/2/3來解決"ARP問題”。


VS/DR配置示例:

Director:

????eth0, DIP:10.10.10.10/24

????eth1, VIP:192.168.101.168/24????gw:192.168.101.254

RS1:

????eth0, RIP:10.10.10.11/24????????gw:10.10.10.1

????lo:0, VIP:192.168.101.168/32

RS2:

????eth0, RIP:10.10.10.12/24????????gw:10.10.10.1

????lo:0, VIP:192.168.101.168/32

Client:

????IP1:192.168.101.253/24

????IP2:10.10.10.1/24


# 注意:這里物理機(Client)VM8網卡配置兩個IP地址,一個192.168.101.253,一個10.10.10.1;RS配置網關指向物理機的10.10.10.1。


1、Director安裝ipvsadm

# yum install ipvsadm


2、RS1安裝httpd

# yum install httpd

# echo "rs1.redhat.com" > /var/www/html/index.html

# service httpd start


3、RS2安裝httpd

# yum install httpd

# echo "rs2.redhat.com" > /var/www/html/index.html

# service httpd start


4、解決ARP問題

# 注意:RS需先配置關閉arp請求響應arp_ignore或arp_announce,然后再配置VIP

# RS1、RS2配置相同:

# 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


5、RS1配置IP及路由

# ifconfig lo:0 192.168.101.168 broadcast 192.168.101.168 netmask 255.255.255.255 up

# route add -host 192.168.101.168 dev lo:0


6、RS2配置IP及路由

# ifconfig lo:0 192.168.101.168 broadcast 192.168.101.168 netmask 255.255.255.255 up

# route add -host 192.168.101.168 dev lo:0


7、Director配置VS/DR(調度算法:WLC)

# ifconfig eth1 192.168.101.168 broadcast 192.168.101.255 netmask 255.255.255.0 up

# route add default gw 192.168.101.254

# ipvsadm -A -t 192.168.101.168:80 -s wlc

# ipvsadm -a -t 192.168.101.168:80 -r 10.10.10.11 -g -w 2

# ipvsadm -a -t 192.168.101.168:80 -r 10.10.10.12 -g -w 1


8、瀏覽器訪問:http://192.168.101.168


VS/DR Script:

### Director ###

#!/bin/bash

#

# chkconfig: - 90 10

# description: LVS Script for VS/DR.

#


VIP=192.168.101.168

RIP1=10.10.10.11

RIP2=10.10.10.12

GW=192.168.101.254


CSTATUS1() {

????[ -e /var/lock/subsys/ipvsadm.lock ] && echo -e "\033[32mipvsadm is running...\033[0m" && exit 1

}


CSTATUS2() {

????[ ! -e /var/lock/subsys/ipvsadm.lock ] && echo -e "\033[32mipvsadm is not running...\033[0m" && exit 2

}


case "$1" in

? start)

????CSTATUS1

????echo -e "\033[32mStart VS/DR of Director Server...\033[0m"

????# Set the Virtual IP address.

????/sbin/ifconfig eth1 $VIP broadcast $VIP netmask 255.255.255.0 up

????/sbin/route add -host $VIP dev eth1

????/sbin/route add default gw $GW

????# Director must open packet forwarding.

????#echo 1 > /proc/sys/net/ipv4/ip_forward

????# Clean all iptables rules.

????/sbin/iptables -F

????# Reset iptables counters.

????/sbin/iptables -Z

????# Clean all ipvsadm rules/services.

????/sbin/ipvsadm -C

????# Set VS/DR, Scheduling is Weighted Least Connection.

????/sbin/ipvsadm -A -t $VIP:80 -s wlc

????/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 2

????/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 1

????# Show VS/DR status.

????/sbin/ipvsadm -L -n

????/bin/touch /var/lock/subsys/ipvsadm.lock

????;;

? stop)

????CSTATUS2

????echo -e "\033[32mStop VS/DR of Director Server...\033[0m"

????# Reset ipvsadm.

????/sbin/ipvsadm -C

????# Close VIP interface.

????/sbin/ifconfig eth1 down &> /dev/null

????# Close packet forwarding.

????#echo 0 > /proc/sys/net/ipv4/ip_forward

????/bin/rm -f /var/lock/subsys/ipvsadm.lock

????;;

? status)

????[ -e /var/lock/subsys/ipvsadm.lock ] && echo -e "\033[32mipvsadm is running...\033[0m" || echo -e "\033[32mipvsadm is not running...\033[0m"

????;;

? *)

????echo -e "\033[32mUsage: $0 {start|stop|status}\033[0m"

????;;

esac


### RealServer ###

#!/bin/bash

#

# description: VS/DR Real Server.

#


VIP=192.168.101.168

GW=10.10.10.1


case "$1" in

? start)

????echo -e "\033[32mStart VS/DR of Real Server...\033[0m"

????/sbin/ifconfig lo down

????/sbin/ifconfig lo up

????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

????/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

????/sbin/route add -host $VIP dev lo:0

????#/sbin/route add default gw $GW

????;;

?stop)

????echo -e "\033[32mStop VS/DR of Real Server...\033[0m"

????/sbin/ifconfig lo:0 down &> /dev/null

????#/sbin/route del default gw $GW

????echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

????echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

????echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

????echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

????;;

? status)

????CHECKLO=`/sbin/ifconfig lo:0 | grep $VIP`

????CHECKRO=`netstat -nr | grep lo | grep $VIP`

????if [ ! "$CHECKLO" -o ! "$CHECKRO" ];then

????????echo -e "\033[32mReal Server VS/DR is not running...\033[0m"

????else

????????echo -e "\033[32mReal Server VS/DR is Running...\033[0m"

????fi

????;;

? *)

????echo -e "\033[32mUsage: $0 {start|stop|status}\033[0m"

????;;

esac




轉載于:https://blog.51cto.com/yuyucat/1656191

總結

以上是生活随笔為你收集整理的LVS DR模型配置示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。