- 締切済み
同一セグメントでのLVS
LinuxでLVSを利用してロードバランサを構築しています。 構成1: LB[keepalived(192.168.1.1)]仮想(192.168.0.3) A[Apache(192.168.0.1)] B[Apache(192.168.0.2)] 構成2: A[Apache+keepalived(192.168.0.1)]仮想(192.168.0.3) B[Apache(192.168.0.2)] DSASのページなどを参考にしているのですが、構成1の3台構成NATであれば問題なく動きます。しかし構成2の同一セグメントでサーバそのものに仮想を持たせるとうまくいきません。どうもAが仮想を持った際に192.168.0.2への振り分けが発生しても、自身で処理しようとしているのか失敗してしまいます。設定は以下の通りです。何が足りないのか教えて頂けると助かります。尚、問題切り分けとしてvrrpは片系です。 ---keepalived.conf virtual_server_group HTTP3 { 192.168.0.3 80 } virtual_server group HTTP3 { delay_loop 10 lvs_sched rr lvs_method DR protocol TCP virtualhost 192.168.0.3 real_server 192.168.0.1 80 { weight 1 inhibit_on_failure HTTP_GET { url { path /test.html status_code 200 } connect_timeout 3 } } real_server 192.168.0.2 80 { weight 1 inhibit_on_failure HTTP_GET { url { path /test.html status_code 200 } connect_timeout 3 } } } vrrp_instance VI3 { state MASTER interface bond0 lvs_sync_daemon_interface bond0 garp_master_delay 5 virtual_router_id 3 priority 100 nopreempt advert_int 1 virtual_ipaddress { 192.168.0.3/24 dev bond0 } } --- ---投入コマンド echo 0 > /proc/sys/net/ipv4/conf/bond0/rp_filter iptables -t mangle -A PREROUTING -d 192.168.0.3 -j MARK --set-mark 1 ip rule add prio 3 fwmark 1 table 3 ip route add local 0/0 dev lo table 3 iptables -t nat -A PREROUTING -p tcp -d 192.168.0.3 -j REDIRECT ---
- みんなの回答 (4)
- 専門家の回答
補足
ご回答及び検証ありがとうございます。 やはり出来るのは間違いないみたいですが(ldirectordも中身はLVSですよね?最近ultramonkeyのサイトが繋がらないのは何故?) 、だとするとt-okura様の言うとおり問題はloに飛んでいるパケットをeth0などの外部にRoutingしてやれば行けるのかも!と思ってiptablesを叩きまくりましたが、うまくいきませんでした(eth0にDNATしてみても、やっぱり振り分けるより先にApacheが食べてしまってるように見える)。ただ少し光明が見えてきた気がするのですが。 何か良い手段がありましたらご教授下さい。