LVS で DSR 構成にしたとき実サーバでの受け方

IPVS とかの機能を使った LVS で、振り分けを DSR にした場合、実際に接続要求を受け取るサーバ側にほんのりと手を入れる必要があります。

仮想IPアドレスを持ったパケットが実サーバにたどり着いたとき、実サーバはそのパケットを受け取りたいのでどうにかしてそのパケットを自分の中に運ばなければいけません。

Linux なんかだと二つの方法があります。iptables で REDIRECT を使う方法と、ループバックインターフェースにIPアドレスを追加する方法です。

どっちを選べば良いの?

iptables を使ってるのなら iptables にて設定するのがラクチンです。

いろんなサイトで説明されてますがこんなかんじです。

 

iptables -t nat -A PREROUTING -d 仮想IPアドレス -j REDIRECT

 

Linux 以外の、例えば Windows商用UNIX などが実サーバとなっている場合は、ループバックインターフェースにIPアドレスを追加すれば良いです。

それじゃ 実サーバが Linux でループバックインタフェースにIPアドレスを追加するのってどういう場合?

たとえば、ApacheSSL なサイトを一台にたくさん詰め込んだ場合、IP-Based Virtual Server にする場合があります。このときは何らかの方法で自身に IPアドレスを振ってないと Apache が反応してくれませんので、ループバックインタフェースに必要数だけ仮想IPアドレスを振っておけば良いというわけです。

すなわちOS自身のどこかのインタフェースに仮想IPアドレスが振ってないとその上のアプリが反応してくれない場合に使えば良いです。