稲垣
tadas****@gmail*****
2010年 2月 3日 (水) 13:58:01 JST
田沼様 お世話になります。 稲垣です。 リアルサーバのhttpdを停止したらfallbackのあて先が表示されました。 ただ、httpsの方がfallbackに同じ宛先を指定しているのですが表示されません。 「プロキシサーバへの接続を拒否されました。」 がブラウザに表示されます。 以上、宜しくお願いします。 Kohei TANUMA さんは書きました: > 稲垣さま > > 田沼です。 > > fallback は実際のリアルサーバが全て異常と判断された際の > 代替サーバになりますので、リアルサーバが正常な場合は > 追加されない仕様のはずです。 > > リアルサーバの監視は ldirectord の checktype や service 設定に > 従いますので、例えば、checktype = negotiate, service = http の > 場合は、192.168.1.1, 192.168.1.2 の Apache 等を停止した際に > fallback 設定の 127.0.0.1:80 が自動的に追加されるはずです。 > checktype = ping の場合は、ケーブルを抜く、インタフェースを > down させるなどして ping がリアルサーバに届かない状態にして > みてください。 > checktype = on の場合は、常にリアルサーバが正常と判断されるため > fallback は追加されないと思います。 > > 以上、宜しくお願い致します。 > > > 2010/02/03 11:20, 稲垣 wrote: > >> 田沼様 >> >> お世話になります。 >> 稲垣です。 >> >> /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 >>>>>>>> >>>>>>>> 何か設定不備等ありますか? >>>>>>>> 以上、ご教授の程宜しくお願いします。 >>>>>>>> > >