ルータとしてのPC UNIXの導入
2000.6.19 ver.1.00 by T.Shimizu
はじめに...
-
PC UNIX で router を作ることが課題でしたが
PC が Celeron 533MHz と 比較的高性能であったためrouter としてだけでなく
Workstation としても使えるようにOS を Linux 特に 日本語も扱えるVine Linux2.0 を
選択しました.
サーバ用途であれば,余計なソフトをインストールせず,
英語版のRedhat等の方が良いと思います.
そこでFTP でISO CD イメージ(約500MB)をダウンロードし,
CD-R に焼きVineLinux のCD を作りました.
インストールについて...
- CD からブート可能であれば,BIOS のBOOT順番をCD を優先にし,CD-BOOT 出来ない場合は,
CD 内のBOOT.img をRewrite.exe でFDD に書き込みFDD 空ブートします.
VineLinux2.0のCDから直接ブートしたが,ビデオボードをインストーラがきちんと
認識できなかったようで Xを使ったGUIインストールは,途中で不能となりました.
ちなみに,チップは,SIS620そこで,ブート直後のboot:というメッセージにtextと入力し,Enter.
これにより,GUIを用いないインストーラが動きます.
インストールタイプとして,KDEワークステーションや,gnomeワークステーション,
サーバ,カスタムが選べます.
サーバを選択し,インストールしてみたが,ktermが入っていなかったり
日本語がこけたり何かと不具合があったため,
カスタムを選びます.ネットワーク関係の項目でgated(後述)が選択可能になっていまいした.
これを選択肢,通常のLinuxのインストーラと同じようにインストールしました.
インストールが終わり,リブート. もう一つのカード(後述)は認識されていませんでした.
Login:rootでログインしてみるとログインできない.
タイプミスがと思い,何度も試みましたが、失敗.
Ctrl+Alt+F2でXを使わないターミナルを立ち上げ,Ctrl+Alt+Delで強制終了.
もう一度,ブートし,boot: linux 1 で 今度は,シングルユーザモードで立ち上げます.
passwdファイルのアクセス権がおかしいような....chmodで変更.
再び,起動.今度は,ログイン可能となりました.
-
ネットワークについて...
-
今回,カーネルがIP-Forwading可になっているためカーネル再構築は行いませんでした.
ネットワークカードが全く認識しない場合,カーネルモジュールを追加しましす.
使用しているネットワークカードは,PCIのプラネックスコミュニケーションズ
の FW-100TXVと
onボードで DAVICOM DM9102Fです.
ネットワークカードに使われているLSIチップからその型番やメーカ名を調べておき,
それにあったカーネルモジュールを追加します.今回のDAVICOM
DM9102F は,未だ実験的な
サポートであるため,起動時自動認識しません.そこで,pcitable
を書き直します.
/usr/share/kudzu/pcitableこのファイルに,モジュールの一覧があります.
ファイル中の以下のunknown を dmfe に書き換えます.0x1282
0x9102 unknown
- その後再起動し,その後のスクリーンロールを見ますと,起動時にデバイスとして認識されたことが確認出来ます.起動後,dmsg でも確認出来ます.
- 追加したデバイスの確認方法としまして,たとえばeth0 を確認するならば
- ifconfig eth0 172.21.88.1
- と入力し,そのデバイスにIPAddress が設定出来ればOK です. 誤ったモジュール
を追加しますと,以下のようなエラーが返ってきます.
- # ./ifconfig eth9 172.21.88.100
- SIOCSIFADDR: そのようなデバイスはありません
- eth9: 不明なインターフェースです:そのようなデバイスはありません
- また正しい設定を行いますと,以下のようになります
- # ./ifconfig eth0
- eth0 リンク方法:イーサーネット ハードウェアアドレス 00:D0:09:3B:47:60
- inetアドレス:172.21.88.1 ブロードキャスト:172.21.88.255 マスク:255.255.255.0
- ネットワークデバイスの設定は,
- /etc/sysconfig/netwark-script/ifcfg-eth0 , eth1をファイルをいじくります.
- 以下が ifcfg-eth0 の例です.
- [root@cube network-scripts]$ more ifcfg-eth0
- DEVICE="eth0" // デバイス名
- IPADDR="172.21.88.1" //IPAddress
- NETMASK="255.255.255.0"//subnetmask
- ONBOOT="yes"// ブート時にこのネットワークデバイスを有効にするか
- BOOTPROTO="none"//DHCP クライアント等を使う時に指定する
- IPXNETNUM_802_2=""// これ以降は,IPX/SPX の設定なので今回は無視
- IPXPRIMARY_802_2="no"
- IPXACTIVE_802_2="no"
- IPXNETNUM_802_3=""
- IPXPRIMARY_802_3="no"
- IPXACTIVE_802_3="no"
- IPXNETNUM_ETHERII=""
- IPXPRIMARY_ETHERII="no"
- IPXACTIVE_ETHERII="no"
- IPXNETNUM_SNAP=""
- IPXPRIMARY_SNAP="no"
- IPXACTIVE_SNAP="no"// ここまで
- [root@cube network-scripts]$
- GUIで設定したければ,"netcfg" "netconf"等を使うと簡単に設定がが行えます.
- netcfg の簡単な説明をします.これがnetcfg を起動したときの画面です.
-
- この追加を押しますと,次のような画面が現れますので,設定します.
-
- また,今回はルータ作製が目的ですので,パケットのフォワーディリングをオンにします.
- /proc/sys/net/ipv4/ip_forward を "1"と記します.
これで,フォワーディングが可能となります.
たとえば,PC1から
- # route add 172.21.88.0 MASK 255.255.255.0 130.143.150.55
PC2から
- # route add 130.153.140.0 MASK 255.255.255.0 172.21.88.1
というようにお互いに経路を指定することでパケットをやり取りできます.
- PC1 から ping 172.21.88.100(PC2)
- PC2 から ping 130.153.140.9(PC1)
応答があれば通信が確認OK です.
routeデーモンについて
- しかし,各マシンに経路を設定するのは,面倒なのでルートデーモンを使います.
学内の他ルータがRIP2で動いているために,それに合わせる必要があります.
BSD 系では,routed がRIP2 に対応していますが,
Linux では,routed がRIP2 に対応していませんそこで RIP2 に対応している gatedを用います.
管理者: shimizu@flex.ee.uec.ac.jp,