coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

coLinux 0.7.4 のネットワーク接続方法のまとめ

2009-06-19 20:25:24 | インストールと設定
前回までで、TAPとWindowsのルータ機能を利用した場合を除いて、coLinux のネットワーク利用方法を見てきましたが、少しまとめてみます。

推測や思い込みが入っていますので、内容がおかしい場合は、コメントしてください。

ここでは、Windows Vista のマシンがもともとつながっていたネットワークを「外部」と呼ぶことにします。

1) Slirp
  接続方法                           NAT+DHCP
 coLinuxのIPアドレス                10.0.2.15   
  coLinuxのgateway                   10.0.2.2
  coLinuxのname server               10.0.2.3
 coLinuxのいるネットワーク          外部と別 
 外部から見た coLinux の IPアドレス  Windowsと同じ
 外部のDHCPサーバ          利用できない 
  Windowsの設定                      不要
  WindowsのMACアドレス               変わらない
  外部のネットワークへの影響     なし
  その他                             遅いかも

2) WinPcap
 接続方法                           ブリッジ
 coLinuxのIPアドレス                自由
 coLinuxのgateway                   Windowsと同じ
  coLinuxのname server               Windowsと同じ
 coLinuxのいるネットワーク          外部と同一
 外部から見た coLinux の IPアドレス  coLinuxのIPアドレス
 外部のDHCPサーバ          利用できる 
  Windowsの設定                      必要(WinPcapのインストール)
 WindowsのMACアドレス               変わらない
  外部のネットワークへの影響     新しいIPアドレスを1つ使う
  その他                             スリープ状態から復帰できる
 
3) NDIS
 接続方法                           ブリッジ
 coLinuxのIPアドレス                自由
 coLinuxのgateway                   Windowsと同じ
  coLinuxのname server               Windowsと同じ
 coLinuxのいるネットワーク          外部と同一
 外部から見た coLinux の IPアドレス  coLinuxのIPアドレス
 外部のDHCPサーバ          利用できる
  Windowsの設定                      不要
 WindowsのMACアドレス               変わらない
  外部のネットワークへの影響     新しいIPアドレスを1つ使う
  その他                             スリープ状態から復帰できない

4) TAP+ICS
 接続方法                           NAT+DHCP
 coLinuxのIPアドレス                192.168.0.xx 
 coLinuxのgateway                   192.168.0.1  
  coLinuxのname server               192.168.0.1  
 coLinuxのいるネットワーク          外部と別
 外部から見た coLinux の IPアドレス  Windowsと同じ 
 外部のDHCPサーバ          利用できない 
  Windowsの設定                      必要(ICS設定)
 WindowsのMACアドレス               変わらない
  外部のネットワークへの影響     なし
  その他                            

5) TAP+ネットワークブリッジ
 接続方法                           ブリッジ
 coLinuxのIPアドレス                自由
 coLinuxのgateway                   Windowsと同じ
  coLinuxのname server               Windowsと同じ
 coLinuxのいるネットワーク          外部と同一
 外部から見た coLinux の IPアドレス  coLinuxのIPアドレス
 外部のDHCPサーバ          利用できる
  Windowsの設定                      必要(ブリッジ接続)
 WindowsのMACアドレス        変わる
  外部のネットワークへの影響     新しいIPアドレスを1つ使う
  その他

6) TAP+RemoteAccess
 接続方法                           Windowsのルータ機能による接続
 coLinuxのIPアドレス                自由?
 coLinuxのgateway                   TAPのIPアドレス
  coLinuxのname server               ?
 coLinuxのいるネットワーク          外部と別
 外部から見た coLinux の IPアドレス  coLinuxのIPアドレス
 外部のDHCPサーバ          ?
  Windowsの設定                      必要(RemoteAccessの設定)
 WindowsのMACアドレス        変わらない?
  外部のネットワークへの影響     ルーティング情報の設定が必要
  その他

7) TAPのみ
 接続方法                           親マシンとだけ接続
 coLinuxのIPアドレス                自由
 coLinuxのgataway                   ない
 coLinuxのname server               ない
 coLinuxのいるネットワーク          外部と別
 外部から見た coLinux の IPアドレス  見えない
 外部のDHCPサーバ          利用できない
  Windowsの設定                      不要
 WindowsのMACアドレス               変わらない
  外部のネットワークへの影響     なし
 その他                             高速らしい

 このうち 1) と 4)は、もともと Windows がつながっていた外部のネットワーク番号がそれと同じ(10.0.2.0/24 か 192.168.0.0/24)なら、利用できませんから注意が必要です。

というわけで、私は coLinux が別のマシンに見えて、Windowsの設定が WipPcap より簡単な NDIS を選びましたと言いたいところですが、Windowsのスリープ状態からの復帰が私のマシンではできないので WinPcap にしました。

Windows の設定も不要で、外のネットワークにも影響を与えないようにしたい場合は Slirp ですね。それ以外の場合は、NDIS が主流になっていくように思いました。

こうしてまとめてみると、coLinux はネットワークも良くできていますね。
コメント (3)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

coLinux 0.7.4 で、TAP + ネットワークブリッジを使ってネットワーク

2009-06-13 00:45:16 | インストールと設定
今回は、TAPをネットワークブリッジで接続する方法を試してみます。

Windows Vistaの場合は、
基本的には、ネットワーク ブリッジを作成する - Windows Vistaヘルプを参考にすれば良いと思います。

coLinux wikiでは、 Software Bridge と呼んでいますが、日本語の呼び方は「ネットワーク ブリッジ」のようです。また、Windows の「ネットワーク接続」で現れるアイコンを右クリックしたときの、メニューの中の「ブリッジ接続」を使うので、そう呼んでいる場合もあるようです。

この場合 coLinux は、WinPcapと同様に Windows マシンと同一ネットワーク上にあると見なせますから、外部のDHCPサーバ(例えばブロードバンドルータ)が利用できます。

早速、設定してみます。

最初に Windows Vista で、「ブリッジ接続」を行います。

そのためには、

「ネットワーク接続」ウィンドウで、
「ローカル エリア接続」と「ローカル エリア接続 2」をコントロールキーを押しながら選択し、
「ローカル エリア接続 2」を右クリックして、メニューから「ブリッジ接続」をクリックすると、
ウィンドウの画面の中で「ネットワークブリッジ(3)」が分離して、そちらに
「ローカル エリア接続」と「ローカル エリア接続 2」とが移動し、
「ネットワークブリッジ」アイコンが新たに作成されます。

この「ネットワークブリッジ」アイコンを右クリックして、メニューから「状態」をクリックして現れる、
「ネットワーク ブリッジの状態」ウィンドウで、「詳細」をクリックすると、

物理アドレス(MACアドレス)が、02-FF-AF-xx-xx-xx
IPアドレスが、192.168.1.231 (外部のDHCPサーバによる)

となっています。

もともとの、[ローカル エリア接続](Marvell Yukon 88E8039) は、

MACアドレスが 00-A0-D1-xx-xx-xx
IPアドレスが、192.168.1.206(外部のDHCPサーバによる)

ですから、Windows Vista 側のMACアドレスが変更されてしまいました。仕様としてどうかと思いますが、Windowsですからよくあることです。

これが許されない場合は、この接続は問題ですね。

ちなみに、私のDHCPサーバも、MACアドレスが登録してあるので、Windowsマシンが別のIPアドレスになってちょっとこまります。

この問題が無視できるなら、前に作った 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

ところが、今回のテストでは、ネットワーク接続が失敗しました。
# ifconfig -a 
eth1      Link .......................
.......................
lo        Link .......................
.......................
#

eth0 の代わりになぜか eth1 で認識されています。手動で設定してみると、
# ifconfig eth1 192.168.1.101
#
# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:FF:78:08:04:00
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
....................
#

となって、ネットワークに接続できます。

eth0 が eth1 になったのは、coLinux 0.6.3 では動かなかった udev のせいです。udev が、MACアドレスを見て、eth1 に名前を変えたからです。今まであまりにネットワークのテストをしていたので、MACアドレスがいつのまにか udev の設定ファイルに登録されていたからです。

こういう場合は、MACアドレスを最初から指定してあげれば良いわけです。つまり、udev の設定を見ながら、

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,,00:FF:38:40:03:03 ro

みたいにすれば解決します。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

coLinux 0.7.4 で、TAP + ICS(インターネット接続の共有)を使ってネットワーク

2009-06-05 23:47:52 | インストールと設定
今回は、TAPを ICS(インターネット接続の共有)で接続する場合を試します。

Window Vista では、「ネットワーク接続」ウィンドウで、「ローカル エリア接続」アイコンを右クリックして、メニューから「プロパティ」をクリックします。

現れたプロパティウィンドウで、「共有」タグをクリックし、
「インターネット接続の共有」の部分で、
「ネットワークのほかのユーザに、このコンピュータのインターネット接続をとおしての接続を許可する(N)」をクリックしてレ点を付けます。

「ホームネットワーク接続」で、TAPに該当する「ローカル エリア接続 2」を選択します。

その下の「設定」をクリックして現れる「詳細設定」ウィンドウが、ICSが提供する外から中へパケットを送る機能(サービス)で、外から内側(coLinux)に向けてパケットを通すポートを指定できます。

標準では、SSHサーバに該当するサービスはないので、後で追加します。

「OK」をクリックすると、「ローカル エリア接続」アイコンに「共有」が表示されました。

MACアドレスを指定して、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 ro
eth0=tuntap,,00:FF:38:40:03:03

これで、Slirp と全く同様に、外部との通信が可能になります。外部からのアクセスも、ポートの対応付けをWindowsで設定する以外は、Slirp と同じです。ここで、MACアドレスを指定したのは諸般の事情であり、通常は、前回のTAPの標準的な指定方法と同様に、MACアドレスを省略しても問題ありません。

この場合、ICSの提供するDHCPサーバから割り当てられる、IPアドレス等は以下のようになります。

TAPの仮想ネットワークアダプタは、以下のとおりでした。

物理アドレス:00-FF-AF-xx-xx-xx
IPアドレス:192.168.0.1 

coLinux は、以下のとおりでした。
# ifconfig eth0 
eth0      Link encap:Ethernet  HWaddr 00:FF:38:40:03:03
          inet addr:192.168.0.66  Bcast:192.168.0.255  Mask:255.255.255.0
...........................
#
# route -n
Kernel IP routing table
Destination     Gateway      Genmask        Flags  ............. Iface
192.168.0.0     0.0.0.0      255.255.255.0  U                    eth0
169.254.0.0     0.0.0.0      255.255.0.0    U                    eth0
0.0.0.0         192.168.0.1  0.0.0.0        UG                   eth0
#
# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search mshome.net
nameserver 192.168.0.1
#

つまり、ゲートウェイとネームサーバの IPアドレスは、標準で192.168.0.1になるみたいです。

さて、SSHサーバを外部から利用できるようにするには、先ほどの「詳細設定」ウィンドウで、「追加」をクリックします。

サービスの説明:ssh サーバ
ネットワークでこのサービスをホストしているコンピュータの名前またはIPアドレス:
192.168.0.66 (上述のcoLinux のもの)
このサービスの外部ポート番号:22
このサービスの内部ポート番号:22
TCPを選択

として、「OK」をクリックすればサービスに追加されます。最後に「プロパティ」ウィンドウで「OK」をクリックします。

TAPの仮想アダプタの IPアドレスと、使えるネームサーバのIPアドレスがいずれも、

192.168.0.1

であることがわかったので、DHCP を使わない設定もできますね。

気になるのは、ICSが標準で使っているネットワーク番号 192.168.0.0 をどのように変更できるのかです。家庭内の通常のLANだと192.168.0.0 を使っている場合が多いので、この場合は変更しないといけないからです。もっとも、私のところでは、192.168.1.0 を使っていたので問題ないです。

たぶん DHCP を使わなければ、ゲートウェイとネームサーバの IPアドレスを同じにすることだけ注意すれば、手動で別のものに設定できるのではないかと思いますが、試せる方は是非試してみてください。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

TAPを使ったネットワークの整理

2009-06-01 22:32:59 | インストールと設定
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クライアントソフトを入れておいた方が良いと思います。

次回、別の方法も試してみたいです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする