シリアル(クロスケーブルやbluetoothのRFCOMM)で結ばれた2台のホスト間で、pppdによるpoint-to-pointの接続を行う。(201510)

あらかじめ、minicom などでシリアル通信が出来る事を確認しておく。

方針

  • 2つのホストをサーバ、クライアントと呼ぶことにする。
  • pap-secretsの該当行は、サーバとクライアント両方で同一内容。
  • サーバのIPアドレスはサーバ側コマンドラインに書く。(か、/etc/ppp/peersに。)
  • クライアントのIPアドレスは、pap-secrets に認証情報と共に書く。

pap-secrets

サーバー・クライアントの両方で、/etc/ppp/pap-secretsを用意する。

# Secrets for authentication using PAP
# client        server  secret                  IP addresses
<name>          *       <pass>                  192.168.8.10

サーバー側、pppd起動

pppd -detach debug local /dev/ttyS0 115200 require-pap 192.168.8.1:  pap-timeout 0
  • local : モデムのCD信号監視と、DTR信号制御を行わない。
  • require-pap : 相手にpap認証を要求
  • <local-IP>: サーバのローカルIPアドレス。(リモートのIPアドレスはpap-secretsに記載)
  • pap-timeout : 0なら永久にあきらめない。しかし接続が切断された場合は、pppdは終了する。

オプションを羅列したファイル /etc/ppp/peer/ を作成しておき、

pppd call <conName>

でも呼び出すことができる。

クライアント側、pppd起動

  • /etc/ppp/peer/btppp

    hide-password
    noauth
    /dev/rfcomm0
    115200
    defaultroute
    noipdefault
    user "<name>"   # pap-secrets の name欄
    

    このような設定ファイルを用意しておき、

    pppd call btppp -detach debug

カーネルモジュールppp_generic

もしpppdが ppp_genericモジュールを自動でロードできない場合は、

Couldn't open the /dev/ppp device: No such device or address
Please load the ppp_generic kernel module.

/etc/modprobe.d/modules.confで下記を指定する。

alias char-major-108 ppp_generic