前期准備:
兩台服務器 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就相當於一個路由的功能