従って、仮に pc が mac の IP アドレス以外を拒否する設定になっている場合にも vpc から pc にアクセスできる。
TCP トンネリングはファイアーウォールによって隠されているホストを中継するのに使用される。
term% ls /net ... /net/tcp /net/udp ... term% ls / ... /net /net.alt ... term% ls /net.alt term%
term% sshnet -m /net.alt mac !Adding key: proto=pass server=mac service=ssh user=arisawa password: term% ls /net.alt /net.alt/cs /net.alt/tcpつまり /net.alt に cs と tcp が作られた事になる。これが vpc と mac との間に作られた通信チャネルである。
term% aux/stub -d /net/macnet term% ls -l /net/macnet ls: /net/macnet: permission denied term% ls -l /net d---------- M 41 stub stub 0 May 13 14:33 /net/macnet ... d-r-xr-xr-x I 0 network arisawa 0 Oct 19 2003 /net/tcp ... term% bind /net.alt/tcp /net/macnet term% ls -l /net ... d-r-xr-xr-x M 37 ssh ssh 0 May 13 14:30 /net/macnet ... d-r-xr-xr-x I 0 network arisawa 0 Oct 19 2003 /net/tcp ...stub の意図は分かりにくいがマニュアルによると
the intent is to provide a place to bind or mount other resources.と書いてある。実際 /net の中には通常の方法で、つまり touch や mkdir ではファイルやディレクトリは作れない。
term% cd /tmp term% aux/stub aaaa term% ls -l ... ----------- M 47 stub stub 0 May 13 15:16 aaaa ... term%端末からは rm などで消す手段は無いが、この存在は見かけ上のもので、他のウィンドウからは見えない。ウィンドウを消せば aaaa の効果は消える。
term% con macnet!pc!whoami term% con macnet!pc!whoami connected to macnet!pc!whoami on /net/macnet/0 i am 192.168.1.2 sysname pc you are 192.168.1.4 port 49637 term%確かに vpc から送られた IP パケットの送信元アドレスは mac のものである。
この使い方から分かるように macnet は新たに作成されたプロトコルの名称になっている。名前は自由に付けられるので sshmac とでもした方が良かったかも...
この新しいプロトコルは実際には TCP なので tcp でできる事は何でもできる。例えば 9fs によるマウント。
term% mntgen term% 9fs macnet!pc post... mounting as arisawa term% ls /srv ... /srv/macnet!pc ... term% ls /n/macnet!pc /n/macnet!pc/386 ... /n/macnet!pc/usr term%
Sshserve does not provide the TCP forwarding functionality used by sshnet, because many Unix clients present this capability in an insecure manner.と述べられている。