IPSMを使うためにFreeBSDなどをインストールするために作ったマニュアルです。 FreeBSD版は別にあります。


設定マニュアル−ソフトウェア編(Linux版)

作成:1998年10月14日 JK1MLY・稲葉


0.はじめに

 新たな高速パケット通信として期待されるPRUG96プロジェクトにて、試作されたハードウェアとソフトウェアを使うためのドキュメントの1つです。

 IPSMとLinuxを用いて、PFWLとRNAVIを動かす設定に関してまとめてあります。動作実績があるのは、RedHat4.2とslackware 3.4ですが、他のパッケージであっても同様に使用可能と思われます。

 無線など複数の中継経路から適した経路を探索するシステムをAPFSと呼び、これを実現するためのソフトウェアとしてRNAVIが動きます。また無線機とのデータの受け渡しをするのがPFWLになります。一緒に使う無線機に関しては別のドキュメントがあるので、そちらを参照して下さい。

略語

 IPSM:IP Shield Machineの略(ハードウェア)

 PFWL:Packet Forward for WireLess linkの略(ソフトウェア)

 RNAVI:Route NAVIgatorの略(ソフトウェア)

 APFS:Asymmetric Path Finding Systemの略(システム)

記述

 赤い文字・・・各自の設定で異なる入力

 イタリック・・コマンドラインからの入力

--

1.トンネルデバイスの作成

 既にLinuxをインストールした時に、IIJ-PPPをインストールされている方は、この項目は不要です。

 PFWLはtunnel deviceを使用して通信を行うため、userlinkを組み込む必要があります。iij-pppを使用している場合には、既に組み込まれていますので以下の作業は不要です。

http://www.dsl.ics.tut.ac.jp/~manabe/PPxP/

 ftpサイトなどからiij-pppとLinux用のパッチである下記の2つのファイルを入手して下さい。

    ・iij-ppp0.94beta2.tar.gz

    ・iij-ppp0.94beta2+lx.diff.gz

 iij-ppp0.94beta2.tar.gzを展開すると、ディレクトリiij-ppp0.94ができますので、ここにiij-ppp0.94beta2+lx.diff.gzを解凍してパッチをあてます。(下記を参照)

#tar xvfz iij-ppp0.94beta2.tar.gz
#cd iij-ppp0.94
#gunzip ../iij-ppp0.94beta2+lx.diff.gz
#patch -p1 < ../iij-ppp0.94beta2+lx.diff

 次にiij-ppp0.94の下のにあるディレクトリDrivers/Linuxに移動して、 コンパイルおよびインストール作業を行います。(下記を参照)

#cd Drivers/Linux
#pmake
#pmake install
#depmod -a

 ここまでで今回の動作に必要なuserlinkは組み込まれます。もしiij-pppも必要な方は、ここまでの作業が終わっていればREADME.linux.jisがあると思います。この真鍋さんの書かれたIIJ-PPP (Version 0.94beta2) for Linuxを見て下さい。

 以上の作業でトンネルデバイスとしてul[0-9]が使用可能になります。

 userlinkの最新版は下記から得られます。iij-pppを必要とする方も含め、できるだけ新しいソフトを使って下さい。

http://www.dsl.ics.tut.ac.jp/~manabe/PPxP/

 組み込むまでの流れは、下記を見れば十分なので省略します。

http://www.dsl.ics.tut.ac.jp/~manabe/PPxP/doc/QuickStart-1.html

--

2.hostsの設定

 通信を行うホストやネットワークのIPアドレスは、/etc/hostsおよび/etc/networksに記述しますが、今回はDNSを使用するので、ファイルhostsには設定中の1台を加えるのみとします。赤い文字の部分は各々で合わせて下さい。

/etc/hostsの例

127.0.0.1	localhost
192.168.40.11	jq1vie.prug.or.jp	jq1vie

・・・IPアドレス,ホスト名,別名の順で記述

--

3.bootpの設定

 ここではIPSMの起動時にbootpを利用する場合を書きます。DHCPを使う場合には次を見て下さい。

  /etc/inetd.confファイルを開き、bootpdが起動されるように下記の設定を追加して下さい。設定内容の詳細はman inetd.conやman bootpdなどを見て下さい。

<inetd.confの一部>

bootps dgram udp wait root /usr/sbin/tcpd bootpd

 /etc/bootptabファイルを開き(無い場合は作成する)、IPSMが起動したときにブートファイルを転送するよう下記を参考に設定して下さい。 設定の詳細はman bootptabなどを見て下さい

<bootptabの例>

ipsm:ht=ethernet:hd=/tftpboot:bf=ssipsm.v1.36.bin:ha=00C0F6B050BE:sm=255.255.255.0

<上記の意味>

ipsm

・・・IPSMのホスト名

ht=ethernet

・・・ハードとしてイーサネットを指定

hd=/tftpboot

・・・ブートファイルの格納場所を指定

bf=ssipsm.v1.36.bin

・・・ブートファイルの指定

ha=52544C043B9C

・・・ターゲットとなるIPSMのMACアドレスを指定

   前項でメモした文字列からコロンを除いた16進数の羅列となりますが、1桁のフィールドは0(ゼロ)を補い2桁にする必要があります。

sm=255.255.255.0

・・・使用するネットワークのネットマスクを指定

--

4.DHCPの設定

 IPSMに対するIPアドレスの自動割り当てや、IPSMのファームウェアを転送するために、DHCPと呼ばれる機能を利用します。ここで設定する内容によりWindows95やMacintoshなどのパソコンを接続する場合、ネットワークの設定を自動化させることなどが可能になります。赤い文字の部分は各々で合わせて下さい。

 既にdhcpを動かしている場合にはインストールは不要です。この設定はisc版のdhcpを利用した場合でありwide版では異なるので注意して下さい。

dhcp-2.0b1pl6.tar.gzを取ってくる

最新の情報はhttp://www.isc.org/dhcp.htmlを見て下さい。

あとは解凍してmakeするだけです。

tar xvfz dhcp-2.0b1pl6.tar.gz
cd dhcp-2.0b1pl6
./configure
make
make install

次にdhcpの設定です。

/etc/dhcpd.confの例

server-identifier jq1vie.prug.or.jp;
・・・規定するアドレスの範囲を指定

subnet 192.168.40.0 netmask 255.255.255.0 {

・・・規定するアドレスの範囲を指定

  range 192.168.40.32 192.168.40.39;

・・・自動的に割り振るアドレスの範囲を指定

   (他のパソコンなどに割り当てるアドレス)

  default-lease-time 43200;

・・・使用可能な時間を秒で指定

  max-lease-time 86400;

・・・使用可能な最大時間を秒で指定

  option subnet-mask 255.255.255.0;

・・・サブネットマスク

  option broadcast-address 192.168.40.255;

・・・ブロードキャストアドレス

  option routers 192.168.40.11;

・・・デフォルトルート

  option domain-name-servers 192.168.40.11;

・・・DNSのIPアドレス

  option domain-name "jq1vie.prug.or.jp";

・・・ドメイン名

}

・・・ここまではアドレスを自動的に割り振らない場合には不要です

host ipsm1 {

・・・固定的な設定

 hardware ethernet 0:60:52:4:85:e7;

・・・IPSMのMACアドレス

 fixed-address 192.168.40.51;

・・・決まったIPアドレスを割り振る

 filename "/tftpboot/ssipsm.v1.36.bin";

・・・起動時に送るファイルの指定

   (実際のファイル名に合わせる)

 option subnet-mask 255.255.255.0;

・・・サブネットマスク

 option broadcast-address 192.168.40.255;

・・・ブロードキャストアドレス

 option routers 192.168.40.11;

・・・デフォルトルート

}

 dhcpが使用しているIPアドレスなどの情報を格納するため、下記のコマンドでディレクトリ/etcに、ファイルdhcpd.leasesを作ります。

touch /etc/dhcpd.leases

 起動時に自動的に動くように/etc/rc.d/rc.localへ下記の一行を追加します。

/usr/sbin/dhcpd

 どうもdhcpdの出す返事は、下記のようにルーティングを先にしてないとダメみたいですので注意して下さい。

/etc/sysconf ig/static-routes

eth0 net 0.0.0.0 netmask 0.0.0.0 gw 172.16.113.2

--

5.tftpの設定

 ファイルの転送方法としてtftpが使用できるようにする必要があります。/etc/inetd.confファイルを開き、下記のようなtftpdに関する記述があるか確認し、無い場合には設定を追加します。 設定の詳細はman inetd.confやman tftpdなどを見て下さい。実際にはコメントアウトされているだけなので、#を取るだけになると思います。

<inetd.confの一部>

tftp	dgram	udp	wait	nobody	/usr/libexec/tftpd	tftpd /tftpboot

 次にディレクトリ/tftpbootを作り、起動時に転送するIPSMのプログラムssipsm.v1.36.binをコピーします。ssipsm.v1.36.binは、船田さんのページから入手できます。

mkdir /tftpboot
cp ipsm-1.32.bin /tftpboot

--

6.DNSの設定

 DNSを使用するには幾つかの設定が必要ですが、このうち今回の実験で必要な部分のみを以下に示します。ここに示す以外のなどはman namedにて確認して下さい。

 DNSの機能を使うための設定として、ネームサーバのアドレスなどを、/etc/resolv.confに書きます。赤い文字の部分は各々で合わせて下さい。

/etc/resolv.confの例

domain	jq1vie.prug.or.jp

・・・ドメイン名を指定

nameserver	192.168.40.11

・・・ネームサーバのアドレスを指定

   (後ろに続けて書くとセカンダリが指定できる)

 起動するネームサーバの動作を/etc/named.bootに書きます。

/etc/namedb/named.bootの例
directory	/var/named

・・・データを記述したファイルを置くディレクトリ

cache     .				named.root

・・・キャッシュ

primary   localhost			localhost.zone

・・・ループバックの正引き

primary   0.0.127.IN-ADDR.ARPA		localhost.rev

・・・ループバックの逆引き

primary   jq1vie.prug.or.jp		jq1vie.zone

・・・自ドメイン内の正引き

primary   40.168.192.in-addr.arpa		jq1vie.rev

・・・自ドメイン内の逆引き

 ルートネームサーバの指定を/var/named/named.rootに書きます。

/var/named/named.rootの例

; jq1vie.prug.or.jp
;
.                        3600000  NS    mini.jq1vie.prug.or.jp.
mini.jq1vie.prug.or.jp.  3600000  A     192.168.40.11

 インターネットに接続しているなら、もともと下記のような設定が書かれているので、そのままにして下さい。

; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
(以下略)

 正・逆引きに使う情報の記述をします。

/var/named/jq1vie.zoneの例

@	IN	SOA	mini.jq1vie.prug.or.jp.	admin.jq1vie.prug.or.jp. (

・・・primaryであることと連絡先を示す

		1998041101	;Serial

・・・変更したら必ず大きな値に直す

		3600		;Refresh
		900		;Retry
		3600000		;Expire
		3600	)	;Minimum
jq1vie.prug.or.jp.		IN	NS	mini.jq1vie.prug.or.jp.

・・・jq1vie.prug.or.jpのネームサーバ

jq1vie.prug.or.jp.		IN	MX	10	mini.jq1vie.prug.or.jp.

・・・メールを送るホスト

mini.jq1vie.prug.or.jp.		IN	A	192.168.40.11

・・・正引きの指定

ipsm1.jq1vie.prug.or.jp.		IN	A	192.168.40.51
localhost.jq1vie.prug.or.jp.		IN	A	127.0.0.1
www.jq1vie.prug.or.jp.		IN	CNAME	mini.jq1vie.prug.or.jp.

・・・別名の指定

/var/named/jq1vie.revの例

@	IN	SOA	mini.jq1vie.prug.or.jp.	admin.jq1vie.prug.or.jp. (

・・・primaryであることと連絡先を示す

		1998041101	;Serial

・・・変更したら必ず大きな値に直す

		10800		;Refresh
		1800		;Retry
		3600000		;Expire
		259200	)	;Minimum
	IN	NS	mini.jq1vie.prug.or.jp.

・・・192.168.40.xxのネームサーバ

11	IN	PTR	mini.jq1vie.prug.or.jp.

・・・192.168.40.11の逆引き

   192.168.40は省略されている

32	IN	PTR	pc1.jq1vie.prug.or.jp.
51	IN	PTR	ipsm1.jq1vie.prug.or.jp.

/var/named/localhost.zoneの例

@	IN	SOA	mini.jq1vie.prug.or.jp.	admin.jq1vie.prug.or.jp. (
		1998041101	;Serial
		10800		;Refresh
		1800		;Retry
		3600000		;Expire
		259200	)	;Minimum
localhost.				IN	NS	mini.jq1vie.prug.or.jp.
localhost.				IN	A	127.0.0.1

/var/named/localhost.revの例

@	IN	SOA	mini.jq1vie.prug.or.jp.	admin.jq1vie.prug.or.jp. (
		1998041101	;Serial
		10800		;Refresh
		1800		;Retry
		3600000		;Expire
		259200	)	;Minimum
0.0.127.in-addr.arpa.	IN	NS	mini.jq1vie.prug.or.jp.
1.0.0.127.in-addr.arpa.	IN	PTR	localhost.

--

7.IPSMの情報

 IPSMに使用するNE2000互換イーサネットカードのMACアドレスを知る必要があります。このため下記の方法により情報を得て下さい。

 MACアドレスを含めてイーサネットをモニタするため、tcpdumpコマンドに-eオプションを使用します。

tcpdump -i eth0 -e

 上の例にあるeth0 はデバイス名の一例なので、IPSMを接続するportに使用するデバイスを指定して下さい。

 次にIPSMの電源を入れますとbootpのためのpacketが流れ、これが下記の例のようにtraceされます。

16:32:14.176681 0:c0:f6:b0:50:be Broadcast ip 370: 0.0.0.0.bootpc > 255.255.255.255.bootps: [|bootp]
16:32:19.341249 0:c0:f6:b0:50:be Broadcast ip 370: 0.0.0.0.bootpc > 255.255.255.255.bootps: [|bootp]

 この中にある0:c0:f6:b0:50:beの部分が、IPSMのMACアドレスになるのでメモしておきます。あとでdhcpの設定を行う際に使用します。

 IPSMの動作が確実でない場合には、一時的にPCに実装して調べる方が良いかもしれません。IPSMが動いていれば、電源を入れた時にイーサネットカードのLEDが点滅し、通信するのが分かるかと思います。イーサネットカードに送信/受信LEDがないものもありますが、その時にはHUBのLEDなどを代わりに見て下さい。

--

8.pfwld,rnavidのインストール

 pfwld-1.40.tar.gzとrnavid-1.40.tar.gz入手し、これらをtarコマンドによって展開し、コンパイルして作ったpfwldとrnavidを使用します。

ファイルの入手

 pfwld-1.40.tar.gzrnavid-1.40.tar.gzを、PRUGのftpサーバなどから入手します。PRUGのサーバの場合には/pub/hamradio/PRUG96/APFS/にあります。

ファイルの展開

 入手したファイルを下記のコマンドにより展開します。

tar xvfz pfwld-1.40.tar.gz
tar xvfz rnavid-1.40.tar.gz

 これによりPFWLDとRNAVIDという2つのディレクトリができます。

コンパイル

 次にpfwldとrnavidをコンパイルします。コンパイルは各々のディレクトリでmakeするのみです。

cd PFWLD
make
cd ../RNAVID
make
cd ..

ファイルのコピー

 でき上がったバイナリpfwldとrnavidは、ディレクトリ/usr/local/sbinにコピーしておきます。

cp PFWLD/pfwld /usr/local/sbin
cp RNAVID/rnavid /usr/local/sbin

--

9.pfwld,rnavidの設定

 pfwld-1.40.tar.gzおよびrnavid-1.40.tar.gzを展開して得られたファイルに、設定例としてファイルpfwld.conf-sampleとrnavid.conf-sampleが含まれてます。これをディレクトリ/etcの下にコピーし、viなどのエディタで設定ファイルpfwld.confとrnavid.confを編集して、使用する環境に合わせて下さい。

cp PFWLD/pfwld.conf-sample /etc/pfwld.conf
cp RNAVID/rnavid.conf-sample /etc/rnavid.conf
cd /etc

 各項目の設定内容は下記のようになります。

/etc/pfwld.confの例

# sample server configuration for FreeBSD
pfwl:sa=192.168.41.0:da=192.168.41.1:dev=ul1:
ipsm:un=0:ha=192.168.40.51:sid=JQ1VIE-0:bw=808000:

sa=192.168.41.0・・・トンネルの入口側アドレスまたはホスト名

da=192.168.41.1・・・トンネルの相手先アドレスまたはホスト名

ha=192.168.40.51・・・IPSMのIPアドレスまたはホスト名

dev=tun1・・・トンネルデバイスのデバイス名

sid=JQ1VIE-0・・・無線で使用するコールサイン

bw=808000・・・使用する無線回線の伝送速度

/etc/rnavid.conf

rip:mi=4:mo=4:
local:da=192.168.41.0:nm=255.255.255.254:

da=192.168.41.0・・・経路情報として流すネットワークアドレスの指定

nm=255.255.255.254・・・IPSMとの通信に使用するネットワークのネットマスク

mi=4・・・metricが4以上の経路情報は無視

mo=4・・・metricを4として経路情報を出力

 local 行は複数設定できますので、gated 等を動かさない場合は自分がアナウンスすべきネットワークを登録する事により、他のネットワークへの gateway が可能となります。例えば上記に加えて下記のlocal行を書くと、192.168.40.0/24のネットワークに対する、固定的なルーティングとなります。

local:da=192.168.40.0:nm=255.255.255.0:

--

10.自動スタート

 起動時にファイル/etc/rc.d/rc.localが自動的に動作するので、dhcpd,pfwld,rnavidが立ち上げ時に自動的に動き始めるよう、下記のような記述を追加します。

/usr/sbin/dhcpd
/usr/local/sbin/pfwld
/usr/local/sbin/rnavid

--


戻る