溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LVS實現nat,dr

發布時間:2020-05-24 14:17:58 來源:網絡 閱讀:221 作者:不會運維 欄目:系統運維

LVS實現nat,dr

1.lvs:Linux Virtual Server
(1)l4四層路由器,四層交換機;
VS:根據請求報文的目標IP和目標協議及端口將其調度轉發至某RealServer,根據調度算法來挑選RS;
(2)lvs: ipvsadm/ipvs

ipvsadm:用戶空間的命令行工具,規則管理器,用于管理集群服務及相關的RealServer;
ipvs:工作于內核空間的netfilter的INPUT鉤子之上的框架;

(3)lvs集群類型中的術語:

vs:Virtual Server, Director, Dispatcher, Balancer
rs:Real Server, upstream server, backend serverCIP:Client IP, VIP: Virtual serve IP, RIP: Real server IP, DIP: Director IP
CIP <--> VIP == DIP <--> RIP 

(4)lvs集群的類型:
(a)lvs-nat:修改請求報文的目標IP;多目標IP的DNAT;

多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和PORT實現轉發;
(1)RIP和DIP必須在同一個IP網絡,且應該使用私網地址;RS的網關要指向DIP;
(2)請求報文和響應報文都必須經由Director轉發;Director易于成為系統瓶頸;
(3)支持端口映射,可修改請求報文的目標PORT;
(4)vs必須是Linux系統,rs可以是任意系統;

(b)lvs-dr:Direct Routing,直接路由;
通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變;
Director和各RS都得配置使用VIP;

(1) 確保前端路由器將目標IP為VIP的請求報文發往Director:
(a) 在前端網關做靜態綁定;
(b) 在RS上使用arptables;
(c) 在RS上修改內核參數以限制arp通告及應答級別;
arp_announce
arp_ignore
(2) RS的RIP可以使用私網地址,也可以是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向DIP,以確保響應報文不會經由Director;
(3) RS跟Director要在同一個物理網絡;
(4) 請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client;
(5) 不支持端口映射;

(c)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得支持隧道功能;

(d)lvs-fullnat:
通過同時修改請求報文的源IP地址和目標IP地址進行轉發;
CIP <--> DIP
VIP <--> RIP

(1) VIP是公網地址,RIP和DIP是私網地址,且通常不在同一IP網絡;因此,RIP的網關一般不會指向DIP;
(2) RS收到的請求報文源地址是DIP,因此,只能響應給DIP;但Director還要將其發往Client;
(3) 請求和響應報文都經由Director;
(4) 支持端口映射;
注意:此類型默認不支持;

(5)調度算法ipvs scheduler:
根據其調度時是否考慮各RS當前的負載狀態,可分為靜態方法和動態方法兩種:
(a)靜態方法:僅根據算法本身進行調度;

RR:roundrobin,輪詢;
WRR:Weighted RR,加權輪詢;
SH:Source Hashing,實現session 
DH:Destination Hashing;目標地址哈希,將發往同一個目標地址的請求始終轉發至第一次挑中的RS,典型使用場景是正向代理緩存場景中的負載均衡;

(b)動態方法:主要根據每RS當前的負載狀態及調度算法進行調度;

LC:least connections Overhead=activeconns*256+inactiveconns
WLC:Weighted LC Overhead=(activeconns*256+inactiveconns)/weight
SED:Shortest Expection Delay
Overhead=(activeconns+1)*256/weight
NQ:Never Queue
LBLC:Locality-Based LC,動態的DH算法;
LBLCR:LBLC with Replication,帶復制功能的LBLC;

2.ipvsadm:
(1)程序包:ipvsadm

    Unit File: ipvsadm.service
    主程序:/usr/sbin/ipvsadm
    規則保存工具:/usr/sbin/ipvsadm-save
    規則重載工具:/usr/sbin/ipvsadm-restore
    配置文件:/etc/sysconfig/ipvsadm-config

(2)ipvsadm命令:
核心功能:
集群服務管理:增、刪、改;
集群服務的RS管理:增、刪、改;
(a)查看:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
ipvsadm -D -t|u|f service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address -r server-address [options]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]

(b)管理集群服務:增、改、刪;

增、改:
        ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
刪:
        ipvsadm -D -t|u|f service-address
service-address:
    -t|u|f:
        -t: TCP協議的端口,VIP:TCP_PORT
        -u: UDP協議的端口,VIP:UDP_PORT
        -f:firewall MARK,是一個數字;
   [-s scheduler]:指定集群的調度算法,默認為wlc;

(c)管理集群上的RS:增、改、刪;

  增、改:
        ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
    刪:
        ipvsadm -d -t|u|f service-address -r server-address
server-address:
    rip[:port]

選項:
    lvs類型:
        -g: gateway, dr類型
        -i: ipip, tun類型
        -m: masquerade, nat類型

    -w weight:權重

(b)清空定義的所有內容:

ipvsadm -C
查看:
ipvsadm -L|l [options]
--numeric, -n:numeric output of addresses and ports
--exact:expand numbers (display exact values)
--connection, -c:output of current IPVS connections
--stats:output of statistics information
--rate :output of rate information
保存和重載:
    ipvsadm -S = ipvsadm-save
    ipvsadm -R = ipvsadm-restore

3.實現lvs-nat模型:
(1)實驗環境:
三臺服務器,一臺作為 director,兩臺作為 real server,director 有一個外網網卡(192.168.1.29) 和一個內網ip(192.168.100.1),兩個 real server 上只有內網 ip (192.168.100.2) 和 (192.168.100.2),并且需要把兩個 real server 的內網網關設置為 director 的內網 ip(192.168.0.8)
(2)安裝配置:
兩個 real server 上都安裝 httpd 服務
#yum install -y httpd
Director 上安裝 ipvsadm
#yum install -y ipvsadm
(3)Director配置:

[root@localhost /]#echo 1 > /proc/sys/net/ipv4/ip_forward:打開核心轉發
[root@localhost /]# ipvsadm -A  -t  192.168.1.29:80  -s wrr
[root@localhost /]# ipvsadm -a -t  192.168.1.29:80 -r 192.168.100.2:80 -m 
[root@localhost /]# ipvsadm -a -t  192.168.1.29:80 -r 192.168.100.3:80 -m 

(4)查看ipvsadm設置的規則

[root@localhost /]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http wrr
  -> 192.168.100.2:http           Masq    1      0          0         
  -> 192.168.100.3:http           Masq    1      0          0 

4.實現lvs-dr模型:
(1)實驗環境
三臺服務器,一臺作為 director,兩臺作為 real server,director中dip為172.20.10.9 ,兩個 real server 上只有內網 rip1 (172.20.10.8),rip2(172.20.10.10),設置vip為172.20.10.12
(2)rs的配置腳本:

[root@node6 ~]# vim rs.sh 

#!/bin/bash
#
vip=172.20.10.12
mask=255.255.255.255
case $1 in
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 lo:0 $vip netmask $mask broadcast $vip up
    route  add -host $vip dev lo:0
    ;;
stop)
    ifconfig lo:0 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 "Usage $(basename $0) start|stop"
   exit 1
   ;;
esac
[root@node6 ~]# yum instal -y  httpd
[root@node6 ~]# vim /var/www/html/index.html
node6 web page

(3)director上配置:

[root@node5 ~]ifconfig ens33:0 172.20.10.12 netmask 255.255.255.255 broadcast 172.20.10.12 up
[root@node5 ~]# ipvsadm -A  -t 172.20.10.12:80 -s wrr
[root@node5 ~]# ipvsadm -a -t 172.20.10.12:80 -r 172.20.10.8:80 -g -w 1 
[root@node5 ~]# ipvsadm -a -t 172.20.10.12:80 -r 172.20.10.10:80 -g -w 2

(4)查看ipvsadm設置的規則:

[root@node5 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.20.10.12:80 wrr
  -> 172.20.10.8:80               Route   1      0          0         
  -> 172.20.10.10:80              Route   2      0          0  
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女