ホーム
TOPへ
最終更新日:2003年12月18日
Index
● PPP 接続設定 ( RedHat Linux 9.0 )
Contents
● PPP 接続設定 ( RedHat Linux 9.0 )
※クロスケーブルで直結した場合(サーバ(ttyS0)←→クライアント(ttyUSB0))。
1. pppd インストール(サーバ・クライアント共通)
IPv6CP/IPv6 を有効にした pppd をインストールする。
例として、/home/foo/ppp-2.4.1 以下に pppd のソースを展開した場合、
# cd /home/foo/ppp-2.4.1
# ./configure
# vi ./pppd/Makefile
として、
HAVE_INET6=y
のように '#' を外して IPv6 を有効にした後、
# make all
# make install
とする。
2. サーバ側設定
COMポート(例ではttyS0)の PPP 着信監視設定を行う。
a) mgetty 設定
(1) mgetty.config 編集
# vi /etc/mgetty+sendfax/mgetty.config
として、ttyS0 用の設定を以下のように編集。
port ttyS0
debug 6
direct y
data-only y
speed 115200
※debug => デバグレベル(0〜6: 4がデフォルト) : mgetty.h 参照
#define L_FATAL 0
#define L_ERROR 1
#define L_AUDIT 2
#define L_WARN 3
#define L_MESG 4
#define L_NOISE 5
#define L_JUNK 6
direct => モデムを介さない(直結)
data-only => データ着信のみ(FAX・音声不可)
speed => 通信速度(bps)
※デバグログは /var/log/mgetty.log.ttyS0 に出力される。
(2) login.config 編集
# vi /etc/mgetty+sendfax/login.config
として、
/AutoPPP/ - a_ppp /usr/sbin/pppd
を追加する。
※ログイン名 /AutoPPP/ で着信時 mgetty が pppd をコールするように設定。
※ pppd のオプションは /etc/ppp/options.ttyS0 で設定する( b)参照)。
b) pppd 設定
(1) options.ttyS0 編集
# vi /etc/ppp/options.ttyS0
として、
lock
default-asyncmap
115200
nopcomp
noaccomp
noccp
crtscts
local
require-chap
require-pap
auth
noip
+ipv6
proxyarp
kdebug 7
debug
といった内容のファイルを作成する。
※オプションの詳細は以下のとおり。
lock
排他制御有効
default-asyncmap
asyncmap ネゴシエーション無効(双方向)
※全制御文字エスケープ
115200
通信速度115200(bps)
nopcomp
プロトコルフィールド圧縮ネゴシエーション無効(双方向)
noaccomp
Address/Control 圧縮無効(双方向)
noccp
CCP ネゴシエーション無効
crtscts
ハードウェアフロー制御(RTS/CTS)有効
local
モデム制御線(CD)無効
※直結時にはこれを指定しておかないとうまく動かない場合が
ある。
require-chap
CHAP認証有効(+chapと等価)
※認証するクライアント名とパスワードを追加する必要がある。
例) クライアント名 ppp パスワード ppp
# vi /etc/ppp/chap_secrets
として、
ppp * "ppp" *
のような行を追加する。
require-pap
PAP認証有効(+papと等価)
※認証するクライアント名とパスワードを追加する必要がある。
例) クライアント名 ppp パスワード ppp
# vi /etc/ppp/pap_secrets
として、
ppp * "ppp" *
のような行を追加する。
auth
相手側に自己証明要求
noip
IPCP/IP無効
+ipv6
IPv6CP/IPv6有効
proxyarp
代理応答有り
※IPv6で有効かどうかは不明
kdebug 7
カーネルレベルのデバッグコード有効
※ 1: 一般情報 2: 受信パケット情報 4: 送信パケット情報
として、必要なものを OR して指定
※この場合、
# vi /etc/syslog.conf
として、
daemon.debug /var/log/messages
kern.debug /var/log/messages
を追加し、ログデーモンを再起動すること。
# service syslog restart
debug
デバグ出力有効
※ /var/log/messages に出力される
c) init 設定
(1) /etc/inittab 編集
# vi /etc/inittab
として、
# Run mgetty in standard runlevels
s0:2345:respawn:/sbin/mgetty ttyS0
を追加する(mgettyの起動&再起動設定)。
(2) 変更反映
# init q
として、変更を反映する。
3. クライアント側設定
COMポート(例ではttyUSB0)経由でサーバに対し PPP 接続を行う。
a) pppd 設定
(1) オプションファイル作成
接続用のオプションファイル(例としてusb0)を作成する。
# vi /etc/ppp/peers/usb0
として、
nodetach
lock
115200
default-asyncmap
mru 1500
nopcomp
noaccomp
noccp
crtscts
connect '/usr/sbin/chat -v -t3 -f usb0.login'
user ppp
require-chap
require-pap
noauth
/dev/ttyUSB0
noip
ipv6 ::0200:00ff:fe00:0002
defaultroute
kdebug 7
debug
といった内容のファイルを作成する。
※オプションの詳細は以下のとおり。
nodetach
バックグラウンドプロセスにしない
lock
排他制御有効
115200
通信速度115200(bps)
default-asyncmap
asyncmap ネゴシエーション無効(双方向)
※全制御文字エスケープ
mru 1500
ネゴシエーション時のMRU(Maximum Receive Unit)値設定(バイト)
nopcomp
プロトコルフィールド圧縮ネゴシエーション無効(双方向)
noaccomp
Address/Control 圧縮無効(双方向)
noccp
CCP ネゴシエーション無効
crtscts
ハードウェアフロー制御(RTS/CTS)有効
connect '/usr/sbin/chat -v -t3 -f /etc/ppp/peers/usb0.login'
chat を起動
※ chat のオプションは以下のとおり
-v : 詳細ログ取得
-t3: 文字列受信待ちタイムアウト(3秒)
-f : チャットスクリプト指定
※スクリプトは、
# vi /etc/ppp/peers/usb0.login
として、
'' ''
ogin--ogin: '/AutoPPP/'
のような内容にする。
→ 最初に(mgettyが着信直後に回線クリアを待つ為)ダミーで
改行を送信(1行目)した後、'login' 文字列を待ってから、
'/AutoPPP/'(着信用キー)を送信する。
※実際にはこれが無くても繋がる(LCP ConfReqの再送を利用)が、
接続完了までにさらにタイムラグが生じてしまう。
user ppp
自己証明の際に使用するクライアント名(ここでは ppp とした)指定
require-chap
CHAP認証有効(+chapと等価)
※認証するクライアント名とパスワードを追加する必要がある。
例) クライアント名 ppp パスワード ppp
# vi /etc/ppp/chap_secrets
として、
ppp * "ppp" *
のような行を追加する。
require-pap
PAP認証有効(+papと等価)
※認証するクライアント名とパスワードを追加する必要がある。
例) クライアント名 ppp パスワード ppp
# vi /etc/ppp/pap_secrets
として、
ppp * "ppp" *
のような行を追加する。
noauth
相手側に自己証明を要求しない
※これは他の認証オプション(require-chap等)よりも後に記述して
おかないと、無効になる場合があるので注意
/dev/ttyUSB0
使用デバイス名指定
noip
IPCP/IP無効
ipv6 ::0200:00ff:fe00:0002
IPv6CP/IPv6有効(自インタフェースIDも指定)
※ ipv6 <local-if-addr>[, <remote-if-addr>]
defaultroute
相手側をGWとしたデフォルトルート設定
kdebug 7
カーネルレベルのデバッグコード有効
debug
デバグ出力有効
(2) 接続
# pppd call usb0
で接続される。
例)
【接続時】※ CHAP 認証使用
# pppd call usb0
Serial connection established.
using channel 59
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
rcvd [LCP ConfReq id=0x1 <auth chap MD5> <magic 0x7b12cbb6>]
sent [LCP ConfReq id=0x1 <magic 0x5a87a33b>]
sent [LCP ConfAck id=0x1 <auth chap MD5> <magic 0x7b12cbb6>]
rcvd [LCP ConfAck id=0x1 <magic 0x5a87a33b>]
rcvd [CHAP Challenge id=0x1 <85e587481b0e74e16cb72a7b396ee590d51b22caaca4cd>, name = "l2m-dev1"]
sent [CHAP Response id=0x1 <473cf645b8007112bf03f61df9c959b4>, name = "ppp"]
rcvd [CHAP Success id=0x1 "Welcome to l2m-dev1."]
Remote message: Welcome to l2m-dev1.
sent [IPV6CP ConfReq id=0x1 <addr fe80::0200:00ff:fe00:0002>]
rcvd [IPV6CP ConfReq id=0x1 <addr fe80::143d:4bb7:2fd4:1c76>]
sent [IPV6CP ConfAck id=0x1 <addr fe80::143d:4bb7:2fd4:1c76>]
rcvd [IPV6CP ConfAck id=0x1 <addr fe80::0200:00ff:fe00:0002>]
local LL address fe80::0200:00ff:fe00:0002
remote LL address fe80::143d:4bb7:2fd4:1c76
Script /etc/ppp/ipv6-up started (pid 7761)
Script /etc/ppp/ipv6-up finished (pid 7761), status = 0x0
【接続時】※ PAP 認証使用(サーバ側でrefuse-chap(-chapと等価)指定)
pppd call usb0
Serial connection established.
using channel 63
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
rcvd [LCP ConfReq id=0x1 <auth pap> <magic 0xb99d1db2>]
sent [LCP ConfReq id=0x1 <magic 0x908d151c>]
sent [LCP ConfAck id=0x1 <auth pap> <magic 0xb99d1db2>]
rcvd [LCP ConfAck id=0x1 <magic 0x908d151c>]
sent [PAP AuthReq id=0x1 user="ppp" password=<hidden>]
rcvd [PAP AuthAck id=0x1 "Login ok"]
Remote message: Login ok
sent [IPV6CP ConfReq id=0x1 <addr fe80::0200:00ff:fe00:0002>]
rcvd [IPV6CP ConfReq id=0x1 <addr fe80::f9e8:0be4:0621:ab82>]
sent [IPV6CP ConfAck id=0x1 <addr fe80::f9e8:0be4:0621:ab82>]
rcvd [IPV6CP ConfAck id=0x1 <addr fe80::0200:00ff:fe00:0002>]
local LL address fe80::0200:00ff:fe00:0002
remote LL address fe80::f9e8:0be4:0621:ab82
Script /etc/ppp/ipv6-up started (pid 8044)
Script /etc/ppp/ipv6-up finished (pid 8044), status = 0x0
【デバイス確認】
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet6 addr: fe80::200:ff:fe00:2/10 Scope:Link
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:5 errors:2 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:100 (100.0 b) TX bytes:100 (100.0 b)
【削除時([Ctrl]+[C])】
Terminating on signal 2.
Script /etc/ppp/ipv6-down started (pid 7787)
sent [LCP TermReq id=0x2 "User request"]
rcvd [LCP TermAck id=0x2]
Connection terminated.
Connect time 7.9 minutes.
Sent 172 bytes, received 172 bytes.
Waiting for 1 child processes...
script /etc/ppp/ipv6-down, pid 7787
Script /etc/ppp/ipv6-down finished (pid 7787), status = 0x0
Indexに戻る
ホーム
このページの先頭