coLinux0.7.3+Fedora10のインストールが終わったので、ネットワークを見てみます。
実は、前回の Fedora-10.bat で eth0=slirp,,tcp:5901:5900 と指定しているので、すでにネットワークにつながっています。
ここで、Slirp は、
Slirp, the PPP/SLIP-on-terminal emulator (http://slirp.sourceforge.net/)のことだと思います。ようするに、仮想的に coLinux と接続されたネットワークの口を作って、それに対して、実際のWindows 側のネットワークと PPP/SLIP でつなぎ、NAT を使って通信するわけですね。
このマニュアルの日本語訳 (http://www.pse.che.tohoku.ac.jp/~hoshi/slirp.txt)もありました。
これによると、Slirp は特殊アドレスというあらかじめ決められたIPアドレスがあります。
10.0.2.0 Slirpのオンライン設定アドレス
10.0.2.1 Slirpがプログラムを実行するときに使うアドレス
10.0.2.2 リモートホストのエイリアス
10.0.2.3 DNSのエイリアス
10.0.2.15 SlirpがPCに使うことを推奨するアドレス
coLinux で不要な 10.0.2.0 と 10.0.2.1 は使用できなくなっています。
coLinux の Slirp では、この残りの3つのIPアドレスが、dhcp によって設定されるようになっているのですね。
ここでインストールした Fedora10 の設定も標準で、
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
#
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
#
になっており、実際 Slirp の提供する dhcp サーバによって以下のようになります。
またこの coLinux から ssh で別のマシンにログインした後、
# who
espiya pts/0 2009-05-17 20:20 (winvista)
#
となって、coLinux が動いている Windows Vista のマシンからログインしているように見えます。
Slirp の場合、外部から coLinux にアクセスするためには、ポートの対応付けが必要です。これを指定しない外部からのアクセスはすべて、coLinux には到達できません。対応付けの方法は、
tcp|upd:外部から送り出すポート:coLinux側が受けるポート[:count]
で、複数指定する場合のセパレータは、/ です。例えば、coLinux で、sshd と httpd を動かして外部からアクセスさせるには、以下のよう指定します。
eth0=slirp,,tcp:22:22/tcp:80:80
count は、連続番号指定の簡略表記のためのものです。例えば、
4000:80:2 は、 4000:80 と 4001:81 を、
指定したことになります。サンプルで指定されている、tcp:5901:5900 は、VNC のためのものらしいので、ここでは使いません。
また、すでに Windows がポートを開いていると利用できないようです。
Slirp は、IPアドレスが登録制のところで coLinux を使う場合は最適な機能ですね。coLinux は自由自在に MACアドレスが設定できるので、こうした環境では許されないものですから。
実は、前回の Fedora-10.bat で eth0=slirp,,tcp:5901:5900 と指定しているので、すでにネットワークにつながっています。
ここで、Slirp は、
Slirp, the PPP/SLIP-on-terminal emulator (http://slirp.sourceforge.net/)のことだと思います。ようするに、仮想的に coLinux と接続されたネットワークの口を作って、それに対して、実際のWindows 側のネットワークと PPP/SLIP でつなぎ、NAT を使って通信するわけですね。
このマニュアルの日本語訳 (http://www.pse.che.tohoku.ac.jp/~hoshi/slirp.txt)もありました。
これによると、Slirp は特殊アドレスというあらかじめ決められたIPアドレスがあります。
10.0.2.0 Slirpのオンライン設定アドレス
10.0.2.1 Slirpがプログラムを実行するときに使うアドレス
10.0.2.2 リモートホストのエイリアス
10.0.2.3 DNSのエイリアス
10.0.2.15 SlirpがPCに使うことを推奨するアドレス
coLinux で不要な 10.0.2.0 と 10.0.2.1 は使用できなくなっています。
coLinux の Slirp では、この残りの3つのIPアドレスが、dhcp によって設定されるようになっているのですね。
ここでインストールした Fedora10 の設定も標準で、
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
#
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
#
になっており、実際 Slirp の提供する dhcp サーバによって以下のようになります。
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:FF:38:40:00:00 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 ........................ # route -n Kernel IP routing table Destination Gateway Genmask Flags ................ Iface 10.0.2.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 10.0.2.2 0.0.0.0 UG eth0 # cat /etc/resolv.conf : generated by /sbin/dhclient-script nameserver 10.0.2.3 #
またこの coLinux から ssh で別のマシンにログインした後、
# who
espiya pts/0 2009-05-17 20:20 (winvista)
#
となって、coLinux が動いている Windows Vista のマシンからログインしているように見えます。
Slirp の場合、外部から coLinux にアクセスするためには、ポートの対応付けが必要です。これを指定しない外部からのアクセスはすべて、coLinux には到達できません。対応付けの方法は、
tcp|upd:外部から送り出すポート:coLinux側が受けるポート[:count]
で、複数指定する場合のセパレータは、/ です。例えば、coLinux で、sshd と httpd を動かして外部からアクセスさせるには、以下のよう指定します。
eth0=slirp,,tcp:22:22/tcp:80:80
count は、連続番号指定の簡略表記のためのものです。例えば、
4000:80:2 は、 4000:80 と 4001:81 を、
指定したことになります。サンプルで指定されている、tcp:5901:5900 は、VNC のためのものらしいので、ここでは使いません。
また、すでに Windows がポートを開いていると利用できないようです。
Slirp は、IPアドレスが登録制のところで coLinux を使う場合は最適な機能ですね。coLinux は自由自在に MACアドレスが設定できるので、こうした環境では許されないものですから。