どういう物かと言いますと、グローバルIPとしてA.A.A.Aを持ち、その追加IPとしてA.A.A.BとA.A.A.Cが割り当てられたマシンがあるとします。
こちらのマシンのPort81にProxy接続すると外部IPとしてA.A.A.Bを使い、Port82に接続するとA.A.A.Cという外部IPを使うというものです。
ApacheかSquidなどでおそらく出来ると考えておりますが、Port81の場合には外部ネットワークとA.A.A.BというIPアドレスを使って通信させる方法が分かりません。
というのも、Port81をListenするだけではそのマシンのメインIP、A.A.A.Aが使われてしまうためです。
このような事はどのように設定すると実現出来るのでしょうか。
ネットワーク利用者が増えて外部通信時のIPを増やした場合にも問題なくスケール出来るロジックですとベストです。
具体的な設定方法またはそれが分かるURLを教えて頂けると幸いです。
なお、最近スパム投稿が増えてきてしまっているため、大変恐縮ですが初めて人力検索はてなで解答される方はコメント欄に一言頂けましたら、オープンします。
squidで実装する場合は、
http_port x.x.x.x:80
http_port x.x.x.x:81
acl localip1 myport 80
tcp_outgoing_address A.A.A.A localip1
acl localip2 myport 81
tcp_outgoing_address A.A.A.B localip2
のような形態で実装できませんか。
x.x.x.x は内側のIPアドレスです。
A.A.A.A:80 → マシンA
A.A.A.A:81 → マシンA (proxy) → マシンB
A.A.A.A:82 → マシンA (proxy) → マシンC
となるようにマシンAを設定したいのか、それとも
A.A.A.A:80 → マシンA
A.A.A.B:81 → マシンA (proxy) → マシンB
A.A.A.C:82 → マシンA (proxy) → マシンC
となるようにマシンAを設定したいのかが良く分からない。
どちらかといえば後者のように読めるんだけど、後者は不可能だし、下みたいにすれば同じな訳で目的が良く分からないです。
A.A.A.A:80 → マシンA
A.A.A.B:81 → マシンB
A.A.A.C:82 → マシンC
もしどうしても後者のやり方でやりたいなら、前提であるIPアドレスの割り振りを見直して、マシンAにIPアドレス3つを割り当ててしまい、残りのマシンB,CはプライベートなIPアドレスを割り当てて、Aからプロキシするとか、そういうやり方しか無いです。
また、proxyするなら、マシンBやマシンCはグローバルIPアドレスを割り当てなくても良いのですが、わざわざグローバルIPを割り当てる理由は何でしょう?
一応マシンAに3つのIPアドレスを持たせれば、
A.A.A.A:80 → マシンA
A.A.A.B:80 → マシンA (proxy) → マシンB(プライベートIPアドレス B.B.B.B)
A.A.A.C:80 → マシンA (proxy) → マシンC(プライベートIPアドレス B.B.B.C)
みたいにできるけど、これはDNSの設定ができるなら、IPアドレス1つでも
siteA.yourcompany.com → A.A.A.A:80 → マシンA
siteB.yourcompany.com → A.A.A.A:80 → マシンA(proxy) → マシンB(プライベートIPアドレス B.B.B.B)
siteC.yourcompany.com → A.A.A.A:80 → マシンA(proxy) → マシンC(プライベートIPアドレス B.B.B.C)
みたいにもできるわけで(後者はapacheのバーチャルホスト機能を使用)、IPアドレスを3つ持つ意味が無いです。
> スケール出来るロジック
これもよく分からないです。
A.A.A.A:80 → マシンA
A.A.A.B:80 → マシンB
A.A.A.C:80 → マシンC
これじゃ駄目なの?新しいIPアドレス増えたら、新しいマシンを追加するだけで簡単にスケールアウトできると思いますが。
結局この手の話って負荷分散か、グローバルIP不足を克服することか、異なるサービスの受け口となるサーバを1つに集約してアクセス管理など管理を容易にすることか、セキュリティのためDMZを作ってB,Cを内部ネットワークに置くことなんかが目的として考えられるわけですが、どれにも該当しない(そう考えると矛盾する)ので良く分からないです。
行いたい事としては回答者1の方が答えて頂いているので、その他の実装方法も調査中です。
スケール出来るロジックに関してですが、例えばIPが29個あった場合、Proxyサーバを29台用意するのは非現実的ですよね?
そして、LANの中のマシンが200台になったからと言って、グローバルIPを200個割り当てるのも非現実的だと思います。
別に200台分のアクセスをさばければ問題ないと思うけど?
見る限り単なるリバースプロキシだしさほど現実的でないほどの性能が要求されるわけでもなさそうだし。
>すみません、3つのIPを持ったProxyサーバに、その下にあるローカルIPを持った端末から接続する構成です。
ということはわかったので、その方法を回答してみました。ただ、スケールの観点でいうと、IPアドレスだけを振り分けてもあまり意味はないような……。IPアドレスを複数わけても、プロキシ処理をするのが、同一のプロキシサーバ内であれば、結局そこの処理が先にネックになるように思います。
各IPが別々のプロバイダのネットワークにつながっているというのであれば、また話は別ですが。