ゼロ円でできるブロードバンド・ルータ
1FD Linuxで古いPCをルータにする

北浦訓行
2000/12/8

floppyfwの設定

 インストールが終了したら、設定作業に取りかかります。設定作業は、設定用のテキストファイルを編集することによって行います。また、機能(DHCPやNICのドライバなど)を追加する場合は、パッケージファイルやモジュールファイルなどをダウンロードする必要もあります。

●NIC

 最初は、最大の難関であるNICの設定です。floppyfw 1.0.6のカーネルには、あらかじめ以下のNIC用ドライバが組み込まれています。従って、これらのNICを使用する場合は、特に作業は必要ありません。

  • 3com 3c509(3c509.cを使用)
  • NE2000互換
  • Tulip互換
  • Intel EtherExpress PCI

■コラム ファイル名に注意!

 floppyfwを使い始めたころ、eth1のNICが認識できなくて苦労しました。原因は、「via-rhine.o」というファイル名が8.3形式を超えているためのようです。ファイル名を「via-rhin.o」に変更し、MODULES.LSTも修正すると無事認識されました。ちなみに、後ほど出てくる「post-dhcpd.ini」というファイル名も8.3形式を超えているのですが、こちらの方は、なぜか問題なく読み込まれます。

 上記以外のNICを使用する場合は、ドライバをダウンロードして、設定ファイルを編集する必要があります。

 旧バージョンでは、カーネルに組み込まれていないドライバを使用するためには、カーネルの再構築もしくは対応ドライバの作成が必要でした。これが、これまでfloppyfwを使用するうえで大きな足かせとなっていたのです。しかし、現行バージョンではWebサイト上に各NICのドライバが用意されていますから、使用するNICに搭載されているコントローラが分かればよいのです。NICとドライバの対応については、Linux Ethernet-Howto(http://www.linux.or.jp/JF/JFdocs/Ethernet-HOWTO-5.html)が参考になります。

 筆者の使用しているNICは、RealtekのRTL8139Bを搭載したエレコムLD-10/100Sと、VIAのVT86C100Aを搭載したプラネックスコミュニケーションズのFNW-8700-Tです。RTL8139Bは「rtl8139.o」を、VT86C100Aは「via-rhine.o」を使用しますから、floppyfwのサイト(http://www.zelow.no/floppyfw/download/modules/2.2.17/net/)にあるドライバをダウンロードし、FDの\MODULESディレクトリにコピーします。

 このモジュールを使用するという設定は、MODULES.LSTで行います。テキストエディタで、MODULES.LSTを開き、ファイルの末尾にドライバ名を入力します。

rtl8139.o
via-rhine.o

●DHCP

■コラム .bz2形式はそのままでOK

 .bz2は圧縮されたファイル形式です。floppyfwでは、モジュール読み込み時に自動解凍しますので、インストール時に解凍する必要はありません。.bz2形式のままディレクトリにコピーしてください。

 DHCPの設定には、接続先のIPアドレスを受け取るためのDHCPクライアントと、内部のLANにローカルのIPアドレスを供給するDHCPサーバがあります。いずれも、固定のアドレスの場合は必要ありません。

 DHCPクライアントを使用する場合は、パッケージファイルをダウンロードしなければなりません。パッケージのファイル名は、「dhcpcd.bz2」です。これもfloppyfwのサイト(http://www.zelow.no/floppyfw/download/packages/dhcpcd/)からダウンロードして、\PACKAGESディレクトリにコピーします。DHCPクライアントの設定は、CONFIGというファイルで行います。これについては後述します。

 DHCPサーバを使用する場合も同様です。パッケージのファイル名は、「dhcpd.bz2」です。ただし、DHCPサーバーの場合は、「post-dhcpd.ini」という設定ファイルも必要です。floppyfwのサイト(http://www.zelow.no/floppyfw/download/packages/dhcpd/)から2つのファイルをダウンロードして、\PACKAGESディレクトリにコピーします。

 DHCPサーバの設定は、post-dhcpd.iniで行います。このファイルをテキストエディタで開いて、以下の部分の値を設定します。

INSIDE_NET=192.168.1.0 # Network address to listen on
DHCPD_FIRST_IP=192.168.1.100 # start of dynamic range
DHCPD_LAST_IP=192.168.1.200 # end of dynamic range
LEASE_TIME=604800 # default lease time (604800 = one week)

■コラム IPアドレスのリース情報

 floppyfwでは、DHCPでリースしたIPアドレスの情報などは、すべてRAMディスク上に保存しています。何らかの理由によりfloopyfwがリブートした場合は、クライアント側で、IPアドレスを再取得しなければなりません。

 「INSIDE_NET=」は、内部LANのIPアドレスの最初の番号を指定します。「DHCPD_FIRST_IP=」には、DHCPで供給する開始アドレスを、「DHCPD_LAST_IP=」には、DHCPで供給する最終アドレスを指定します。初期設定では、内部LANのIPアドレスは、192.168.1.0から始まり、192.168.1.100〜192.168.1.200がDHCPとして割り振られます。これ以外のアドレスは、固定IPが必要なサーバ用のリザーブとなります。「LEASE_TIME=」には、DHCPによって供給されたIPアドレスのリース期間を指定します。初期設定では、1週間になっています。

●CONFIG

 「CONFIG」ファイルでは、floppyfwの最も基本的な設定を行います。テキストエディタで開いて、以下の部分を修正します。

OUTSIDE_IP=
#OUTSIDE_IP=DHCP

 接続先からIPアドレスが固定で供給される場合には、「OUTSIDE_IP=」に指定されたIPアドレスを記述します。一般的には、DHCPによる自動割り当てのケースが多いでしょう。その場合は、以下のようにします。

#OUTSIDE_IP=
OUTSIDE_IP=DHCP

 IPアドレスが固定の場合は、以下の部分にも、指定されたアドレスを記述します。DHCPの場合はそのままで構いません。

OUTSIDE_NETMASK=
OUTSIDE_BROADCAST=

 次に、LANサイドの設定を行います。

INSIDE_IP=10.42.42.1
INSIDE_DEV=eth1
INSIDE_NETMASK=255.255.255.0
INSIDE_BROADCAST=10.42.42.255

 「INSIDE_IP=」には、LANの開始アドレスを入れます。DHCPを使用する場合は、post-dhcpd.iniの「INSIDE_NET=」で指定したアドレス+1(上記の例では、192.168.1.1)を指定します。「INSIDE_DEV=eth1」は、LAN側のNICです。「INSIDE_NETMASK=」は、LANのネットマスクです。原則として、これらはこのままにしてください。「INSIDE_BROADCAST=」は、ブロードキャストのアドレスです。DHCPを使用する場合は、post-dhcpd.iniの「INSIDE_NET=」で指定したアドレスの最終アドレス(上記の例では、192.168.1.255)を指定します。

 次に、デフォルトゲートウェイなどの設定です。

DEFAULT_GATEWAY=
NAME_SERVER_IP1=
NAME_SERVER_IP2=
DOMAIN=
HOSTNAME=floppyfw

 これらは、DHCPを使用する場合には、デフォルトのままで構いません。固定IPの場合には、指定された値を入力してください。

 最後に、ネットワーク関係以外の設定です。

OPEN_SHELL=y
ONLY_8M=n


USE_SYSLOG=y
SYSLOG_FLAGS="-m 360"

 「OPEN_SHELL=」は、キーボードからのコマンド操作を可能にするかどうかの設定です。最初は、NICの認識などがうまくいっているかどうかを確認する必要がありますから、デフォルトのままにしておきます。floppyfwが完全に動作するようになって、キーボードによる操作が必要なくなったら、値を「n」に変更してもよいでしょう。「ONLY_8M=」は、メインメモリが8MBのシステムで運用する場合に、「y」にします。「USE_SYSLOG=」はsyslogを使用するかどうかの設定です。「SYSLOG_FLAGS=」とともに、デフォルトのままにしておきましょう。

 以上で、CONFIGファイルの設定は終了です。

●FIREWALL.INI

 FIREWALL.INIでは、ファイアウォールの設定を行います。一般的な接続形態は、DHCPによる動的なアドレス割り当てでしょうから、このファイルを変更する必要はありません。もし、固定アドレスを割り当てられている場合、以下の行を変更することにより、内部LANのサーバを外部に公開することができます。

#ipmasqadm portfw -a -P tcp -L $1 80 -R 10.42.42.<SERVER-IP> 80
#ipmasqadm portfw -a -P tcp -L $1 22 -R 10.42.42.<SERVER-IP> 22
#ipmasqadm portfw -a -P tcp -L $1 2222 -R 10.42.42.<SERVER-IP> 22

 例えば、固定アドレスで、210.xxx.yyy.zzzを割り当てられている場合、

ipmasqadm portfw -a -P tcp -L $1 80 -R 10.42.42.2 80

とすると、外部から「http://210.xxx.yyy.zzz」とすると、内部LANの「10.42.42.2」にアクセスすることができるようになります。ただし、筆者の環境は、残念ながらDHCPですので、この機能を実際に試したわけではありません。ご了承ください。

 また、ネットワークゲームなどのように、外部から接続が必要なものは、パケットフィルタリングを通りません。その場合は、FIREWALL.INIの設定が必要です。具体的なパラメータなどは、Masq ApplicationsというWebサイト(http://www.tsmservices.com/masq/)などで公開されています。ICQに関しては、floppyfwのWebサイトにモジュールが用意されています。以下の項を参照してください。

●ICQ

 ICQを使用する場合は、floppyfwのサイト(http://www.zelow.no/floppyfw/download/modules/ip_masq_icq/2.2.17/)にあるドライバ「ip_masq_icq.o」をダウンロードし、FDの\MODULESディレクトリにコピーします。

 NICのドライバと同様に、このモジュールを使用するという設定は、MODULES.LSTで行います。テキストエディタで、MODULES.LSTを開き、ドライバ名を入力します。最終的には、以下のようになります。

ip_masq_irc.o
ip_masq_cuseeme.o
ip_masq_ftp.o
ip_masq_quake.o
ip_masq_raudio.o
ip_masq_vdolive.o
ip_masq_portfw.o
ip_masq_autofw.o
ip_masq_icq.o
rtl8139.o
via-rhine.o

動作確認

 以上で、すべての設定は終了です。早速、動作確認を行いましょう。ケーブルなどの結線をすべて確認してください。ケーブルモデムやADSLモデムに接続するのがeth0、LAN(HUB)に接続するのがeth1です。確認が終わったら、PCの電源を投入します。最初に、BIOSの設定メニューで、FDから起動するように設定を変更します。ちなみに、筆者がfloppyfwを運用しているPCからは、HDDは取り除いてあります。

 floppyfw起動中は、エラーメッセージなどが表示されていないかどうか、十分に注意してください。起動したら、

# ifconfig

で、NICの設定が正しいかどうかを確認してください。eth0とeth1が逆になっている場合は、PCIバスの挿入位置を入れ替える必要があります。問題ないようであれば、クライアントPCを起動します。接続先によっては、Webブラウザにプロキシサーバなどの設定を行う必要があります。これらの設定が終わったら、インターネットにアクセスできます。

 システムが安定して運用できることが確認されたら、キーボードは必要ありません。FIREWALL.INIの「OPEN_SHELL=」を「n」に変更し、キーボードを取り外してください(もちろん、接続したままでも構いませんが)。BIOSによっては、キーボードを取り外すと、システムが起動しなくなります。その場合は、BIOSメニューでキーボードのチェックを行わないように設定の変更が必要です。

3/3

Index
ゼロ円でできるブロードバンド・ルータ
1FD Linuxで古いPCをルータにする
  floppyfwのススメ
  floppyfwとは
  機材の準備
  floppyfwのインストール
 DOS/Windowsで行う場合
 Linuxで行う場合
floppyfwの設定
 NIC
 DHCP
 CONFIG
 FIREWALL.INI
 ICQ
  動作確認

Linux Square全記事インデックス


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間