nojimaです。

さっそくのご回答ありがとうございます。

kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:

> >  [1],[2]を満たす為のLinuxAとLinuxB上で動かすソフトウェアとLinuxAとLinuxBの
> > 設定は何が考えられるでしょうか?
> 
> delegate っていう手もあると思うけど。あるいは、socks とか。

すみません、ClientA〜Fはsocks未対応のTCPアプリケーションとします。socks
使う時はClientA〜Fがsocks対応でないといけないんですよね?

また、delegateも考えたのですが、ほぼ任意のTCPを直接delegatedプロトコルに変換
するやり方が思いつきませんでした。なにか良い方法がありますでしょうか?

> もちろん、ルーティングすること自体は容易ですよね。NAT / Masqarade
> って手もありますよね。両方がprivate address でまずいってな話
> なのかな。

いえ、LinuxAとLinuxBの間がいろいろな網を経由しており、そこのポリシー
で、LinuxAとLinuxBがピアにしかつながらないのです。もちろんですが、
LinuxAとLinuxBは好きに設定することが出来ます。

> >  自分で思いつくのは、 LinuxAとLinuxB上でtcp経由のPPPを動かす?ぐらいですが、
> > 最近のPPP実装ってtcp上で動かすようには出来ていないような...
> 
> PPTP ってのがあります。PPP は、Serial port 上でなくても、任
> 意のstreamに対して開けると思った。HTTP Tunnel なんていう手も
> ありますよね。
> 
> そうすると、network B の中に、network A につながったhost が
> 出現するみたいな感じになりますね。
> 

これが出来ればもう最高なのですが、

  ・PPTPはGREという難物プロトコルが使われ(LinuxAとLinuxBの間は
    TCPしか通らないのです)、

  ・PPPをTCPストリームで使うには疑似端末経由の使い方ぐらいしか思いつかず
    (で、この疑似端末の切替えが厄介)

で、どうにも発想が詰まってしまっています。

HTTP Tunnelは初めて知りました。SoftEtherみたいな物でしょうか?