N43 第十九周作業

2021-10-19 07:56:03 字數 4453 閱讀 4147

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️⃣配置路由器並設定路由**

#設定路由**

#臨時生效

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

3️⃣在lvs上配置

安裝yum install -y ipvsadm

編寫指令碼修改核心引數:

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

4️⃣rs配置

在兩邊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...