coLinux(0.7.x)のインストール [TAP-Win32でのNAT接続]

試したことをとりあえずメモに!
スポンサーリンク

この方法の目標は下図のネットワークを構築することです。 設定は3段階あります。

  1. coLinux設定ファイルの修正
  2. Host PCの設定
  3. coLinux内の設定

network-nat

スポンサーリンク

coLinux設定ファイルの修正

TAP-Win32の確認

インストール時に TAP-Win32をインストールするように選択しておくと、 「ネットワークとダイヤルアップ接続」に アイコンが一つ増えているはずです (coLinuxが起動していない状態では×印がついています)。 プロパティを見ると接続の方法のところに 「TAP-Win32 Adapter V8 (coLinux)」と表示されるので判別できるはずです。

network-property

TAP-Win32のアイコンが一つだけの人は、 coLinuxの設定ファイルを特にいじる必要はありません。 設定ファイルに以下の様な行があればOKです。 coLinuxが自動的にTAP-Win32を認識します。

eth0=tuntap

TAP-Win32のアイコンが2個ある人 (coLinuxを同時に複数立ち上げる場合等)はちょっと注意が必要です。 coLinuxの設定ファイルに使用するTAP-Win32を指定しなければなりません。 これはcoLinuxの設定ファイルで行うのですが、 TAP-Win32のアイコンの名前が 日本語だとうまくいきません。 まず、アイコンの名前を半角英数字に変えます (例えば、"coLinux Network"とします)。

coLinux 0.7.1(20051013)では、この接続の名前にスペースが入っているとエラーがでるようです。スペースが含まれない名前にしておくことをお勧めします。

次に、 coLinuxの設定ファイルのtuntapの部分を以下のように書き換えます。

eth0=tuntap,"coLinux Network"

このようにすると、coLinuxが使用するTAP-Win32を指定することができます。

設定ファイル例

この方法の場合の私のcoLinux設定ファイルは以下の通りです。 必要に応じてnetworkの部分を書き換えてください。

kernel=vmlinux
cobd0=c:\coLinux\root.img
cobd1=c:\coLinux\swap.img
root=/dev/cobd0
ro
initrd=initrd.gz
mem=128
eth0=tuntap
スポンサーリンク

Host PCの設定

TAP-Win32の設定

以下の設定をする前にcoLinuxを起動しておきましょう。 coLinuxを起動していないとTAP-Win32が無効状態になっていて、 正常に設定ができません。

また、この方法ではcoLinuxが繋がる仮想LANのネットワークアドレスが 192.168.0.0/24に設定されてしまうため、 Host PCのIPアドレスが192.168.0.xxxだとバッティングしてしまいます。 既存のLANの設定を変更することをお勧めします。

まず、TAP-Win32側のネットワークから 既存のLAN側にデータが流れるように設定します。 これにはWindowsのネットワークの共有機能を使います。

「コントロールパネル」→「ネットワークとダイアルアップの設定」 と開いて、 「ローカル エリアの接続 (デバイス名がTAP-Win32 Adapterでないもの)」 を右クリックしてプロパティを表示させます。

その「共有タブ」で 「この接続でインターネット接続の共有を使用可能にする」に チェックをつけます。これだけでOKです。

tap-share

プロパティを閉じようとするといろいろ文句を言われますが、 怯まずOKを押しましょう。

次に、仮想ネットワークデバイスのTAP-Win32のアドレスを 192.168.0.1に設定します。

TAP-Win32のアドレスの設定は簡単です。 「コントロールパネル」→「ネットワークとダイアルアップの設定」 と開いて、 「ローカル エリアの接続 (デバイス名がTAP-Win32 Adapterのもの)」を 右クリックしてプロパティを表示させます。

tap-property

さらに、「インターネット プロトコル(TCP/IP)」を選んで 「プロパティボタン」を押します。 すると、IPアドレスが設定できるので、「次のIPアドレスを使う」を選んで

  • IPアドレス: 192.168.0.1
  • サブネットマスク: 255.255.255.0
  • デフォルトゲートウェイ: (空欄)
  • 優先DNSサーバ: (空欄)
  • 代替DNSサーバ: (空欄)

とします。 というか、ネットワークの共有を設定すると勝手にこのようになります。 Host PCとcoLinuxを結ぶ仮想ネットワークアドレスを 192.168.0.0/24以外にしたい人は、 ここでIPアドレスを変更しておきましょう。

tap-address

hostsファイルの修正

最後に、Host PCのhostsファイルを修正して、 coLinxのホスト名とIPアドレスを追加しておきましょう。 hostsファイルはC:WINNTsystem32driversetcにあります (Windowsのフォルダがc:WINNTの場合)。 メモ帳で開いて、以下の行を追加しておきましょう。

192.168.0.2    colinux

以上で、host PC側の設定は完了です。

coLinux側の設定

colinux-consoleからrootでログインします。 以降はcolinux-consoleから操作します。

coLinuxのIPアドレスを変更するには、 /etc/network/interfaceを変更します。 変更する為のエディタコマンドはviかeditorが良いでしょう。

# cd /etc/network
# editor interface

変更する内容は次のようにします。 IPアドレスをこれ以外にしたい人はaddressとgatewayのところを 書き換えてください。

auto lo eth0

iface eth0 inet static
     address 192.168.0.2
     gateway 192.168.0.1
     netmask 255.255.255.0

iface lo inet loopback

/etc/network/interfaceの書き換えが完了したら、 以下のコマンドでそれを反映させます。

# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter
Reconfiguring network interface...done.
done.

確認にはifconfigコマンドを使います。次のように表示されればOKです。

# ifconfig 
eth0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
         inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
         ---- 省略 ----

lo       Link encap:Local Loopback
         inet addr:127.0.0.1 Mask:255.0.0.0
         ---- 省略 ----

細かな数字は違うかもしれませんが、eth0とloの2つ出力があることと、 eth0のinet addrが192.168.0.2であればOKです。 またゲートウェイの設定は以下のコマンドで確認します。

# route
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

ここではdefaultで始まる行のGatewayの列が192.168.0.1であればOKです。

colinux自身のホスト名はデフォルトではdebianとなっています。これを変えるには/etc/hostnameファイルを変更します。ここではホスト名をcolinuxにするために/etc/hostnameを以下の様にします。

colinux

変更したら以下の様に反映と確認を行います。

# /etc/init.d/hostname.sh
# uname -n
colinux

次に、/etc/hostsファイルを作成し、 自分の名前とhost PCの名前を追加しておきましょう。 Host PCの名前をwin2kの場合は、/etc/hostsを以下のようにすればOKです。

127.0.0.1      localhost
192.168.0.1    win2k
192.168.0.2    colinux

次に、最後に/etc/resolv.confを編集して、 自分のプロバイダのDNSサーバのアドレスを記入します。 例えば、 DNSサーバのアドレスが123.123.123.123と123.123.123.124の場合は、 /etc/resolv.confの内容を次のようにします。

nameserver 123.123.123.123
nameserver 123.123.123.124
search

動作確認

ここまできたら、host PCとcoLinuxが通信できるかテストしてみましょう。

まずはhost PC→coLinuxです。pingコマンドで調べましょう。 host PCのコマンドプロンプトで以下のコマンドを実行して 返事が返ってくることを確認しましょう。

$ ping 192.168.0.2

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<10ms TTL=64
Reply from 192.168.0.2: bytes=32 time<10ms TTL=64
Reply from 192.168.0.2: bytes=32 time<10ms TTL=64
Reply from 192.168.0.2: bytes=32 time<10ms TTL=64

Ping statistics for 192.168.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms

うまくいったら、 「ping colinux」でもうまく動くことも確認しておきましょう。

次はcoLinux→host PCの確認です。 まあ、host PC→coLinuxが大丈夫なら問題ないと思いますが 念のためやっておきます。 colinux-consoleで次のコマンドを打ちましょう。

# ping -c 4 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=128 time=4.4 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=4.9 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=5.0 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=128 time=5.1 ms

--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packets loss
rount-trip min/avg/max = 4.4/4.8/5.1 ms

こちらも、「ping -c 4 win2k」でうまく動くことも確認しておきます。

ここまでうまくいったら、 最後にインターネットに出れるかどうかを確認しましょう。 colinux-consoleで自分のプロバイダのサイトにpingしてみて、 返事が返ってくることを確認します。

# ping -c 4 scratchpad.f2c.com
PING scratchpad.f2c.com (69.25.27.171): 56 data bytes
64 bytes from 69.25.27.171: icmp_seq=0 ttl=243 time=18.7 ms
64 bytes from 69.25.27.171: icmp_seq=1 ttl=243 time=20.1 ms
64 bytes from 69.25.27.171: icmp_seq=2 ttl=243 time=15.5 ms
64 bytes from 69.25.27.171: icmp_seq=3 ttl=243 time=17.6 ms

--- scratchpad.f2c.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packets loss
rount-trip min/avg/max = 15.5/17.9/20.1 ms

以上で、この方法の設定はおしまいです。

コメント

タイトルとURLをコピーしました