[Ultramonkey-l7-users 305] Re: fallback設定について

Zurück zum Archiv-Index

稲垣 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
>>>>>>>>
>>>>>>>> 何か設定不備等ありますか?
>>>>>>>> 以上、ご教授の程宜しくお願いします。
>>>>>>>>                 
>
>   





Ultramonkey-l7-users メーリングリストの案内
Zurück zum Archiv-Index