coLinux のネットワークについて、Slirp 、WinPcap と NDIS を利用する方法はすでに紹介しましたが、今回は、TAP です。
TAPはこれから述べる理由のため、たくさんの方法があります。設定の前にそれを整理しておかないと、何をやっているのか混乱しそうなので、今回はそれを行いたいと思います。
coLinux wiki のネットワークの解説の最初の図からわかるように、coLinux にとって TAP とは、coLinux の仮想ネットワークアダプタ(例えば eth0 と認識されるもの)と、Windows にインストールされた仮想ネットワークアダプタ(TAP-Win32 Adapter V8(coLinux)と認識されるもの)を直接LANケーブルでつないだイメージだと思います。
Windows Vista はアダプタが2枚以上あっても、標準設定ではその間を橋渡しするようなことはしないようです。
つまり、Windowsの何らかの機能を使う設定をしてあげないと、このままでは外のネットワークと通信できません。この方法がいろいろあるので、TAPによるネットワークへの接続方法がたくさんあるわけです。
wiki では、次の3つの方法をあげています。
1) Private Connection to HostOS
これは、TAPの仮想アダプタと実際のアダプタ(ここでは、Marvell Yukon)の間でなにも行わない場合です。
当然、ネットワークは2つになり、その間の通信はできないので、外部との通信もできませんが、coLinux と Windows の間だけは高速な通信ができます。また、DHCPサーバをだれも用意していないので、IPアドレスをWindowsとcoLinux 共に固定で決めます。
この用途で、すぐに思いつくのは、Windows側でVNCを立ち上げて、X Window の通信を高速に行いたい場合です。
2) Windows Internet Connection Sharing (ICS)
ICSとは、Windowsの提供する、「インターネット接続の共有」です。
これは、インターネットに直接つながっている Windows マシンをブロードバンドルータの代わりにして、他のマシンもインターネットにつなげるためのもののようです。つまり、Slirp と同じで、NATで通信し、DHCPサーバも ICS が用意します。
coLinux は、外から見ると、Windowsマシンと同じ IPアドレスです。
3) Windows Software Bridge (ネットワークブリッジ、ブリッジ接続)
これは、Windowsの提供するソフトウェアブリッジで、TAPの仮想アダプタと実際のアダプタをつなぎ、Windows マシンをブリッジの代わりにして、coLinux と外のマシンを1つのネットワーク上に置けるようにする機能です。WinPcap と同じで、外にある DHCP サーバを利用できます。
coLinux は、外から見ると、Windowsマシンと同一ネットワーク上にある別の IPアドレスを持ったマシンに見えます。
wiki の3つの方法以外に、Windowsマシンをルータとして利用し、2つのネッワークをつなげる機能があり、それは、Windowsタスクマネージャで表示されるサービスで、
名前:RemoteAccess
説明:Routing and Remote Access
というサービスを実行させれば良いみたいです。これは、ルータによる接続ですから、ネットワークは2つに分離します。詳しくは、
coLinuxのメモ-coLinuxのインストール(0.6.x[TAP-Win32でのルータ接続]
や、
http://www.atmarkit.co.jp/fwin2k/operation/personalsecurity2/personalsecurity1.html
を参考にしてください。
coLinux は、外から見ると、Windowsマシンとは別の IPアドレスで、別のネットワークにあるマシンのように見えます。そこに通信するためには、ゲートウェイとしてこのWindowsマシンにパケットを送ればよいわけです。
この方法は、既存のネットワークに接続しているマシンに coLinux のあるネットワークへのゲートウェイを教えてあげないといけない点が他とは大きく異なる部分です。
ルータを介したネットワーク接続の練習等には使えますが、このルータ機能が RIP とか出すとなると、会社のネットワークなどではちょっと使えませんね。
以上、TAPによるネットワークの利用方法をまとめてみました。要するに、coLinuxを TAP につなぐのは簡単で、TAP と 実際のネットワークアダプタをどうつなぐかは、Windowsの話であり、coLinuxとは関係ないわけです。したがって、Googleなどで検索するときは、むしろ Windows の機能で検索した方が情報が得られやすいような気がします。
最後に、TAPを使ったネットワークの基本である、1) の場合を見てみます。
その方法は、Fedora-10.bat ファイルを以下のように修正するだけです。
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/coLinux/Fedora-10.img"
cobd1="C:/coLinux/swap.img" root=/dev/cobd0 eth0=tuntap ro
coLinux を立ち上げると、Windows Vista の「ネットワーク接続」ウィンドウで、「TAP-Win32 Adapter V8(coLinux)」アイコンの赤いバツ印が消えて、 coLinux と TAP がネットワークにつながったように見えます。あとは、Windows 側と、coLinux 側に IPアドレスを設定してあげればお互いに通信できます。
これが、もともとのTAPの機能であることがはっきり分かりますね。
Fedora10の最初の状態では、sshd しか動いていないので、動作を確認するには Windowsにsshクライアントソフトを入れておいた方が良いと思います。
次回、別の方法も試してみたいです。
TAPはこれから述べる理由のため、たくさんの方法があります。設定の前にそれを整理しておかないと、何をやっているのか混乱しそうなので、今回はそれを行いたいと思います。
coLinux wiki のネットワークの解説の最初の図からわかるように、coLinux にとって TAP とは、coLinux の仮想ネットワークアダプタ(例えば eth0 と認識されるもの)と、Windows にインストールされた仮想ネットワークアダプタ(TAP-Win32 Adapter V8(coLinux)と認識されるもの)を直接LANケーブルでつないだイメージだと思います。
Windows Vista はアダプタが2枚以上あっても、標準設定ではその間を橋渡しするようなことはしないようです。
つまり、Windowsの何らかの機能を使う設定をしてあげないと、このままでは外のネットワークと通信できません。この方法がいろいろあるので、TAPによるネットワークへの接続方法がたくさんあるわけです。
wiki では、次の3つの方法をあげています。
1) Private Connection to HostOS
これは、TAPの仮想アダプタと実際のアダプタ(ここでは、Marvell Yukon)の間でなにも行わない場合です。
当然、ネットワークは2つになり、その間の通信はできないので、外部との通信もできませんが、coLinux と Windows の間だけは高速な通信ができます。また、DHCPサーバをだれも用意していないので、IPアドレスをWindowsとcoLinux 共に固定で決めます。
この用途で、すぐに思いつくのは、Windows側でVNCを立ち上げて、X Window の通信を高速に行いたい場合です。
2) Windows Internet Connection Sharing (ICS)
ICSとは、Windowsの提供する、「インターネット接続の共有」です。
これは、インターネットに直接つながっている Windows マシンをブロードバンドルータの代わりにして、他のマシンもインターネットにつなげるためのもののようです。つまり、Slirp と同じで、NATで通信し、DHCPサーバも ICS が用意します。
coLinux は、外から見ると、Windowsマシンと同じ IPアドレスです。
3) Windows Software Bridge (ネットワークブリッジ、ブリッジ接続)
これは、Windowsの提供するソフトウェアブリッジで、TAPの仮想アダプタと実際のアダプタをつなぎ、Windows マシンをブリッジの代わりにして、coLinux と外のマシンを1つのネットワーク上に置けるようにする機能です。WinPcap と同じで、外にある DHCP サーバを利用できます。
coLinux は、外から見ると、Windowsマシンと同一ネットワーク上にある別の IPアドレスを持ったマシンに見えます。
wiki の3つの方法以外に、Windowsマシンをルータとして利用し、2つのネッワークをつなげる機能があり、それは、Windowsタスクマネージャで表示されるサービスで、
名前:RemoteAccess
説明:Routing and Remote Access
というサービスを実行させれば良いみたいです。これは、ルータによる接続ですから、ネットワークは2つに分離します。詳しくは、
coLinuxのメモ-coLinuxのインストール(0.6.x[TAP-Win32でのルータ接続]
や、
http://www.atmarkit.co.jp/fwin2k/operation/personalsecurity2/personalsecurity1.html
を参考にしてください。
coLinux は、外から見ると、Windowsマシンとは別の IPアドレスで、別のネットワークにあるマシンのように見えます。そこに通信するためには、ゲートウェイとしてこのWindowsマシンにパケットを送ればよいわけです。
この方法は、既存のネットワークに接続しているマシンに coLinux のあるネットワークへのゲートウェイを教えてあげないといけない点が他とは大きく異なる部分です。
ルータを介したネットワーク接続の練習等には使えますが、このルータ機能が RIP とか出すとなると、会社のネットワークなどではちょっと使えませんね。
以上、TAPによるネットワークの利用方法をまとめてみました。要するに、coLinuxを TAP につなぐのは簡単で、TAP と 実際のネットワークアダプタをどうつなぐかは、Windowsの話であり、coLinuxとは関係ないわけです。したがって、Googleなどで検索するときは、むしろ Windows の機能で検索した方が情報が得られやすいような気がします。
最後に、TAPを使ったネットワークの基本である、1) の場合を見てみます。
その方法は、Fedora-10.bat ファイルを以下のように修正するだけです。
colinux-daemon.exe kernel=vmlinux initrd=initrd.gz mem=256 cobd0="C:/coLinux/Fedora-10.img"
cobd1="C:/coLinux/swap.img" root=/dev/cobd0 eth0=tuntap ro
coLinux を立ち上げると、Windows Vista の「ネットワーク接続」ウィンドウで、「TAP-Win32 Adapter V8(coLinux)」アイコンの赤いバツ印が消えて、 coLinux と TAP がネットワークにつながったように見えます。あとは、Windows 側と、coLinux 側に IPアドレスを設定してあげればお互いに通信できます。
これが、もともとのTAPの機能であることがはっきり分かりますね。
Fedora10の最初の状態では、sshd しか動いていないので、動作を確認するには Windowsにsshクライアントソフトを入れておいた方が良いと思います。
次回、別の方法も試してみたいです。