すでにご説明したように, /usr/sbin/sliplogin
のコンフィグレー
ションのために, 3種類のファイルが/etc/sliphome
ディレクトリに
あります (sliplogin
についての実際のマニュアルページとしては
sliplogin(8)
を参照のこと) . ファイル slip.hosts
は
SLIPユーザおよびその IPアドレスを決めます. 通常, ファイル
slip.login
は, SLIPインタフェースを設定することだけに使
用します. slip.logout
はオプションのファイルで,
slip.login
で設定した内容を, シリアル接続が終了した時点で解除
するときに使用します.
/etc/sliphome/slip.hosts
には, 少なくとも 4 つの項目をホワイ
トスペース (スペースやタブ) で区切って指定します.
ホスト名をローカルおよびリモートのアドレスとして記述できます (IPアドレ
スの決定は, /etc/host.conf
の指定内容に応じて,
/etc/hosts
か DNSのいずれかによって決定される) . また, ネット
ワークマスクも /etc/networks
ファイルに記述された名前を参照す
ることで, 指定することもできると思います. これまでの例としてあげたシス
テムでの /etc/sliphome/slip.hosts
は次のようになります.
----- begin /etc/sliphome/slip.hosts -----
#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp
----- end /etc/sliphome/slip.hosts ------
それぞれの行の最後には, 次に示すオプションを一つ以上指定できます.
normal
- ヘッダを圧縮しないcompress
- ヘッダを圧縮するautocomp
- リモートの設定に応じて, ヘッダを圧縮するnoicmp
- ICMPパケットを禁止する (pingパケットは送出されず, バンド幅を占有しない)なお, FreeBSDバージョン2の初期リリースの sliplogin
は, 旧
FreeBSD 1.xでは有効であった上記のオプションを無視していましたので,
normal
, compress
, autocomp
, そして noicmp
などのオ
プションは FreeBSD 2.2でサポートされるまでは効果がありませんでした (た
だしこれらのフラグを使うためには slip.login
スクリプトへ記述する
必要がある) .
SLIPリンクでのローカルとリモート向けのアドレスの選び方は, TCP/IPサブネッ トを専用に割り当てるか, または「プロキシ ARP」を SLIPサーバへ用いるかによっ て違います (プロキシ ARPという用語のここでの使い方は本来のものではない が, 説明のためにこの用語を使う) . もし, どちらの方式を選ぶべきか判らな かったり, IPアドレスの割り当て方が不明のときには, 上述の 前提 の節で紹介した TCP/IP関連書籍を参考になさるか, またはあなたの IPネットワークを管理している方に相談なさるとよいでしょう.
独立したサブネットを SLIPクライアントへ適用するときには, すでに割り当
てられている IPネットワーク番号の範囲からサブネット番号を割り当て, 同
時にそのサブネットの範囲内で有効な IPアドレスを SLIPクライアントの IP
番号として割り当てる必要があります. さらに, この SLIPサブネットから
SLIPサーバを経由して最も近い IPルータへの経路を静的に設定するか, また
は gated
を FreeBSDによる SLIPサーバへインストールして, 適当
なルーティングプロトコルを使って, SLIPサーバ経由のサブネットへの経路情
報をルータ群へ通知できるように設定するか, のいずれかをおこなう必要がありま
す.
「プロキシ ARP」方式を採用するときには, SLIPクライアント向けの IPアドレス
として, SLIPサーバのサブネットの範囲から選んで割り当てるとともに,
arp(8)
コマンドを使うために /etc/sliphome/slip.login
と/etc/sliphome/slip.logout
のスクリプトを修正して, SLIPサー
バにおける ARPテーブル内のプロキシ ARPエントリへ反映させる必要がありま
す.
ファイル /etc/sliphome/slip.login
の一般的な内容は次にように
なります.
----- begin /etc/sliphome/slip.login -----
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
----- end /etc/sliphome/slip.login -----
この slip.login
ファイルの役目は単に, SLIPインタフェースにつ
いてのローカルとリモートのアドレス, およびそのネットワークマスクを
ifconfig
コマンドで設定することです.
もしプロキシ ARP方式を採用する (SLIPクライアントへ独立したサブネットを
使わない) ときには, ファイル /etc/sliphome/slip.login
は次の
ような内容になります.
----- begin /etc/sliphome/slip.login for "proxy ARP" -----
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub
----- end /etc/sliphome/slip.login for "proxy ARP" -----
この slip.login
で追加された行
arp -s $5 00:11:22:33:44:55 pub
は,
SLIPサーバにおける ARPテーブルへ新たなエントリを作ります. SLIPサーバ
は, この ARPエントリが作られると, SLIPクライアントの IPアドレスと話し
たい他の IPノードが要求してきたときにはいつも, SLIPサーバ
の Ethernet MACアドレスを返すようになります.
上記の例を実際に流用なさるときには, 例にある Ethernet MACアドレス
(00:11:22:33:44:55
) を, あなたのシステムの実際のEthernetカー
ドの MACアドレスと置き換えなければ「プロキシ ARP」はうまく動作しません!
SLIPサーバの Ethernet MACアドレスを調べるには netstat -i
コマ
ンドを利用してください. 実行結果の第2行は次のようなものになるはずです.
ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116
^^^^^^^^^^^^^^
この例での Ethernet MACアドレスは 00:02:c1:28:5f:4a
であると
読みます. なお arp(8)
における MACアドレスの指定に際しては,
コマンド netstat -i
が付けた Ethernet MACアドレスのピリオド記
号をコロン記号と置き換え, かつ単一桁の 16 進数にはゼロを先頭に加える必
要があります. この指定についての正確な情報は arp(8)
を参照く
ださい.
ご注意いただきたいのは, /etc/sliphome/slip.login
と
/etc/sliphome/slip.logout
を作成したならば, ファイル属性の実
行ビット (すなわち
chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout
) を
設定しなければならないということです. さもなければ sliplogin
が
うまく実行されません.
ファイル /etc/sliphome/slip.logout
は必ずしも必要なものではあ
りません (ただし「プロキシ ARP」を利用する場合を除く) . もしこのファイルを
作成するときには, 次に示す標準的な slip.logout
スクリプト例を
参考にしてください.
----- begin /etc/sliphome/slip.logout -----
#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
----- end /etc/sliphome/slip.logout -----
「プロキシ ARP」を利用する場合, この /etc/sliphome/slip.logout
を
使って, 特定の SLIPクライアント向けの ARPエントリを削除したくなるよう
なときがあります.
----- begin /etc/sliphome/slip.logout for "proxy ARP" -----
#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5
----- end /etc/sliphome/slip.logout for "proxy ARP" -----
コマンド arp -d $5
は, SLIPクライアントがログインした
際に, 「プロキシ ARP」を使った slip.login
によって追加され
た ARPエントリを削除します.
これによって, 繰り返して利用することができるわけです. 必ず,
/etc/sliphome/slip.logout
を作成した後に, 実行ビットを設定し
てください ( chmod 755 /etc/sliphome/slip.logout
) .