1. 程式人生 > >LVM配置(DR模式)

LVM配置(DR模式)

地方 cal 定義 效率 oss 文件 cti 網絡 sch

**LVS-DR模式工作原理:
原理:負載均衡器和RS都使用同一個IP對外服務但只有DR對ARP請求進行響應,所有RS對本身這個IP的ARP請求保持靜默也就是說,網關會把對這個服務IP的請求全部定向給DR,而DR收到數據包後根據調度算法,找出對應的RS,把目的MAC地址改為RS的MAC(因為IP一致)並將請求分發給這臺RS這時RS收到這個數據包,處理完成之後,由於IP一致,可以直接將數據返給客戶,則等於直接從客戶端收到這個數據包無異,處理後直接返回給客戶端由於負載均衡器要對二層包頭進行改換,所以負載均衡器和RS之間必須在一個廣播域,也可以簡單的理解為在同一臺交換機上

優點:和TUN(隧道模式)一樣,負載均衡器也只是分發請求,應答包通過單獨的路由方法返回給客戶端。與VS-TUN相比,VS-DR這種實現方式不需要隧道結構,因此可以使用大多數操作系統做為物理服務器。

1), DR模式, 全程目標地址, 原地址不變, 因為DR模式工作於2層
2), 請求報文從客戶端發出:
    原地址: CIP   源MAC  CMAC    目標地址: VIP   目標mac: xxx
3), 請求報文到達機房防火墻之後, 會在防火墻的內網口進行廣播, 找到VIP在哪兒 然後把包丟出去
    原地址: CIP   目標地址: VIP
    源MAC: FMAC    目標MAC: VMAC
4), 報文到達director之後, 解包, 發現目標mac是自己, 開始解析這個報文 
    處理完成, 通過自定義的一個調度算法, 轉發報文到達其中一臺RS上
    原地址: CIP   目標地址: VIP
    源mac: DMAC    目標MAC: RMAC
5), 數據報文到達RS之後, 進行節封裝, 發現目標mac是自己, 開始解析, 發現VIP也有,開始處理
6), 處理完成之後, 數據直接通過RS流向客戶端**

拓撲:VIP=192.168.2.133 DIP=192.168.2.130
RIP1=192.168.2.131 RIP2=192.168.2.132
1.分發器添加生成ens33:1配置文件

[root@Qj01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1
[root@Qj01 network-scripts]# vim ifcfg-ens33:1

技術分享圖片
[root@Qj01 network-scripts]# ifconfig
技術分享圖片

2.分發器配置LVS規則:

[root@Qj01 network-scripts]# ipvsadm -A -t 192.168.2.133:80 -s rr 
[root@Qj01 network-scripts]# ipvsadm -a -t 192.168.2.133:80 -r 192.168.2.131 -g  
[root@Qj01 network-scripts]# ipvsadm -a -t 192.168.2.133:80 -r 192.168.2.132 -g  

[root@Qj01 network-scripts]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.133:80 rr
-> 192.168.2.131:80 Route 1 0 0
-> 192.168.2.132:80 Route 1 0 0
[root@Qj01 network-scripts]# ipvsadm -S > /etc/sysconfig/ipvsadm

3.兩臺RS服務器上添加回環接口

[root@Qj02 ~]# ifconfig lo:1 192.168.2.133 netmask 255.255.255.255 
[root@Qj03 ~]# ifconfig lo:1 192.168.2.133 netmask 255.255.255.255

4.兩臺RS服務器上關閉ARP轉發
同一個廣播域: 配置了多個相同的VIP 是不允許的, 要想實現,就必須讓外面的網絡, 無法發現這個VIP的存在
因此 在Linux裏面, 可以修改內核參數, 實現接口IP的廣播不響應、不廣播
arp_ignore = 1 表示只回答目標IP是訪問本地網絡對應接口的arp請求
arp_announce = 2 只宣告本機網卡直連網絡所在的ip的arp廣播
(1)臨時生效

[root@Qj02 ~]#  echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore 
[root@Qj02 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens33/arp_announce
[root@Qj03 ~]#  echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore 
[root@Qj03 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens33/arp_announce

(2)永久生效:(註意realserver的實際link ok的網卡是不是ens33)

[root@Qj02 ~]# vim /etc/sysctl.conf #最後添加
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
[root@Qj03 ~]# vim /etc/sysctl.conf #最後添加
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2

或:
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

安裝web頁面測試

**註意:
網絡轉發:
基於2層的數據報文的轉發, 要比基於3層的網絡轉發效率要高

lvs-DR 是基於2層的轉發, 所以在LVS中所有的模式, 效率是最好的

1):基於mac的數據報文轉發, 是效率最好的, 但是是根據交換機的MAC地址表來實現的
    MAC表主要告訴你, 到xxxx地方該走那個端口
    如果交換不知道對方在哪兒, 這個時候, 他就要進行廣播, 就問xxxx在哪兒, 如果對應的設備給了回應, 那麽交換機也就更新了自己的MAC地址表 記錄到xxxx需要走這個端口     
2):2層設備不具有路由功能, 那麽廣播也就不具有跨路由的功能, 所有要實現mac地址廣播, 必須在同一物理網段
3):vlan具有隔離廣播的功能, 所有要能處理mac地址廣播, 就應該在同一個VLAN中

因此: 如果要實現LVS-DR模式
    1): 所有的設備應該在同一個物理網段
    2): 所有的設備都應該在同一個廣播域中**

LVM配置(DR模式)