ユーザ用ツール

サイト用ツール


01_linux:01_net:23_lvs_on_cloudstack

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:01_net:23_lvs_on_cloudstack [2014/08/25 07:02] – 01_linux:01_net:22_lvs_on_cloudstack renamed to 01_linux:01_net:23_lvs_on_cloudstack matsui01_linux:01_net:23_lvs_on_cloudstack [2018/11/01 23:21] (現在) matsui
行 1: 行 1:
 +====== 23 LVS on CloudStack ======
 +
 +<code>
 +(internet)
 +       |
 +       | 182.48.51.190
 +  +----+-----------+
 +  | Virtual Router |
 +  +----+-----------+
 +       | 10.1.0.1/24 GW
 +       |
 +  -----+------ 10.1.0.0/24 ------+-------------------+--------
 +                                                 |
 +       | eth0   10.1.0.10/24                       |
 +       | eth0:0 10.1.0.100/24    | eth0 10.1.0.150   | eth0 10.1.0.160
 +  +----+------+           +------+----+         +---+-------+
 +  | LVS serv  |           | Web serv1 |         | Web Serv2 |
 +  +----+------+           +------+----+         +-----------+
 +</code>
 +
 +===== LVS Server =====
 +
 +=== 1.ipvsadm インストール ===
 +<code console>
 +# yum install ipvsadm
 +</code>
 +
 +=== 2.VIPを付けておく ===
 +
 +<code console>
 +# ip addr add 10.1.0.100/24 label eth0:0 dev eth0
 +</code>
 +
 +  * ※参考:削除する場合 \\ <code console># ip addr del 10.1.0.100/24 label eth0:0 dev eth0</code>
 +
 +=== 3.sysctl編集 ===
 +
 +== sysctl.confに追加 ==
 +
 +<code console>
 +# vi /etc/sysctl.conf
 +
 +下記を追加
 +net.ipv4.ip_forward=1
 +net.ipv4.conf.default.rp_filter=0
 +</code>
 +
 +今回はNICが1つなので本来は必要ないが、NICを2つで構成している場合は必ず「net.ipv4.conf.default.rp_filter」を設定する。
 +[[https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Server_Security-Reverse_Path_Filtering.html|参考:net.ipv4.conf.default.rp_filter]]
 +
 +
 +== 反映 ==
 +
 +<code console>
 +# sysctl -p
 +</code>
 +
 +=== 4.Vritual Routerの設定 ===
 +
 +ファイアウォールは開けておく
 +Nat設定(ポート転送)は、80番、443番を VIP:10.1.0.100に対して通しておく。
 +
 +=== 5.ipvsamで設定を入れる ===
 +
 +== VIP設定 ==
 +
 +<code console>
 +# ipvsadm -A -t 10.1.0.100:80 -s lc
 +# ipvsadm -A -t 10.1.0.100:443 -s lc
 +</code>
 +
 +== 実サーバ設定 ==
 +<code console>
 +# ipvsadm -a -t 10.1.0.100:80 -r 10.1.0.150 -g
 +# ipvsadm -a -t 10.1.0.100:80 -r 10.1.0.160 -g
 +# ipvsadm -a -t 10.1.0.100:443 -r 10.1.0.150 -g
 +# ipvsadm -a -t 10.1.0.100:443 -r 10.1.0.160 -g
 +</code>
 +
 +== 確認 ==
 +
 +<code console>
 +# ipvsadm -Ln
 +IP Virtual Server version 1.2.1 (size=4096)
 +Prot LocalAddress:Port Scheduler Flags
 +  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
 +TCP  10.1.0.100:80 lc
 +  -> 10.1.0.150:80                  Route        0          0         
 +  -> 10.1.0.160:80                  Route        0          0         
 +TCP  10.1.1.85:443 lc
 +  -> 10.1.0.150:443                 Route        0          0         
 +  -> 10.1.0.160:443                 Route        0          0         
 +</code>
 +
 +===== Web Serv側 =====
 +
 +LVSサーバ側の設定が終わっていると、「182.48.51.190 -> 10.1.0.100」への通信がそのままWeb Serv1、Web Serv2へ転送されます。
 +そのままだと、自分宛てと気づけずにパケットを処理する事ができません。
 +その為、下記どちらかでVIP宛て通信を返す必要があります。
 +
 +==== 1.PREROUTING してVIP宛て通信を処理 ====
 +
 +iptables -t nat -I PREROUTING -d 10.1.0.100 -j REDIRECT
 +
 +==== 2.ループバックアドレスを設定 ====
 +
 +<code console>
 +# ip addr add 10.1.0.100/24 label eth0:0 dev eth0
 +</code>
 +
 +=== sysctl修正 ===
 +
 +ループバックアドレスを設定すると、arp関係で問題が出るので、
 +下記の設定を入れてあげる。
 +
 +== sysctl.conf修正 ==
 +
 +<code console>
 +# vi /etc/sysctl.conf
 +
 +下記を追加
 +net.ipv4.conf.all.arp_ignore = 1
 +net.ipv4.conf.all.arp_announce = 2
 +</code>
 +
 +== 反映 ==
 +<code console>
 +# sysctl -p
 +</code>