記事のディレクトリ
-natモードLVS達成
デザインの特徴:
(1)同一のIPネットワークにおけるRIPおよびDIP、RIPゲートウェイ点DIP
(2)ポートマッピングをサポート
(3)監督へのオープンコアフォワーディング
RS上の操作
Apacheのインストール
root@rs1:~# apt install apache2
root@rs2:~# apt install apache2
root@rs1:~# echo RS1 >/var/www/html/index.html
root@rs2:~# echo RS2 >/var/www/html/index.html
DIPでApacheサーバのゲートウェイ
root@rs1:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.102 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
root@rs2:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.102 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
オン・ディレクター
Directorコア・オープンにサーバーを転送します
net.ipv4.ip_forward = 1
ルールの追加
root@director:~# ipvsadm -A -t 10.20.1.102:80 -s rr
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.103 -m
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.104 -m
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.20.1.102:80 rr
-> 192.168.1.103:80 Masq 1 0 0
-> 192.168.1.104:80 Masq 1 0 0
クライアントでの操作
検証:
root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS1
RS2
使用ipvsadmのルール
root@director:~# ipvsadm -Ln --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 10.20.1.102:80 0 0 0 0 0
-> 192.168.1.103:80 0 0 0 0 0
-> 192.168.1.104:80 0 0 0 0 0
root@director:~# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 0A140166:0050 rr
-> C0A80168:0050 Masq 1 0 0
-> C0A80167:0050 Masq 1 0 0
RS-加重
root@director:~# ipvsadm -E -t 10.20.1.102:80 -s wrr
root@director:~# ipvs -e -t 10.20.1.102:80 -r 192.168.1.103 -m -w 6
root@director:~# ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104 -m -w 2
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.20.1.102:80 wrr
-> 192.168.1.103:80 Masq 6 0 0
-> 192.168.1.104:80 Masq 2 0 0
root@director:~#
root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS2
RS1
RS1
RS1
RS2
RS1
RS1
RS1
RS2
NATポートマッピング
root@rs2:~# vim /etc/apache2/ports.conf
Listen 8080
私たちは、それが不可能な転送ルールを変更することが判明しました
root@director:~# ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
Memory allocation problem
あなたが削除した後最初に確立することができます
root@director:~# ipvsadm -d -t 10.20.1.102:80 -r 192.168.1.103:80
root@director:~# ipvsadm -d -t 10.20.1.102:80 -r 192.168.1.104:80
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.103:8080 -m -w 6
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.20.1.102:80 wrr
-> 192.168.1.103:8080 Masq 6 0 3
-> 192.168.1.104:8080 Masq 2 0 1
ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.103:8080 -m -w 6
送信元アドレスのハッシュを使用して
root@director:~# ipvsadm -E -t 10.20.1.102:80 -s sh
root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS1
RS1
RS1