1、lvs-nat
多目標ip的dnat,通過將請求報文中的目標位址和目標埠修改為某挑選出的rs的rip和port實現**
(1) rip和dip必須在同乙個ip網路,且應該使用私網位址;rs的閘道器要指向dip;
(2) 請求報文和響應報文都必須經由director**;director易於成為系統瓶頸;
(3) 支援埠對映,可修改請求報文的目標port;
(4) vs必須是linux系統,rs可以是任意系統;
應用場景:由於配置簡單,節省ip的特點,一般用在併發量不大的中小企業;
2、lvs-dr
直接路由;通過為請求報文重新封裝乙個mac首部進行**,源mac是dip所在介面的mac,目標mac是某挑選出的rs的rip所在介面的mac位址;源ip/port以及目標ip/port均保持不變;
(1) 確保前端路由器將目標ip的vip的請求報文發往director;
(a) 在前端閘道器做靜態繫結;
(b) 在rs上使用arptables;
(2) rs的rip可以使用私網位址,也可以是公網位址;rip與dip在同一ip網路;rip的閘道器不指向dip,以確保響應報文不會經由director;
(3) rs跟director要在同乙個物理網路;
(4) 請求報文要經由director,但響應不能經由director,而是由rs直接發往client;
(5) 不支援埠對映;
應用場景:併發量非常大的情況下會用到此型別,dr模型的併發處理量能達到硬體級別的能力;
3、lvs-tun
**方式:不修改請求報文的ip首部(源ip為cip,目標ip為vip),而是在原ip報文之外再封裝乙個ip首部(源ip是dip,目標ip是rip),將報文發往挑選出的目標rs;rs直接響應給客戶端(源ip是vip,目標ip是cip);
(1) dip、vip、rip都應該是公網位址;
(2) rs的閘道器不能也不可指向dip;
(3) 請求報文要經由director,但響應不能經由director;
(4) 不支援埠對映;
(5) rs的os得支援隧道功能;
應用場景:如果環境要求dip與rip不在同一物理網路(如災備)時,就需要用到lvs-tun模型;
4、lvs-fullnat
通過同時修改請求報文的源ip位址和目標ip位址進行**;
(1) vip是公網位址,rip和dip是私網位址,且通常不在同一ip網路;因此,rip的閘道器一般不會指向dip;
(2) rs收到的請求報文源位址是dip,因此,只能響應給dip;但director還要將其發往client;
(3) 請求和響應報文都經由director;
(4) 支援埠對映;
應用場景:與lvs-nat類似,解決了跨越網段部署lvs的問題
lvs-dr工作原理:
參考:lvs-dr工作原理**詳解lvs-dr實驗:
1️⃣環境準備如下
2️⃣配置路由器並設定路由**
3️⃣在lvs上配置#設定路由**
#臨時生效
echo
"1"> /proc/sys/net/ipv4/ip_forward
[root@centos7 ~]
#cat /proc/sys/net/ipv4/ip_forward
1#永久生效需寫入檔案
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#生效[root@centos7 ~]
#sysctl -p
net.ipv4.ip_forward = 1
安裝
yum install -y ipvsadm
編寫指令碼修改核心引數:
4️⃣rs配置vip=
'10.0.0.100'
iface=
'lo:1'
mask=
'255.0.0.0'
port=
'80'
rs1=
'192.168.9.109'
rs2=
'192.168.9.108'
scheduler=
'wrr'
type=
'-g'
case
$1in
start)
ifconfig
$iface
$vip netmask $mask
#broadcast $vip up
iptables -f
ipvsadm -a -t $
:$ -s $scheduler
ipvsadm -a -t $
:$ -r $
$type -w 1
ipvsadm -a -t $
:$ -r $
$type -w 1
echo
"lvs start";;
stop)
ipvsadm -c
ifconfig
$iface down
echo
"lvs stop";;
*)echo
"usage $(
basename $0)
start|stop"
exit 1
;;esac
在兩邊rs上安裝httpd,且新增好頁面並開啟服務
測試:
設定rs閘道器:
5️⃣使用指令碼配置rs核心引數
測試#!/bin/bash
vip=10.0.0.100
mask=
'255.0.0.0'
dev=lo:1
case
$1in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig
$dev
$vip netmask $mask
#broadcast $vip up
#route add -host $vip dev $dev
echo
"rs is ready";;
stop)
ifconfig
$dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo
"rs is canceled";;
*)echo
"usage: $(
basename $0)
start|stop"
exit 1
;;esac
參考:第十九周作業-虛懷若谷參考:3、實現lvs+keepalived高可用。
N43 第十二周作業
1 檢查服務狀態 啟動chrony服務 systemctl start chronyd.service 檢視服務狀態 systemctl status chronyd.service 2 關閉防火牆 直接關閉防火牆 systemctl stop firewalld.service 禁止firewal...
第十九周作業
1 實現永久重定向,當使用者訪問 www.magedu.org 這個網域名稱時我想讓他跳轉到 www.magedu.com 的主頁面,請寫出配置過程 location 2 rewrite案例 判斷檔案是否存在,要求 當使用者訪問到公司 的時輸入了乙個錯誤的 url 可以將使用者重定向至 www.ma...
馬哥部落格作業第十九周
1 實現永久重定向,當使用者訪問 www.magedu.org 這個網域名稱時我想讓他跳轉到 www.magedu.com 的主頁面,請寫出配置過程 在nginx配置檔案中新建乙個虛擬主機的子配置檔案,配置資訊如下 root localhost nginx vim conf conf.d pc.co...