LVS / NATの原則と特徴:https://blog.csdn.net/qq_35887546/article/details/104425264
1.実験の準備
実験は、3台の仮想マシンと物理マシンが必要です。
仮想マシン名 | 効果 | IP |
---|---|---|
サーバー1 | DS | 172.25.63.1(ネットワーク内)、172.25.254.100(エクストラネット) |
SERVER2 | RS1 | 172.25.63.2 |
server3の | RS2 | 172.25.63.3 |
VIPは次のとおりです。172.25.254.100
テストサービス:HTTPのポート:80台
のクライアントへの物理的なマシン
SERVER2とserver3のは、Apacheをインストールし、デフォルトでは、ディレクトリ/ var / www / htmlと設定の下でリリースされ書かれた文書を公開
2. [設定DS
SERVER1構成さlvsadm
最初の追加、及びDRモードトンネルを追加するポリシーTUNモードを除去する前に:
[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
実験ldirectordとkeepalivedの停止サービスの前に:
[root@server1 ~]# systemctl stop keepalived
[root@server1 ~]# systemctl stop ldirectord
VIPトンネルインターフェイスと以前にセットを削除します。
[root@server1 ~]# modprobe -r ipip
[root@server1 ~]# ip addr del 172.25.63.100/32 dev eth0
[root@server1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:1b:f6:56 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.1/24 brd 172.25.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe1b:f656/64 scope link
valid_lft forever preferred_lft forever
DS用カードを追加2.
172.25.254.100、カード有効化:カードを追加し、新しいカードは、外部ネットワークIPに追加され
、設定されたIPを:
[root@server1 ~]# ip addr add 172.25.63.100/24 dev eth1
[root@server1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:1b:f6:56 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.1/24 brd 172.25.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe1b:f656/64 scope link
valid_lft forever preferred_lft forever
4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 52:54:00:5a:47:c7 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.100/24 scope global eth1
valid_lft forever preferred_lft forever
カードをアクティブ化します。
[root@server1 ~]# ip link set up eth1
[root@server1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:1b:f6:56 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.1/24 brd 172.25.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe1b:f656/64 scope link
valid_lft forever preferred_lft forever
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:5a:47:c7 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.100/24 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe5a:47c7/64 scope link
valid_lft forever preferred_lft forever
DS用NATモードポリシーを追加します。3.
SERVER1には:
NATモード-m
[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.63.2 -m
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.63.3 -m
[root@server1 ~]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP server1:http rr
-> server2:http Masq 1 0 0
-> server3:http Masq 1 0 0
4. DSは、ルーティングメカニズムを回し
SERVER1に:
恒久的に開いています:
[root@server1 ~]# vim /etc/sysctl.conf
填入:
net.ipv4.ip_forward = 1
[root@server1 ~]# sysctl -p #使更改生效
net.ipv4.ip_forward = 1
一時的なオープン:
sysctl -a | grep ip_forward
sysctl -w net.ipv4.ip_forward=1
sysctl -p
5.負荷NATモジュールDS
SERVER1で:
[root@server1 ~]# modprobe iptable_nat
注:あなたがロードしない場合は、このモジュールは、最初の訪問で成功しますが、アクセス遅延が長すぎると再び表示されます、または訪問のタイムアウト
6.設定のRS
SERVER2およびserver3の中:
削除SERVER2とserver3のTUNモジュール(例えば、サーバ2に、server3の動作は同じです)。
[root@server2 ~]# modprobe -r ipip
[root@server2 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:fb:99:44 brd ff:ff:ff:ff:ff:ff
inet 172.25.63.2/24 brd 172.25.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fefb:9944/64 scope link
valid_lft forever preferred_lft forever
カードにゲートウェイを追加します172.25.63.1
(例えば、サーバ2に、server3のは同じ操作です):
永久に追加しました:
[root@server2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@server2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
IPADDR=172.25.63.2
PREFIX=24
GATEWAY=172.25.63.1
[root@server2 ~]# systemctl restart network #重启网络
[root@server2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.63.1 0.0.0.0 UG 0 0 0 eth0 #表示添加成功
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.25.63.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
一時的に追加
route add default gw 172.25.63.1 #删除网关:route del default gw 172.25.8.1
7.テスト
クライアント:
[root@foundation63 ~]# curl 172.25.254.100
server3
[root@foundation63 ~]# curl 172.25.254.100
server2
[root@foundation63 ~]# curl 172.25.254.100
server3
[root@foundation63 ~]# curl 172.25.254.100
server2
[root@foundation63 ~]# curl 172.25.254.100
server3
NATは成功したモデルを表し