lvs dr 模型配置詳解
前期準備:
兩臺伺服器 note01(lvs伺服器) note02(real sever)
1 首先在note01配置子網絡卡:
ifconfig eth0:2 192.168.64.100/24
:2意思是eth0的子介面,隨便一個數字就可以,/24意為 255.255.255.0的另一種寫法 也可以寫成netmask 255.255.255.0
2 配置note01 轉發方式:
echo 1 > /proc/sys/net/ipv4/ip_forward
預設為0 意思為如果沒有對應請求的IP,會將資料包丟棄,1為不會丟棄,而是通過路由來去轉發請求。
3 配置note02(real sever) 的響應,通告級別,禁止響應對VIP的ARP廣播請求
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
4 配置note02 的環回IP:
ifconfig lo:5 192.168.64.100 netmask 255.255.255.255
注意,這裡:5與上邊一樣,可以隨便寫,但是後邊必須寫成netmask 255.255.255.255
這裡為什麼是4個255? 因為閘道器192.168.64.0 是通過IP和 這個掩碼進行雲算計算出來的,如果這裡也寫成3個255,就會出現兩個192.168.64.0,而lo環回介面要比eth0介面更為接近os核心,所以請求不會返回,而是直接進入環回介面,所以客戶端可以傳送請求,但是不會收到響應。
第3 4 步順序一定一定一定不能顛倒,否則還沒有配置好介面就已經通告出去了,就不會起作用。
5 為了檢驗lvs,我使用httpd服務進行一個簡單驗證,真實情況肯定就是在realsever上開啟專案啦!
在note02 上執行
yum install httpd -y
安裝httpd服務
進入目錄/var/www/html
cd /var/www/html vi index.html
在index.html中寫入from 192.168.64.134(note02的真實IP)進行驗證
執行命令
service httpd start
客戶端驗證:rip:80 可以正常顯示
vip:80不能正常顯示
6
配置lvs vip note01
yum install ipvsadm -y
ipvsadm -A -t 192.168.64.100:80 -s rr
// rr為輪詢機制 如果配置多臺realsever 則請求平均分配 -t 基於tcp協議
ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.134 -g
//-g :dr 模型 -t基於tcp協議
ipvsadm -ln
7
瀏覽器重新整理,訪問vip:
ipvsadm -lnc
//檢視note01 會有很多記錄 (偷窺)
netstat -natp
//檢視note01 沒有記錄 (說明請求直接跳過lvs 之後客戶端會直接與realserver建立連線)
如果能正常訪問 則說明配置lvs成功,其實lvs就相當於一個路由的功能