稲垣
tadas****@gmail*****
2010年 2月 3日 (水) 11:20:51 JST
田沼様 お世話になります。 稲垣です。 /etc/ha.d/ldirectord.cfに127.0.0.1:80を追加しましたが、 fallbackの設定が追加されなくなりました。 # ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.31.208.181:https rr -> 192.168.1.1:https Masq 1 0 0 -> 192.168.1.2:https Masq 1 0 0 TCP 172.31.208.181:http rr -> 192.168.1.2:http Masq 1 0 1 -> 192.168.1.1:http Masq 1 0 1 なんででしょうか? 以上、宜しくお願い致します。 Kohei TANUMA さんは書きました: > 稲垣さま > > 田沼です。 > > LVS の理解が不足してるので間違っているかもしれませんが > 私なりにわかったところまで回答します。 > 先に結論として、127.0.0.1 を real や fallback に指定する場合は > バーチャルサービスと同一のポートで動かす必要があるのではないかと > 思います。(つまり fallback 81 番ポートは無理) > そのため、先程の私の masq を指定するというのは間違いのようです。 > > 127.0.0.1 への振り分けはダイレクトにパケットが配送される > ようで、バーチャルサービス宛(172.31.207.10:80宛) のパケットが > 127.0.0.1:81 の Apache に飛ぶのでコネクションがリセットされて > いるように見えます。 > 試しに、iptables で 80 宛を 81 宛に無理やり書き換えると、 > Apache で正常に処理することができました。 > > iptables -t nat -A PREROUTING -i eth0 -p tcp -d 172.31.207.10 --dport 80 > -j DNAT --to 172.31.207.10:81 > > ただし、これだと通常の real が使い物にならなくなるので却下…。 > (上記 iptables の -A を -D で削除) > > 以下の設定で動作確認できました。 > > ■ ldirectord > fallback = 127.0.0.1:80 > virtual = 172.31.207.10:80 > real = 172.31.206.1:80 masq 1 > real = 172.31.206.2:80 masq 1 > checktype = negotiate > service = http > request = "index.html" > receive = "test" > scheduler = rr > protocol = tcp > > ■ 172.31.207.10 の Apache > ... > Listen 80 > ... > > ■ ipvsadm -ln (real が正常な場合) > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 172.31.207.10:80 rr > -> 172.31.206.1:80 Masq 1 0 0 > -> 172.31.206.2:80 Masq 1 0 0 > > ■ ipvsadm -ln (real 全てが異常な場合 - index.html の test 文字を消す) > IP Virtual Server version 1.2.1 (size=4096) > Prot LocalAddress:Port Scheduler Flags > -> RemoteAddress:Port Forward Weight ActiveConn InActConn > TCP 172.31.207.10:80 rr > -> 127.0.0.1:80 Local 1 0 0 > -> 172.31.206.1:80 Masq 0 0 0 > -> 172.31.206.2:80 Masq 0 0 0 > > とりあえず上記で fallback の Apache のページが表示されました。 > > 稲垣さんの設定の場合だと fallback のポートを 80 に設定し > (masq も消して)172.31.207.10 のサーバで HTTPd を 80 ポートで > 動かすように修正する必要があると思います。 > > ただし、間違いがあるかもしれませんので、他の識者の方々つっこみ > お願いします。 > > 以上です。 > > > 2010/02/02 12:19, 稲垣 wrote: > >> 田沼様 >> >> お世話になっております。 >> 稲垣です。 >> >> コマンド結果は以下の通りです。 >> # ipvsadm -ln >> IP Virtual Server version 1.2.1 (size=4096) >> Prot LocalAddress:Port Scheduler Flags >> -> RemoteAddress:Port Forward Weight ActiveConn InActConn >> TCP 172.31.207.10:80 rr >> -> 127.0.0.1:81 Local 1 0 1 >> >> 以上宜しくお願いします。 >> >> Kohei TANUMA さんは書きました: >> >>> 稲垣さま >>> >>> 田沼です。 >>> >>> 表示されないというのはページが表示されないという意味でしょうか? >>> 先のメールの ipvsadm の結果では以下のように fallback サーバの >>> ポートを 81 に設定しているにもかかわらずポートが 80 で >>> 追加されているのが問題と考えました。 >>> >>> >>> >>>>>> TCP 172.31.207.10:http rr >>>>>> -> LB01:http Local 1 0 0 >>>>>> >>>>>> >>> masq を追加した後の ipvsadm -ln の結果を >>> 確認させていただけますでしょうか。 >>> >>> >>> 2010/02/02 11:55, 稲垣 wrote: >>> >>> >>>> 田沼様 >>>> >>>> お世話になっております。 >>>> 稲垣です。 >>>> >>>> >>>> >>>>> fallback=127.0.0.1:81 masq >>>>> >>>>> >>>>> >>>> ご指摘の通りに設定しましたが、表示されません。 >>>> >>>> 以上、宜しくお願い致します。 >>>> >>>> >>>> Kohei TANUMA さんは書きました: >>>> >>>> >>>>> 稲垣さま >>>>> >>>>> 田沼と申します。 >>>>> >>>>> LVS についてはあまりわからないのですが、 >>>>> ldirectord の動作を確認したところ fallback 行で >>>>> forward 設定を省略すると gate として設定されるようです。 >>>>> ldirectord.cf の fallback を以下のように変更してみてください。 >>>>> >>>>> fallback=127.0.0.1:81 masq >>>>> >>>>> 以上です。 >>>>> >>>>> >>>>> 2010/02/02 10:50, 稲垣 wrote: >>>>> >>>>> >>>>> >>>>>> お世話になっております。 >>>>>> 稲垣です。 >>>>>> >>>>>> ipvsadmコマンドで全リアルサーバ(HTTP)をメンテナンス状態にし、 >>>>>> fallbackサーバを表示させたいのですが、 >>>>>> /etc/ha.d/ldirectord.cfに記載したfallbackサーバが表示されません。 >>>>>> >>>>>> ipvsadm -lの状態はfallbackサーバを表示しております。 >>>>>> >>>>>> /etc/ha.d/ldirectord.cfの設定はHTTPのリアル設定をコメントしております。 >>>>>> /etc/httpd/conf/httpd.confのListenは81になっており、直にたたくと問題なく >>>>>> 表示されます。 >>>>>> >>>>>> >>>>>> # ipvsadm -l >>>>>> IP Virtual Server version 1.2.1 (size=4096) >>>>>> Prot LocalAddress:Port Scheduler Flags >>>>>> -> RemoteAddress:Port Forward Weight ActiveConn InActConn >>>>>> TCP 172.31.207.10:http rr >>>>>> -> LB01:http Local 1 0 0 >>>>>> >>>>>> # cat /etc/ha.d/ldirectord.cf >>>>>> >>>>>> # Global Directives >>>>>> checktimeout=3 >>>>>> checkinterval=1 >>>>>> fallback=127.0.0.1:81 >>>>>> autoreload=no >>>>>> logfile="/var/log/ldirectord.log" >>>>>> #logfile="local0" >>>>>> #emailalert="admin****@x*****" >>>>>> #emailalertfreq=3600 >>>>>> #emailalertstatus=all >>>>>> quiescent=no >>>>>> >>>>>> # Sample for an http virtual service >>>>>> virtual=172.31.207.10:80 >>>>>> # real=172.31.206.1:80 masq 1 >>>>>> # real=172.31.206.2:80 masq 1 >>>>>> service=http >>>>>> request="index.html" >>>>>> # receive="Test Page" >>>>>> scheduler=rr >>>>>> # persistent=600 >>>>>> # netmask=255.255.255.255 >>>>>> # protocol=tcp >>>>>> checktype=negotiate >>>>>> >>>>>> 何か設定不備等ありますか? >>>>>> 以上、ご教授の程宜しくお願いします。 >>>>>> >>>>>> > >