• 締切済み

同一セグメントでの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 ---

みんなの回答

回答No.4

かなり前の投稿なのでいまさらですが、こちらの投稿を参考に下記の設定を行って 実現できましたので、記載させていただきます。 お話にあったように、「keepalivedが受け取る前にApacheが受け取ってしまうのか、バランシングをせずに全てAのみで処理されてしまうのです。」という部分がありましたので、 master, backupそれぞれになった際に、iptablesの設定を動的に書き換えるシェルを実行し、 VIP宛のパケットがkeepalivedで処理されるようにしました。(単純にiptablesのコマンドを叩いているだけです) keepalived.confの設定は両サーバーとも同じです。 - keepalived.conf vrrp_instance V_WEB { state BACKUP ~~~ 省略 notify_master "/bin/sh /etc/keepalived/notify_master.sh" notify_backup "/bin/sh /etc/keepalived/notify_backup.sh" } - notify_master.sh #!/bin/sh iptables -t nat -D PREROUTING -d 192.168.0.3 -j REDIRECT - notify_backup.sh iptables -t nat -D PREROUTING -d 192.168.0.3 -j REDIRECT iptables -t nat -A PREROUTING -d 192.168.0.3 -j REDIRECT

全文を見る
すると、全ての回答が全文表示されます。
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.3

> できない!というずばりの回答を頂きましたが、今は出来るようです。 どうも貴重な情報をありがとうございます。 keepalived ではなく ldirectord ですが試してみたところ、下記のように できました。 # ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.3:80 rr -> 192.168.0.11:80 Route 1 0 0 -> 192.168.0.12:80 Route 1 0 0 -> 192.168.0.10:80 Local 1 0 0 昔できなかったのは、ループバックアドレス 127.0.0.1 だったのかもし れません。 本題の同居しているサーバ自身からのアクセスは、こちらでも振り分け されません。tcpdump してみると lo にパケットが現れています。振り 分けするには eth0 経由にすればよいのではないかと思うのですが、 lo のパケットを eth0 にまわす方法はわかりません。

del4thta
質問者

補足

ご回答及び検証ありがとうございます。 やはり出来るのは間違いないみたいですが(ldirectordも中身はLVSですよね?最近ultramonkeyのサイトが繋がらないのは何故?) 、だとするとt-okura様の言うとおり問題はloに飛んでいるパケットをeth0などの外部にRoutingしてやれば行けるのかも!と思ってiptablesを叩きまくりましたが、うまくいきませんでした(eth0にDNATしてみても、やっぱり振り分けるより先にApacheが食べてしまってるように見える)。ただ少し光明が見えてきた気がするのですが。 何か良い手段がありましたらご教授下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

DSR(Direct Server Return)の構成をされていますが、DSR は、ロードバラ ンサの IP に届いたアクセスを振り分け先のサーバが、あたかも自分がそ の IP を持つサーバであるかのように振る舞って、クライアントに直接応 答を返すものです。応答パケットのソースアドレスは、ロードバランサの アドレスになります。 このことを実現するため、振り分け先のサーバは、ロードバランサあての アクセスを自分自身に取り込みます。つまり、DSR 構成のサーバ にロードバランサあてのアクセスがあると、自分自身で処理してしまうた め、振り分けが行われません。 なお、LVS では DSR 構成でなくてもロードバランサとリアルサーバを 同居させることはできないはずです。数年前に散々テストして、できない という情報を見つけました。もっとも、そのころ keepalived に DSR を行 うような機能はなかったので、変わっているかもしれません。

del4thta
質問者

補足

ご回答ありがとうございます。 できない!というずばりの回答を頂きましたが、今は出来るようです。下記の補足にも記述しました通り、別サーバにクライアントがあれば出来てしまうのです。はてなの中の人+ultramonkleyなどを参考に出来た次第です。 http://d.hatena.ne.jp/hirose31/20060817/1155795703 http://72.14.235.104/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-36,GGLJ:ja&q=cache:http%3A%2F%2Fultramonkey.jp%2F2.0.1%2Ftopologies%2Fsl-ha-lb-eg.html tcpdumpで内容を確認しましたが、srcMACが違う以外は同じパケットが飛んでいるように見えます。確かにDSRであればIPは書き換えないので自身でそのパケットを取り込んでしまうのでダメそうな気もしますが、外部から出来て自身から出来ないのはおかしい!と思い、何か方法があるのではないかと模索しているところです。 何か良いアイデアがありましたら宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • ops
  • ベストアンサー率52% (13/25)
回答No.1

はじめまして、 掲題は同一セグメントのLVSと記載がありましたが、 2台でLVS構成構築可否なのでしょうか?との質問と見受けられますが。 1台がLVSの旗振り役+REALサーバ、2台目がリアルサーバー。 ミッションクリティカルなら 正直、LVSが2台構成でその配下へREALサーバーが繋がります。 http://www.thinkit.co.jp/free/compare/17/9/ 2の構成の利点、なぜそのような構成にしたいのか利点がわかりません。 LVS+REALサーバ役のサーバーに障害発生した場合どうしますか。 回答により余談になってしまいましたね。(^^;;)

参考URL:
http://www.thinkit.co.jp/free/compare/17/9/
del4thta
質問者

補足

ご回答ありがとうございます。 当方が考えているものは、ご認識通り2台でLVS+REALサーバです。 2台で済ませたいのは単にサーバ数を減らしたいからです。 A[Apache+keepalived(192.168.0.1)]仮想(192.168.0.3) B[Apache(192.168.0.2)] AのkeepalivedがMASTERとなり(vrrpにて仮想を持つ)AとBのApacheにバランシングをしていて、Aのkeepalivedに障害があった際にBのkeepalivedがMASTERとなり、継続してAとBのApacheにバランシングをさせたいのです。上記設定にて別サーバのクライアントからアクセスをすると、AとBのApacheにバランシングされる事、Aのkeepalivedだけを落としてもBのkeepalivedが状態を引き継ぎAとBのApacheにバランシングを継続する事、AをシャットダウンしてもBが全てを引き継ぐ事も確認しています。 問題なのは、クライアントがAの上にいることなのです。クライアントが仮想(192.168.0.3)へのパケットを送信した際、期待する動作としては自身のkeepalivedがそのパケットを受け取り、dstMACを書き換えてAとBにバランシングしてほしいのですが、keepalivedが受け取る前にApacheが受け取ってしまうのか、バランシングをせずに全てAのみで処理されてしまうのです。 ちょっとややこしい話ですが、以下のようなものをイメージして頂ければ。  A     B Client  Client  |   ×  | Apache Apache

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • iptablesでFTPのパッシブモード通信許可

    こんにちは。 iptablesの学習でテスト用のFWサーバーと2台のWebサーバーをつくりました。 いまはForwardでアクセスごとに転送先を振り分ける実験をしています。 FTPのForward設定でわからないことがあるので質問させてください。 やりたいこと: ip_conntrack_ftpを組み込めばiptablesにいちいちパッシブ通信の使用ポートすべてを指定しなくても、モジュールが自動で制御してくれるという情報をネットで見かけ、それをやってみようと考えています。ところがどうがんばってもFTPのパッシブモードがつながりません。FTP以外のサービス、たとえばDNS, NTP, HTTP等のForwardは問題なく行えています。 環境: FWサーバー → CentOS6 iptablesで外部からのアクセスをブロックしたり、振り分けたり。 WEBサーバー → CentOS6 apacheとvsftpdでWebサーバーを構成。iptables無効です。 ルーター → 業務用ですがファイアウォール等はすべて無効になっています。 111.222.333.0はグローバルIPアドレスです。 192.168.1.0はローカルIPアドレスです。                              -eth0(WEB_SERVER1)                              | 192.168.1.2(→111.222.333.2) (ONU)-(ROUTER)-eth0(FW_SERVER)eth1----|        111.222.333.1(eth0)          |        111.222.333.2(eth0:1)         -eth0(WEB_SERVER2)        111.222.333.3(eth0:2)          192.168.1.3(→111.222.333.3)        192.168.1.1(eth1) FWサーバーのiptable設定: net.ipv4.ip_forward = 1 ip_conntrack_ftpモジュール有効 ip_nat_ftpモジュール有効 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP . .(一部省略) . # HTTP iptables -A FORWARD -p tcp -i eth0 -o eth1 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp -i eth1 -o eth0 -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT # FTP(ここをどうしたらいいのかわからない) iptables -A FORWARD -p tcp --dport 21 -j ACCEPT iptables -A FORWARD -p tcp --sport 21 -j ACCEPT # Webserver1 iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.2 -j DNAT --to-destination 192.168.1.2 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.2 -j SNAT --to-source 111.222.333.2 # Webserver2 iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.3 -j DNAT --to-destination 192.168.1.3 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.3 -j SNAT --to-source 111.222.333.3 上記設定でFTPのForward部分をmultiportにしてポート20を入れたり除いたり、NEWやESTABLISHEDやRELATEDを入れたり消したり、いろいろ試行錯誤していますがFilezillaで下のようなエラーがでます。 PASV レスポンス: 227 Entering Passive Mode (111,222,333,2,92,226). コマンド: LIST エラー: 接続タイムアウト エラー: ディレクトリ一覧表示の取り出しに失敗しました 説明が長くて恐縮ですがよろしくお願いします。 <(_ _)>

  • ポートフォワードについて

    よろしくお願いいたします。 Linux上で2枚のLANカードでルーターを構築中です。 環境は、 eth0:インターネットへ(外へ) eth1:ローカルネット(内へ) 接続しています。 設定したiptables(ポートフォワードの部分)は、以下のとおりです。 iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 iptables -A FORWARD -i eth0 -p tcp --dport http -j ACCEPT iptables -A FORWARD -o eth0 -p tcp --sport http -j ACCEPT 実際外部から内部のwebサーバーにつながるのですが、 ルータ上から、ルータに割り当てられたグローバルIPアドレスで、 内部webサーバのホームページを見ようとすると見れません。 何か他に設定しないといけないのでしょうか?

  • 外部コマンドに変数を使うにはどうしたらよいのでしょうか

    perlで書いたCGIでアクセスしてきたマシンのIPを取得 $user_ip = $ENV{'SERVER_ADDR}; 外部コマンドでiptableの設定を行うようにしたいのですが、以下のようにコマンドに変数($user_ip)を指定することができません。 system ("iptables -t nat -A PREROUTING -d $user_ip -i eth0 -j DNAT --to 192.168.0.10") どなたか解決策をお願いします。

    • ベストアンサー
    • Perl
  • iptablesでアドレス変換したい

    初心者です。 iptablesの勉強中ですが、アドレスの変換がうまくできず行き詰っています。 下図のように Mannaka をはさんで隔離された実験環境をつくりました。ここでやりたいことは、とにかくどんなアクセスやプロセスでもいいので、Mannaka をはさんで 192.168.10.10 <--> 192.168.20.100 192.168.10.20 <--> 192.168.20.200 というアドレス変換を実現したいということです。実験なのでセキュリティは度外視し、とにかくつながることを優先しています。Server1とServer2ではWebサーバーが動いていて、Apacheのインストールページが表示されます。 (192.168.20.100) Server1――          |          |―(eth1)Mannaka(eth0)―――PCs(192.168.10.X)          | (eth0=192.168.10.10)Mannaka IP Server2――  (eth1=192.168.20.10)Mannaka IP (192.168.20.200)          ---            (eth0:1=192.168.10.100)Server1 IP            (eth0:2=192.168.10.200)Server2 IP iptablesの設定は下記のようにしました。 ---------- ---------- #!/bin/sh service iptables restart echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A FORWARD -d 192.168.10.10 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.10 -j ACCEPT iptables -A FORWARD -d 192.168.10.20 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.20 -j ACCEPT iptables -t nat -A PREROUTING -d 192.168.10.10 -j DNAT --to 192.168.20.100 iptables -t nat -A PREROUTING -d 192.168.10.20 -j DNAT --to 192.168.20.200 iptables -t nat -A POSTROUTING -s 192.168.20.100 -j SNAT --to 192.168.10.10 iptables -t nat -A POSTROUTING -s 192.168.20.200 -j SNAT --to 192.168.10.20 ---------- ---------- 意図としては、 192.168.10.10へのアクセスがServer1(実IP192.168.20.100)、 192.168.10.20へのアクセスがServer2(実IP192.168.20.200) へと割り振られ、同じく Server1(実IP192.168.20.100)からのアクセスが192.168.10.10、 Server2(実IP192.168.20.200)からのアクセスが192.168.10.20 へと割り振られる、ということなのですが、スクリプトを実行してもeth0側のPCからeth1側のサーバーにアクセスできません。eth1側からeth0側へのアクセスもできません。192.168.20.0内部でのPing送受信やWebサイト閲覧は自由にできますが、eth0側のPCから192.168.10.10と192.168.10.20にPingを送っても、Mannakaサーバーが応答してしまい意図した動きにはなっていません。Server1とServer2のWebサイトも閲覧できません。 環境は、Mannaka, Server1, Server2 がCentOS6、その他のPCはWindows7です。 これがなぜ意図したとおりに動かないのか、そしてどうすれば動くようになるのかをご教示いただけないでしょうか。 よろしくお願いします。

  • ipmasqadmをiptablesで定義する方法について

    お世話になります。 Linuxをルーター機能で2枚のNIC構成で作成しています。 kernel-2.2では下記のコマンドでDMZにあるWebサーバーにポートフォアワードしていました。 /sbin/ipmasqadm portfw -a -P tcp -L 1.2.3.4 80 -R 192.168.0.101 80 これをkernel-2.4ではiptablesを使用して構成するようですが、その定義がいまいち理解できていません。 その定義方法は下記のものだけでよろしいのでしょうかをお尋ねします。つまり、下記のみで外部からDMZゾーンにあるWebサーバーへのアクセスが可能かどうか?です。 /sbin/iptables -A FORWARD -p tcp -s 0.0.0.0 --dport 80 -d 192.168.0.101 -j ACCEPTなど・・・ /sbin/iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 80 -j DNAT --to 192.168.0.101:80 以上のヒントをお願いします。

  • iptablesを使用してのDNSゾーン転送の設定。

    今後Linuxをルーターとしてサーバー公開を目指しています。 グローバルIP=10.10.10.10(ルーターインターフェース=eth0) プライベートIP=192.168.0.1(ルーターインターフェースeth1) PrimaryDNS=10.10.10.10:53をプライベートIPに変換=192.168.0.2:53 セカンダリDNS=20.20.20.20 Linuxルータはiptablesのみ動作。 primaryDNSサーバーはwindows2000を使用しています。 iptablesにより、Preroutingを使用して10.10.10.10:53→192.168.0.2:53の変換。 POSTROUTINGにより192.168.0.2→10.10.10.10:53へ変換と設定しています。 # iptables -t nat -A PREROUTING -p tcp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p tcp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 # iptables -t nat -A PREROUTING -p udp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p udp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 そこで質問なのですが、この際Win2000でゾーン転送のセカンダリDNSの宛先アドレスはどうしたらよろしいのでしょうか? その際、iptablesの記述も教えてください。 一応、 # iptables -A FORWARD -p tcp -dport53 -j ACCEPT # iptables -A FORWARD -p udp -dport53 -j ACCEPT 53ポートのtcp,udpを許可しています。

  • iptables ポートフォワーディングについて

    ポートフォワーディングの設定を行いたくて試しにやっているのですが、 うまくいかないので教えていただけないでしょうか。 WinXPクライアント(192.168.1.22) | Linuxルーター(eth0=192.168.1.40, eth1=192.168.2.41)起動しているサーバーはssh,telnet,ftp,http,postgresです。 | LinuxWebサーバー(eth0=192.168.2.81 port=80)起動しているサーバーはssh,telnet,ftp,http,postgres,cvspserverです。 WinXPクライアントからLinuxWebサーバーにアクセスしたいのですが、以下のように設定しても WinXPクライアントのブラウザには「サーバーが見つかりません」と表示されてしまいます。 他に追記すべき設定、お気づき等ございましたら教えてください。よろしくお願いします。 Linuxルーターのiptables設定内容(service iptables stopを行った後、以下を設定しております) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.81:80 iptables -A FORWARD -d 192.168.2.81 -p tcp --dport 80 -j ACCEPT ------------------------------------------------------------- 上記設定後iptables -Lとしてみたら以下のように表示されました。 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere 192.168.2.81 tcp dpt:http Chain OUTPUT (policy ACCEPT) target prot opt source destination さらにservice iptables saveをして cat /etc/sysconfig/iptablesとしてみたところ以下のように表示されました。 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *nat :PREROUTING ACCEPT [2:280] :POSTROUTING ACCEPT [2:115] :OUTPUT ACCEPT [2:115] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.81:80 COMMIT # Completed on Sat Jan 30 11:46:10 2010 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *filter :INPUT ACCEPT [148:9894] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [169:16447] -A FORWARD -d 192.168.2.81 -p tcp -m tcp --dport 80 -j ACCEPT COMMIT # Completed on Sat Jan 30 11:46:10 2010 ------------------------------------------------------------- ちなみに以下のように設定してWinXPクライアントからsshで192.168.1.40の10000ポートに接続すると接続できました。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.41:22 ------------------------------------------------------------- 以下のように設定してWinXPクライアントから「telnet 192.168.1.40 10000」コマンドを発行してみるとしていない 時と比べて「接続中: 192.168.1.40...」となっている時間が長いので何かしら影響しているのかなと思います。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.81:23

  • ApacheとTomcat ポート80番について

    現在、VPSでマルチドメインで以下の2つサイトを運用しています。 1. PHPによるWordPressサイト 2. Javaによる動的サイト(静的HTML無し) Apache HTTP Server(ポート80)のバーチャルドメインを使用し、2のJavaサイトの場合はAJPでTomcat(ポート8009)へ処理を振り分けています。一般的な連携方法でと思います。 サーバーOSはCentOS5.5、IPアドレスはひとつ、ウェブサーバーにはApache HTTP Server, サーブレットコンテナとしてApache Tomcatを使用しています。root権限保持しています。 質問させていただきたいことは、Apache HTTP ServerおよびApache Tomcatを同時に起動させながらポート80番を1のサイトの場合はApache HTTPが使用、2のサイトの場合はApache Tomcatが使用できるようにする方法はご存知ないでしょうか?ということです。 現在はTomcat単独で運用する場合よりもApache HTTPを経由させるためにJavaのサイトが若干反応が遅く感じます。そもそも静的コンテンツはありませんし、URLの書き換えなども別の手段を用いているため、Apache HTTP Serverを経由する意味はどちらのサイトともブラウザでポート80番へアクセスできるようにする以外ありません。 何かよい方法ご存知ないでしょうか?なお、IPアドレスはひとつ増やしても構いません。

  • 自宅windows XP に Apache2.0.61 をインストールしてWEBサーバ構築し、1つのIPアドレスで複数のドメインを管理したいのですが

    自宅のwindows XP sp2 に Apache HTTP server 2.0.61 をインストールしてWEBサーバの構築をしているのですが、そこで 1つのIPアドレスで複数のドメイン(ウェブサイト)を管理・公開したいのですがうまくいきません 自宅の自家製WEBサーバにて、1つのIPアドレスで、ネームベースのバーチャルホストを設定して、複数のドメイン(複数のウェブサイト)を管理し、ネット上に公開したいのですが、バーチャルホスト設定がうまくいきません。以下のURLは、わたしのApacheのConfi 内容です。Apache HTTP server 2.0.61 をインストールして全く内容は編集していない状態ですので、どこの部分をどのように編集すれば良いか具体的に教えていただければ幸いです。 http://192.168.0.4/new11/yahoo-1.html 以上です。

  • Virtual Addressと LVS NAT 不可分散

    的外れな質問になってしまうかもしれませんが、教えてください。 OSはDebian Etch(3台)でLVS NATの不可分散の試験をしています。 一台にkeepalivedとロードバランスを入れ、他2台にapache-2をインストールしての試験です。 設定は下記URLの図と同様です。 (http://dsas.blog.klab.org/archives/50664843.html) Virtual Addressのインターフェスをeth0:0としてアドレスを上記URLと同様に10.10.31.100と設定し、ルータで分かれているインターネットワークのPCで10.10.31.100と入力すると不可分散は機能します。外部のネットワークから同様に、ファイアーウォールを通して example.org(私のウェブアドレス)で試しているのですが機能しません。 外部からexample.orgで検索をした場合、このパケットは10.10.31.100のVirtual Addressを通過しないために起こるのだろうと考えます。iptables(ファイアーウォール)内でexample.orgのパケットを10.10.31.100に仕向けることが出来たら問題が解決するのではと、勝手に推測しています。 example.orgに来たパケットをバーチャルアドレスに仕向ける記述の仕方を教えていただきたい。または、routingか何かで仕向ける方法があればご教授いただきたいのです。 お願い申し上げます。