家庭内LAN PPPサーバー


ホームネットワークに興味を持っており、それについての調査、学習、実際の
システム構築例です。どんどん変わっていきます。
従って、全ての内容を動作確認したものではありませんので、悪しからず。

ホームインターネットPPPサーバーシステムの構成、機能です。


 ■最も簡単と言われるiij−pppとgettyで、まずチャレンジ。   バージョンはFreeBSD2.2.5Rです。  1 機能    ○実装は2つの種類がある。     ・ppp;ユーザーレベルのもの(今回使用のもの)         ・pppd;カーネルレベルのもの    ○PPP機能     ・クライント機能   発信(ダイアルアップ接続)     ・サーバー機能    着信(被ダイアルアップ接続)    ○FreeBSD、Windowsのシリアルポート     FreeBSD   Windows     sio0      COM1     sio1      COM2    ○FreeBSDのシリアルポートとデバイス     シリアルポート 発信用デバイス     着信用デバイス     sio0   /dev/cuaa0  /dev/ttyd0     sio1   /dev/cuaa1  /dev/ttyd1  2 手順   2、1 モデムの設定      ○設定値       q1   ;リザルトコードなし。       s0=1 ;自動着信あり。モデムの着信コール1回でログイン動作へ。      ○以下のコマンドのどちらかで。       ・pppコマンド       ・cuコマンド      ○pppコマンド       $ppp       User Process PPP. Written by Toshiharu OHNO.       Using interface: tun0       Interactive mode       ppp ON tome> set device /dev/ttyd0       ppp ON tome> set speed 9600       ppp ON tome> term       Enter to terminal mode.       Type `~?' for help.       ?これ以降、操作不能(ハングアップ)になった。       ?termモードが動作しない?       ?シリアルポートの設定が、モデムの設定とあっていない?       gettyが既に、/dev/ttyd0に起動されていたから。getty設定の前にやるべし。7,6参照。      ○これ以降の設定はcuコマンドを使った。       $cu -l /dev/cuaa0 入力       Connected.       atq1s0=1       入力、OK表示は帰ってこない。       ~.          入力(~を入力したところで暫くしてプロンプト(?)が帰ってくる。)       Disconnexted.       $   2、2 サーバー側設定ファイルの編集      ○/etc/rc.conf        gateway_enable="YES"      ○/etc/ttys        ttyd0 "/usr/libexec/getty std.9600" unknown on      ○/etc/gettytab        std.9600|9600-baud:\           :np:sp#9600:      *以上の二つを反映する為に以下のコマンドを入力。        kill -HUP 1      *ps ax で         2207 ?? I 0:00.02 /usr/libexec/getty std.9600 ttyd0       があればOK。      ○/etc/ppp/ppp.conf       ?ブランク行があるとそれ以降は読まれない?       ?設定がよくわからん。       ?参照ドキュメントによって色々違う。       ・Default:と ppp:の違い。       ・とくに ifaddr src      dest                   MYADDR   HISADDR                  クライアント   サーバーORゲートウエイ       ?src dest はクライアントになる場合とサーバーになる場合では反対になる        のか?       ・現在の設定         default:         set device /dev/ttyd0          set speed 28800          disable lqr          deny lqr          set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T          TIMEOUT 40 CONNECT"         xxxx:          enable pap          disable chap          set authname xxxx          enable proxy          set ifaddr a.b.c.2 a.b.c.6 255.255.255.240         ・a.b.c.2はpppサーバーの稼動していホストのIPアドレス。         ・a.b.c.6はpppクライアントに割り付けるIPアドレス。         ・xxxxはpppサーバーから見たクライアントユーザー名。       ?そもそも、ダイアルアップ接続の時のIPアドレスはどうなるのか?        WINのネットワークのTCP/IP設定、ダイアルアップTCP/IP設定、        それとダイアルアップ接続のプロパティのTCP/IP設定の3つの関係       ?ホスト名は一つ、ゲートウエイ設定は?      ○/etc/ppp/ppp.secret        aaaa        xxxx ???? a.b.c.6/24       ・aaaaはpppサーバーの稼動しているホスト名        (本設定がないと、PPPからエラーメッセージがでる。         FreeeBSD2.2.5からチェックを行っている。         Can't open socket 3000: No password in ppp.secret)       ・xxxxはクライアントのユーザー名       ・????はクライアントのパスワード       ・a.b.c.6/24はクライアントのIPアドレス       @一とおり動作した後の追加実験結果        aaaa        ・上記のみの記述でOK。        ・そうですよね。これはダイアルアップに必要なファイルですから。         2,3 ログインシェルの作成       ○ディレクトリ        /usr/local/bin/ppplogin       ○ppplogin        #!/bin/sh        /usr/sbin/ppp -direct xxxx        xxxxはクライアントユーザー名       ○chmod 755 で実行権を与える。       ○/etc/shellsに登録        /bin/sh        /bin/csh        /usr/local/bin/ppplogin   2,4 pppユーザーの作成       ・ディレクトリ        /usr/xxxx       ・グループ        network (69)グループ       ・ログインsh        /usr/local/bin/ppplogin       ・他ファイル作成        .hashlogin  (ファイル名のみ)       ・3個のファイルのオーナーをxxxxにする。        chown xxxx /usr/xxxx .hashlogin   2,5 pppクライアント側の設定       ・ダイアルアップ接続の作成       ・ダイアルアップ接続・サーバーの種類・TCP/IP設定        IPアドレス、DNS−IPアドレスの両方とも”サーバーが割り当てたIPアドレス”        に設定。       ・ダイアルアップ接続・情報・接続の方法・設定・オプション設定        ターミナルウインドウは初めは、”接続後にターミナルウインドウを開く”に設定し、        手入力で確認。その後はその設定をはずす。       ・ダイアルアップ接続・情報・接続の方法・設定・接続スクリプトの作成        proc main        waitfor "login:"        transmit $USERID, raw        transmit "^M"         waitfor "password:"         transmit $PASSWORD, raw        transmit "^M"        endproc
 3チューニングその1   3、1 モデム       ○初め28800bpsに設定していたがNGで、とりあえず9600に落とすとOK。        ・ターミナルウインドウも出ずに、すぐに切断されてしまう。        ・ここで3h、苦しんだ。       @一とおり動作した後の追加実験        ・モデム設定が以下でも動作。         atq1e0s0=1 (リザルトコードなし、コマンドエコーなし、1回で自動着信)        ?e0はどんな作用?どこかでだれかがe0にしてしまうのか?        ・9600bpsを変更し、19200bpsでやってみるが、NG.         文字化けし、ダイアルアップ接続まで、進まない。        ?ボーレート設定コマンドを通すための最初のボーレート設定はいつ?だれが?         getty? ppp?        ?ボーレート調整のアリゴリズムは?どのモジュールが?         PCーーーRS−232C−−−ーーMODEM             シリアルポート速度   モデム変調速度   3,2 クライアントPC設定       そもそもクライアント側(Win)のしくみ、動作が不明だったので、いちいち悩み       ました。       ○TCP/IP設定        ◇proマシンの設定         ・ユーザー情報のマシン名            pro         ・ネットワークのTCP/IP設定(LAN接続時のもので、今回設定対象外)             IP;a.b.c.d            DNS;a.b.c.d=ネットワークダイアルアップTCP/IP設定のDNSと連動。         ゲートウエイ;a.b.c.d         ・ネットワークダイアルアップTCP/IP設定。(別件での設定値で、今回設定対象外)             IP;サーバー指定            DNS;a.b.c.d=ネットワークのTCP/IP設定のDNSと連動。         ゲートウエイ;a.b.c.d         ・ダイアルアップ接続からのTCP/IP設定。(今回の設定対象)             IP;サーバー指定            DNS;サーバー指定          ?これらの関係??       @実験の結果        ・以下のいづれかのDNS設定でOK。         1 ダイアルアップ接続からのTCP/IP設定ーDNS設定         2 ppp.confでの設定           enable msext           set ns a.b.c.2         3 ネットワークダイアルアップTCP/IP設定ーDNS設定         * 優先順位は上記の順みたい。       ○接続時ターミナルウインドウの設定。        ・接続時のターミナルウインドウ操作からの、継続のタイミングや方法。         ユーザーIDやパスワード入力が終了した後に、変な文字(文字化けしたような)         が送られてくる。これで4h悩んだ。これで正常なのです。pppが動き始めパケ         ットを送っていたのだと思う。       ○接続時スクリプトの作成、設定。        ◇Win98でスクリプトあり・PPPクライアント側チューニング         ・スクリプト未使用ではうまくいかなかった。         つまり、PAP認証(?)が上手く行かない。         ・うまく動作したもの(9600bpsの場合)          proc main         waitfor "login:"         transmit $USERID, raw         transmit "^M"          waitfor "password:"          transmit $PASSWORD, raw         transmit "^M"          endproc         ・うまく動作しなかったもの(9600bpsの場合)          proc main          delay 3         transmit "^M"         waitfor "login:"         transmit $USERID, raw         transmit "^M"          waitfor "password:"          transmit $PASSWORD, raw         transmit "^M"          endproc        *ターミナル画面が出て、ユーザーIDの手入力が必要となった。        *login待ちの行に続いて、delayを入れると一瞬ターミナル画面がでるがOK。        *そもそも、transmit "^M"をはずすとdelayも不要でした。         (login画面が2回でていたので)        ◇Win95でスクリプトなし・PPPクライアント側チューニング         ・私のWin95にはスクリプト設定がないのです。         (ヒョットしてWin95+Win95Plusにはあるのか?)         ・”呼び出してからターミナルウインドウを表示”に設定。         ・その画面で、手入力認証(CR、ユーザーID、パスワード)。         ・すると、文字化けのような文字が送られてくる。これが正常と解るのに4h悩みました。         (pppが実行開始した?)         ・そして、ターミナルウインドウの”継続”をクリックすると、接続されましたという          メッセージが出てきて、さっとアイコンになる。         ・現在、ここ迄(ダイアルアップ接続)はOK、それ以降(ネットワーク接続)がNG。         ・”呼び出してからターミナルウインドウを表示”を設定せずに、全て自動でやると          接続異常になる。        @一とおり動作した後の追加実験(proマシン)         1ダイアルアップ接続設定の”ネットワークへログオン”を、ONにしても          表示が以下になるが、動作に影響しなかった。           パスワード確認ーー>ネットワークにログオンーー>パスワード確認         2ダイアルアップ接続設定の”ネットワークへログオン”を、ONにして、かつ          ”呼び出してからターミナルウインドウを表示”をOFFにしたら、自動接続           できるのでは と思ってやってみたがNG。         タイムアウト後”処理できないプロトコルエラー”が発生。        ?スクリプトがないと自動接続は無理か?        ?インターネットサービスプロバイザーとの接続には、コネクトスクリプトが不用         だが?WINのディフォールト設定はPAP接続?   3,3 ネットワーク接続(ppp.conf)       ○pppが動き出してから、ppp.confの設定内容を試行錯誤        ・Default:と ppp:の違い。        ・ppp −direct xxxx にしないといけない に4h。        ・いろいろなMLやHPみて(殆ど、見るドキュメントによって異なる。そもそも         pppクライアントの設定が殆どで、pppサーバーの設定は、非常に少ない。         プログラムのバージョンの差やLAN環境や、今までに設定されたもの等の差で         あろう。)一つ一つトライ&エラー。      ○初め動かなかったもの       default:         set device /dev/ttyd0        set speed 9600         disable lqr         deny lqr         set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T         TIMEOUT 40 CONNECT"       xxxx:        disable chap        enable pap        set authname xxxx        set ifaddr a.b.c.2 a.b.c.6       ○チューニング後、動作したもの       default:        set device /dev/ttyd0         set speed 9600         disable lqr         deny lqr         set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T         TIMEOUT 40 CONNECT"       xxxx:     enable msext   set ns a.b.c.2         enable pap         disable chap         set authname xxxx         enable proxy         set ifaddr a.b.c.2 a.b.c.6 255.255.255.240      @一とおり動作した後の実験       ?以下でも動作した。?       (DNSの有効設定が本設定以外にあれば、動作するはず。        前回実験時にはなかったのか!)       default: set device /dev/ttyd0 set speed 9600 disable lqr deny lqr set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T TIMEOUT 40 CONNECT" xxxx: # enable msext # set ns a.b.c.2 enable pap disable chap set authname xxxx # enable proxy set ifaddr a.b.c.2 a.b.c.6 255.255.255.240
 4 ここまでの成果、まとめ       ・あれこれ、やっている間に、fmvで突然動き出した?????????????。       ・proマシンではNG、fmvマシンでOK。       ・といっても、切断後には正常に、pppプロセスが残ってしまう。        これはpppのバージョンアップが必要。       ・proマシン、fmvマシン        proマシン;WIN95 、携帯電話回線モデム        fmvマシン;WIN98 、アナログ回線モデム           ○proマシンでも、PAP迄は上手く行っているので、ネットワーク接続関係が不備       と予測して、TCP/IP設定等を色々変えても上手く行かない。       1 ユーザー情報のマシン名。       2 ネットワークのTCP/IP設定、ダイアルアップTCP/IP設定。       3 ダイアルアップ接続からのTCP/IP設定。       どうも、2の後者と、3は異なる設定値の様子。つまり、一つのPCで、色々な       設定がもてるようだ。しかし、DNSの設定値は共通みたい。      *ここで、本をよんだり、HPをみたり、MLに出してみたりで、1週間過ぎた。      ○数字のIPアドレスでは動作していることを発見。      ○やはり、DNSサーバー周りの設定と睨んで、その資料類を見る。       /etc/host.conf       /etc/hosts       /etc/resolv.conf      ○/etc/hosts       ・ローカルホストのa.b.c.6の登録が必要かと思って、登録したがNG。       ・次に、proマシンは登録されていて、fmvマシンは登録されて        いないのに気が付いた。       ・proマシンの登録をはずした。       ・Good、Good!。       ?理屈はわからない、なぜ?       ?未登録でかまわないのか?fmvは未登録で大丈夫だった!      ○とりあえず、色々課題は残っているが動作し始めた。       現在までに気が付いた課題と疑問      ・ダイアルアップ接続関連       ・WIN−95側に、一般には、接続スクリプト不要なのに、なぜ必要?      ・PAP関連       ・WIN−95側では、どこで、どの引数を用いて行われているのだろう?        ダイアルアップ時のユーザー名、パスワード?        PPPサーバーへのログイン時に使用のものが、再度使われる?        PAPのON/OFF設定はどこで?       ・PPP側では、どこで、どのデータと照合?       ・ログイン認証後のPAP認証は同じ事を2回、行うことになるのか?      ・複数ユーザーのPPP接続設定は?       ・ログイン認証 :UNIXのパスワードファイルでOK。       ・ログインSH :一つで済ますには?default、ppp記述。       ・PAP認証  :ppp.conf、ppp、secretに全て記述するのか?      ・ユーザー毎にある.ppp.confとシステム共通のppp.confの使い分け。      ・.hushlogの必要性。      ・モデムのデータ転送速度の向上と最適設定方法。       今は、実験の為に9600bps設定。
 5 pppのバージョンアップ     −そこそこ見えてきたので、一番大きな課題をクリアする為に、PPPのバージョンアップ      を、エイや としました。      ・ソースコード入手先(pppバージョン2,1)       http://www.freebsd.org/~brian/      (私はWIN−PCでダウンロードし、SAMBAでUNIXに転送した。)      ・MAKE install        (全て、ROOTで実施。)        mv src.uue /usr/src/usr.sbin/        cd /usr/src/usr.sbin/        uudecode src.uue        tar xvfz ppp-*.src.tar.gz        cd ppp-*        make        make install       -------------------       make install のログ       # make install       ===> libhack       install -C -o bin -g bin -m 444 /usr/src/usr.sbin/ppp-990129/libhack/alias.h /u       sr/include       install -c -o bin -g bin -m 444 libalias.a /usr/lib       install -c -o bin -g bin -m 444 libalias_p.a /usr/lib       install -c -o bin -g bin -m 444 libalias.so.2.5 /usr/lib       install -c -o bin -g bin -m 444 libalias.3.gz /usr/share/man/man3       ===> ppp       install -c -s -o root -g network -m 4554 ppp /usr/sbin       install -c -o bin -g bin -m 444 ppp.8.gz /usr/share/man/man8       ===> pppctl       install -c -s -o root -g bin -m 555 pppctl /usr/sbin       install -c -o bin -g bin -m 444 pppctl.8.gz /usr/share/man/man8       Please read the README.changes file.       You may wish to make etc-install to install the sample files       -------------------       上手くいったようです。(手に汗を握っているところ)
 6pppバージョンアップ後のppp.confの実験   6、1 チューニングその1      ・PAPが上手く行ってない、はずすとOK。???????      ?そう言えば、今迄は、どのようなしくみでPAPは動作していたのであろう?      ・どうやら、クライアント側切断時のpppが残ってしまう現象は起こらないようだ。       バージョンアップ成功か!!     ○現在のppp.cof       default: set device /dev/ttyd0 set speed 28800 disable lqr deny lqr set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T TIMEOUT 40 CONNECT" xxxx: disable chap # enable pap allow user xxxx set server /var/run/internet""0177 set authname xxxx set ifaddr a.b.c.2 a.b.c.6 255.255.255.240 enable proxy     ○現在のppp.secret       aaaa       xxxx ??????? a.b.c.6/28     ○現在のppplogin       #!/bin/sh       /usr/sbin/ppp -direct xxxx   6,2 チューニングその2。      ー実験の結果の設定です。      ○ppp.cof      default:        set device /dev/ttyd0        set speed 28800        disable lqr        deny lqr        set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T        TIMEOUT 40 CONNECT"       pwww:        disable chap       # enable pap        allow user xxxx               これをはずすと繋がらない。       # set server /var/run/internet""0177     元々?      # set authname xxxx              クライントの場合に必要な設定。       set ifaddr a.b.c.2 a.b.c.6 255.255.255.240       enable proxy     ○ppp.secret      tome      # xxxx ?????? a.b.c..6/28  クライントの場合に必要な設定。     ○ppplogin      #!/bin/sh      /usr/sbin/ppp -direct xxxx   6,3 チューニングその3。     ー実験の結果の設定です。     ○ppp.cof    default:       set device /dev/ttyd0       set speed 28800       disable lqr       deny lqr      #set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T       TIMEOUT 40 CONNECT"             set dialはクライントの場合に必要な設定。      #xxxx:                    クライアント場合に、プロバイダーを区別する為のもの。       disable chap      # enable pap       allow user xxxx               これをはずすと繋がらない。      # set server /var/run/internet""0177     元々?      # set authname xxxx              クライントの場合に必要な設定。       set ifaddr a.b.c.2 a.b.c.6 255.255.255.240       enable proxy     ○ppp.secret      tome      # xxxx ?????? a.b.c..6/28  クライントの場合に必要な設定。     ○ppplogin      #!/bin/sh      /usr/sbin/ppp -direct
 7 pppバージョンアップ後のモデム速度設定の実験   7,1 モデムを接続の構成要素と速度      PCー−RS232C−ーMODEMー − − −MODEMーーRS232CーーPC      <−SIO速度−><−DTE速度−><ー−−DCEモデム速度ーーー>      ー正確にいうと、 SIO速度=DTE速度  DTE速度=モデム側が認知しているDTE速度。      ・SIO速度;PC側のシリアルIF速度  PC側で設定。      ・DTE速度;モデムのPCとのIF速度                       ・固定方式であれば、SIO速度に自動的になる。                        PCから”AT”文字を送信した場合になる。                       ・可変方式であれば、DCEモデム速度に自動的になる。      ・DCEモデム速度;モデム間の速度  モデム間のネゴシエイションでできるだけ速い速度                        に自動的になる。      ーSIO速度とDTE速度は一致させる必要があるが、DCE速度とは違う場合がある。      ーSIO速度=DTE速度>DCEモデム速度        7,2 接続方式      ・固定方式(今回の方式)       モデムの接続速度に関係なく、常にモデムとRS−232C間の接続速度を固定にする方法。        長所は、ユーザが接続されると、即座にシステムからのログインプロンプトが送信される。        短所は、実際のモデム間の速度を知ることができない。      ・可変方式        モデム間の接続速度に応じて、RS−232Cとコンピュータ間の接続速度を、変化させる方法。        長所は、実際のモデム間の速度を知る事ができる。        短所はユーザ側に無意味な文字列が表示された場合、ユーザは意味のある文字列        を受信するまでEnterキーを繰り返し送信し、モデムの接続速度を調整する手順が必要となる。          7,3 実験       −実験の設定です。       ○/etc/ttys        ttyd0 "/usr/libexec/getty std.38400" dialup on       ○ppp.cof       default:         set device /dev/ttyd0         set speed 38400         disable lqr         deny lqr        #set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" atz0 OK-AT-OK \\dATDT\\T         TIMEOUT 40 CONNECT"             set dialはクライントの場合に必要な設定。        #xxxx:                    クライアント場合に、プロバイダーを区別する為のもの。         disable chap        # enable pap         allow user xxxx               これをはずすと繋がらない。        # set server /var/run/internet""0177     元々?        # set authname xxxx              クライントの場合に必要な設定。         set ifaddr a.b.c.2 a.b.c.6 255.255.255.240         enable proxy      ○ppp.secret         tome         # xxxx ?????? a.b.c..6/28  クライントの場合に必要な設定。       ○ppplogin         #!/bin/sh         /usr/sbin/ppp -direct     7,4 結果、考察           7,3 の方法だけでは上手くいかなかった。モデムのDTE速度が9600のままでNG。          1 DTE速度の設定を# cu -l /dev/cuaa0 -s 38400         でやってみました。ここで上手く行きました。         (今までは、pppのset speed で行っていましたが。show modem では38400         になっており、それでモデムをアクセスしても、モデムの属性リスト         では DTE SPEEDが 9600のままでしたので)       2 しかし、ここで、再度 kill -HUP 1 で gettyを起動した後、モデムの         属性を以下のコマンドで          cu -l /dev/cuaa0          Connected.          at\s       入力、エコ表示はなし。         みると DTE SPEEDが         また9600になっていました。         gtty の設定はstd38400で ps −axは          2207 ?? I 0:00.02 /usr/libexec/getty std.38400 ttyd0         なのですが。         後で解ったのですが、cuコマンドを -s xxxで速度指定をしなかったので         この時点で9600になって模様。7,7参照。       3 そこで、# cu -l /dev/cuaa0 -s 38400 のあとに         kill -HUP 1   を行わずに、接続してみました。OKなのです。          4 数回接続してもOKでした。       まだ、チャンと理屈が分からないのですが、28800で動作しました。     7,5 今回、使用したモデムコマンド(アイワ PV−EF2880の場合)       ・En  コマンドエコー機能の選択         n=0 エコーしない。         n=1 エコーする(初期値)。       ・Qn  リザルトコードを返す機能の選択。         n=0 リザルトコードを返す(初期値)。         n=1 リザルトコードを返さない。        ・Zn  モデムの設定メモリをリセットし、不揮発性メモリから読む。           n;不揮発性メモリのプロファイルNO。0,1。       ・&Wn 不揮発性メモリに保存。         n;不揮発性メモリのプロファイルNO。0,1。       ・¥Jn モデムのDTE速度モードの設定。         n=0 モデムの速度に無関係に、通信開始前の速度に固定(初期値。         n=1 DTE速度は、モデム速度に合わせる。       ・¥Sn モデムの設定状態の表示。         n=0 現在の状態。         n=1 不揮発性メモリのプロファイル0,1の内容を表示。   7,6 実験で分かった事(気が付いた事)       ーモデムの設定にpppを使う時の注意        ttyでgettyをonにして、kill -HUP 1 を行う前に設定すること。        gettyを起動すると、ttyd0に対してopenをかけており、さらに        pppからの二重openになり、正常に動作しない。        $ppp        User Process PPP. Written by Toshiharu OHNO.         Using interface: tun0         Interactive mode         ppp ON tome> set device /dev/ttyd0         ppp ON tome> set speed 38400         ppp ON tome> term         Enter to terminal mode.         Type `~?' for help.        at            このコマンドで、SIO速度がモデムのDTE速度となる。         atq1s0=1         設定        ~.            termモード終了(エコーされない)         ppp ON tome> term   7,7 モデム速度設定方法の結論       −動作はしましたが、気持ち悪いので、推理してみました。       ・ppp の set speed 38400 実行後の show modem コマンドでみれば        38400になっているのですが、実は”AT”を出していないので        DTE速度は38400になっていない。        このまま、接続すると PCのSIO速度/=DTE速度でエラー        となる。       ・ppp実行の前に getty実行が先で、gettyでも同様。        ttyd0 "/usr/libexec/getty std.38400" dialup on        これは、PCのSIO速度は38400になっても、DTE速度        は38400になっていない。        つまり、kill -HUP 1 実行時の事ですが。         ・では、何故、以下では上手く行くか。        cu -l /dev/cuaa0 -s 38400        CUが インプリシットに”AT”コマンドで、PCのSIO速度=DTE速度に        ネゴシエーションを行っている。       ・しかし、以下では、9600に戻っている、のは        cu -l /dev/cuaa0        CUは、速度指定がなかったので 、ディフォルトの9600        でネゴシエーションしている。        gettyはSIOの速度は設定しても ”AT”コマンドで、速度のネゴシエ        ーション迄はしないと考えるとつじつまがあいます。        当然、ppp.conf のset speed xxx も同じ。        モデムDTE速度設定は、以下のどちらかで。         ・getty起動前のpppコマンドで実際にターミナルモードにして”AT"を          入力して設定。                  ・cu -l /dev/cuaa0 -s xxxx で設定。ttyd0でなくcuaa0であるところに注意。          ここで、速度確認の為にcu -l /dev/cuaa0 で接続してしまうと          9600bpsに戻るので注意。       ?新たな疑問        DTE速度固定方式の  ppp.confでの set speed xxxxはどんな        意味があるのだろう?        ・モデムのDTE速度のネゴもしないし、        ・そもそも、ttysで設定した速度を変えられるの?
家庭内LAN(ホームネットワーク)ページへ戻る