[index]
CentreCOM AR740 コマンドリファレンス 2.6
非同期コール/概要・基本設定
- 基本設定
- 物理インターフェース(非同期ポート)の設定
- モデムの設定
- モデムスクリプトの作成
- ACCコールの作成
- 上位層とのインターフェース
- PPP接続の設定例
- ルーター間接続
- ダイヤルアップサーバー
- デバッグ
ここでは、シリアルポートを使って非同期通信を行う非同期コールコントロール(ACC)機能について説明します。
本製品は、最高115200bpsでの通信が可能な非同期シリアルインターフェース(Asyn)を2ポート装備しています。これらの非同期ポートは通常コンソールポートとして使用しますが、モデム等を接続することにより外部への発信、外部からの着信が可能なWANポートとして使用することもできます。
ACCモジュールは、非同期ポート経由でモデム等を制御し、発着信や接続相手の認証、上位モジュールであるPPP(Point-to-Point Protocol)とのインターフェースを提供するモジュールです。
非同期ポートを使って通信を行う場合の基本的な設定手順は次のようになります。
- 物理インターフェース(非同期ポート)の通信設定
- モデムの設定(手動設定またはモデムスクリプトによる自動設定)
- モデムスクリプトの作成(モデム初期化、発信、ログイン等のシーケンスをスクリプトに記述)
- ACCコールの作成(接続先、使用する非同期ポート、エンキャプセレーションなどを設定)
- 上位プロトコルの設定(必要に応じて)
以下、各手順について解説します。
モデムを接続する非同期ポートの設定は次のようにしてください。設定は、SET ASYNコマンドで行います。
- DCD信号:モデムからのDCD(CD)信号がオンになったときに接続されたと認識し、オフになったときに切断されたと認識するよう設定してください。具体的にはCDCONTROL=CONNECTを指定します。
- ポート速度:非同期ポートの速度はモデムのDTE速度にあわせて設定してください。ポート速度はSPEEDパラメーターで指定します。最高速度は115200bpsです。
■ 非同期ポート「1」をモデム接続用の設定にします。ここでは、ポート速度を最高値の115200に設定しています。
SET ASYN=1 SPEED=115200 CDCONTROL=CONNECT ↓
非同期ポートに接続するモデムの設定は次のようにしてください。モデムの設定は機種によって異なる可能性がありますので、モデムのマニュアルでご確認ください。
- DCD信号:モデムのDCD(CD)信号線は相手モデムのキャリアー検出時にオン、そうでないときはオフになるよう設定してください。本製品はモデムからのDCD信号のオン・オフによって相手側との接続、切断を検知します(AT&Cnコマンド)。
- DTR信号:ルーターからのDTR(ER)信号がオフになったときにモデムが回線を切断し、コマンドモードになるよう設定してください(AT&Dnコマンド)。
- 自動着信:外部からの着信接続を受け入れる場合は、自動着信までの呼び出し回数を0以外の値に設定してください(ATS0=nコマンド)。
モデムの設定は、CONNECT PORTコマンドでモデムに接続し、コマンドモードで直接AT コマンドを入力して行うこともできますが、通常は次に述べるモデムスクリプトを使って自動的に行います。
非同期ポートに接続したモデムの制御は、モデムスクリプトの内容にしたがって行われます。モデムスクリプトは、ルーター・モデム間のやりとりを記述したテキストファイル(チャットスクリプト)です(拡張子は.mds)。
モデムスクリプトは、ADD ACC SCRIPTコマンドやEDITコマンドで作成できるほか、別のコンピューター上で作成したものをLOADコマンドでダウンロードして使うこともできます。
モデムスクリプトの内容は、以下の2つの要素からなります。
■ 送信ステートメント:モデムに送るコマンドをスクエアブラケット([])で囲んだものです。改行などの制御文字はキャレット(^)を使って「^m」(Ctrl-Mの意味)のように表します。たとえば、モデムを初期化するには次のように書きます。最後の「^m」を忘れるとモデムにコマンドが入力されないので注意してください。
Note
- 送信ステートメントの文字列はそのまま送られます。コネクトスクリプトなどでログインパスワードを送信するときは、大文字小文字の区別に注意してください。
■ 受信ステートメント:期待する応答文字列と待ち時間をかっこ(())で囲んだものです。(待ち時間 文字列)の形式で指定します。ここで「待ち時間」は応答を待つ時間(秒)、「文字列」はモデムからの応答を示します。指定時間内に期待した応答を得られなかった場合はスクリプトの実行を中止し、DTR信号をオフにしてモデムに回線切断をうながします。たとえば、「ok」という文字列を5秒間待つには、次のように書きます。
待ち時間だけで文字列を指定しなかった場合は、単に指定時間だけ待機した後、次のステートメントに進みます。
また、待ち時間を指定せずに文字列だけを指定した場合は、指定文字列を受信するまで無期限に待ちつづけます。
Note
- 受信ステートメントの文字列は大文字小文字を区別しません。
モデムスクリプトは、実行される時期によって3種類に分類できます。
- ダイヤルスクリプト(DSCRIPT):モデムを発呼させるためのスクリプト。モデムの初期化と設定を行い、接続先にダイヤルするためのモデムコマンドと応答待ち条件を記述する。
- コネクトスクリプト(CSCRIPT):相手との接続が確立した直後に実行されるスクリプト。モデムを介して相手ホストまたはルーターに送る文字列と応答待ち条件を列挙したもの。リモートホストにログインするための手順(ログインスクリプト)などを記述する。
- リセットスクリプト(RSCRIPT):呼の切断時(DCD信号線がオフになったとき)に実行されるスクリプト。ACCコールが定義された直後にも実行されるため、ルーターの起動スクリプトにACCコールの定義が書かれている場合は、起動直後にも実行される。モデムのリセットや再初期化コマンドを記述する。
以下、モデムスクリプトの具体例を示します。
ダイヤルスクリプトの例
[atz^m]
(5 ok)
[ate0q1dt%1^m]
|
リセットスクリプトの例
[atz^m]
(5 ok)
[ats0=2^m]
|
コネクトスクリプトの例
(10 login:)
[ispuser^m]
(10 password:)
[isppasswd^m]
(10)
|
■ モデムスクリプトを作成するときは、最初に手動接続してモデムやログイン先の応答を確認するとよいでしょう。CONNECT PORTコマンドでモデムが接続されているポートを指定すると、端末から直接モデムにコマンドを入力できるようになります。たとえば、非同期ポート「1」にモデムが接続されている場合、コマンドプロンプトから次のように入力します。
Manager > connect port=1
Info (136266): Local port ( Asyn 0 ) assigned to service ( Asyn 1 ).
atz
OK
|
ルーターのコンソールに戻るにはBreakを送ります。コンソールからログインしている場合は、「Break」キーを入力するか、端末ソフトの機能を使ってBreakを送信してください。また、Telnetでログインしている場合は、「Ctrl-P」を入力してください。Breakを送信すると、モデムとのセッションがサスペンド状態となり、次のように表示されます。
Session 1 to Asyn 1 paused
Manager >
|
この状態では、モデムとの接続がまだ保持されているため、完全に接続を切るには、次のように入力します。指定する番号(セッション番号)は、SHOW SESSIONSコマンドで確認できます。
Manager > disconnect 1
Info (136275): Disconnected from session 1 ( Asyn 1 ).
Manager >
|
非同期ポートを使って通信を行うには、接続先情報をACCコールとして定義する必要があります。ACCコールはISDN接続におけるISDNコールと同様のもので、ADD ACC CALLコマンドで作成します。
■ リモートサイト06-1234-2222にダイヤルするACCコール「remote」を作成します。DIRECTIONには有効な呼の方向を「ORIGINATE」(発呼のみ)、「ANSWER」(着呼のみ)、「BOTH」(発呼、着呼の両方)から指定します。ENCAPSULATIONには使用する非同期回線上で使用するプロトコルを指定します。PPPの場合はPPPとなります。AUTHENTICATIONは着信時の認証方式を指定するもので、PASSWORD(パスワード認証)かNONE(なし)を指定します。ここではPPPレベルで認証を行うものと仮定し、NONEを指定します。ASYNには、モデムを接続している非同期ポート番号を指定します。DSCRIPT、RSCRIPTはそれぞれダイヤルスクリプト、リセットスクリプトの指定です。コネクトスクリプトはCSCRIPTで指定します。
ADD ACC CALL=remote DIR=BOTH ENCAP=PPP AUTH=NONE ASYN=1 DSCRIPT=dial.mds RSCRIPT=reset.mds ↓
ダイヤルスクリプト「dial.mds」
[atz^m]
(5 ok)
[ate0q1dt0612342222^m]
|
リセットスクリプト「reset.mds」
[atz^m]
(5 ok)
[ats0=2^m]
|
■ DIALパラメーターを使用すると、ダイヤルスクリプト実行時に引数%1として値を渡すことができます。このパラメーターに接続先電話番号を指定することで、ダイヤルスクリプトを汎用的に書けるようになります。
ADD ACC CALL=remote DIR=BOTH ENCAP=PPP AUTH=NONE ASYN=1 DSCRIPT=dial.mds RSCRIPT=reset.mds DIAL=0612342222 ↓
ダイヤルスクリプト「dial.mds」
[atz^m]
(5 ok)
[ate0q1dt%1^m]
|
スクリプト実行時には、%1がDIALパラメーターで指定した値に置き換えられます。この例では「0612342222」に置き換えられるため、「ate0q1dt0612342222」というモデムコマンドが実行されることになります。
■ 着呼時にPPPインターフェースを動的作成する場合は、PPPTEMPLATEパラメーターでPPPテンプレート番号を指定します。着信専用のときはDIRECTIONにANSWERを指定します。また、ダイヤルスクリプトは不要なので指定しません。
ADD ACC CALL=dialin DIR=ANSWER ENCAP=PPP AUTH=NONE ASYN=1 RSCRIPT=reset.mds PPPTEMP=0 ↓
■ ACCコールを手動で起動(発信)するには、ACTIVATE ACC CALLコマンドを使います。起動できるのは、発信可能なACCコール(DIRECTIONパラメーターにORIGINATEかBOTHを指定したもの)だけです。
ACTIVATE ACC CALL=remote ↓
■ ACCコール上にダイヤルオンデマンドのPPPインターフェースが作成されている場合は、必要に応じてACCコールが自動的に発呼し、無通信状態が一定時間続くと自動的に切断されます。PPPインターフェースのダイヤルオンデマンドは、CREATE PPPコマンド/SET PPPコマンドのIDLEパラメーターで設定します。
また、ダイヤルオンデマンドがオフのPPPインターフェースが作成されている場合は、ルーター起動時に自動的に発呼します。
■ ADD ACC CALLコマンドのAUTHENTICATIONパラメーターは、着呼時のログイン認証について設定するパラメーターです。
- PASSWORDを指定した場合、着呼直後にログインプロンプトを使ったログイン認証を行ってから次の手順に進みます。
- AUTOを指定した場合、PPPのフラグシーケンスの有無を判断し、検出できなかったときのみログイン認証を行います。
- NONEを指定した場合、ログイン認証を行いません。
Note
- AUTHENTICATIONパラメーターは、リモートシステムとの物理接続が完了した直後に行われるログイン認証の有無を指定するものです。おもに端末ログインやSLIP接続時の認証に使います。PPPレベルでの認証(PAPやCHAP)には関係しませんのでご注意ください。PPPレベルでCHAP等の認証を行うときは、通常AUTHENTICATIONパラメーターにNONEを指定します。
Note
- SLIPはサポート対象外です。
■ ADD ACC CALLコマンドのENCAPSULATIONパラメーターは、非同期回線上で使用する伝送手順(データリンク層プロトコル)を指定するものです。PPPを使う場合はPPPを、SLIPを使う場合はSLIPかCSLIPを指定してください。
■ ACCコールの設定内容を変更するにはSET ACC CALLコマンドを使います。たとえば、ACCコール「remote」のダイヤル先を変更するには、次のようにします。
SET ACC CALL=remote DIAL=0612345678 ↓
■ ACCコールの設定情報を確認するには、SHOW ACC CALLコマンドを使います。
SHOW ACC CALL ↓
SHOW ACC CALL=remote ↓
■ ACCコールを削除するには、DELETE ACC CALLコマンドを使います。
ACCコール上で使用できるデータリンク層プロトコルには、PPP(Point-to-Point Protocol)とSLIP(Serial Line Internet Protocol)の2種類があります。これらのインターフェースは次のようにして設定します。
■ ACCコール上にPPPインターフェースを作成するときは、OVERパラメーターにACCコール名を「ACC-callname」の形式で指定します。「ACC-」は固定文字列、「callname」はコール名です。ダイヤルオンデマンドを有効にするため「IDLE=ON」を付けるようにしてください。
CREATE PPP=0 OVER=ACC-remote IDLE=ON ↓
■ SLIPインターフェースの場合、特に作成の操作は必要ありません。ACCコールのENCAPSULATIONパラメーターにSLIPかCSLIPを指定した場合、「SLIPn」という名前のSLIPインターフェースが自動的に(暗黙のうちに)作成されます。「n」は、ACCコール作成時にASYNパラメーターで指定した非同期インターフェースの番号です。たとえば、asyn1上にSLIP用のACCコールを作成した場合、インターフェース名はslip1となります。
このインターフェースは、SHOW INTERFACEコマンド等では見ることができませんが、ADD IP INTERFACEコマンドでIPアドレスを割り当てることができます。
ADD IP INT=slip1 IP=192.168.10.200 MASK=255.255.255.255 ↓
Note
- SLIPはサポート対象外です。
PPPは、シリアル回線経由で複数プロトコルの通信を可能にするプロトコルです。モジュール型の設計により認証などの機能も提供されています。現在、もっとも一般的に使用されているWANプロトコルです。
- 物理インターフェースとして非同期(Asyn)ポートを使用する。非同期ポートにはシリアルケーブルでモデムやTAを接続します。
- モデム、TA経由での呼を管理するため、非同期(ACC)コールを作成して、接続先の電話番号、使用する非同期ポート、モデムスクリプトなどを指定する。ACCコールは、BRI、PRIポート上で使用するISDNコールとよく似た働きをします。ただし、ISDNの場合は回線制御機構がルーターに内蔵されているのに対し、ACCコールでは発着信の制御を外部のモデムに依存している点が異なります。
- ACCコール上にPPPインターフェースを作成する。具体的には、CREATE PPPコマンドのOVERパラメーターにACCコール名を「ACC-」+コール名の形式で指定します。これは、モデム等により交換回線網上に張られた「呼」を物理的な伝送路と見なしていることを示します。
2つのLANをアナログ回線経由で接続します。IPアドレスは、それぞれのルーターで固定的に設定します。
ルーターA
- 非同期ポートの設定を行います。
SET ASYN=1 SPEED=115200 CDCONTROL=CONNECT ↓
- ACCコールを作成し、接続先を登録します。相手ルーターの認証はPPPのリンク確立後に行うため、AUTHENTICATIONパラメーターにはNONEを指定します。
ADD ACC CALL=remote DIAL=0312342222 DIR=BOTH ENCAP=PPP ASYN=1 DSCRIPT=dial.mds RSCRIPT=reset.mds AUTH=NONE ↓
- 相手ルーターのPPPユーザー名を登録します。
ADD USER=RouterB PASSWORD=PasswordB LOGIN=NO ↓
- PPPインターフェースを作成します。物理インターフェースには、ACCコール名の前に「ACC-」を付けたものを指定します。
CREATE PPP=0 OVER=ACC-remote IDLE=ON BAP=OFF LQR=OFF AUTHEN=CHAP USER=RouterA PASSWORD=PasswordA ↓
- IPの設定をします。
ENABLE IP ↓
ADD IP INT=eth0 IP=192.168.10.1 ↓
ADD IP INT=ppp0 IP=192.168.100.1 ↓
ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp0 NEXT=192.168.100.2 ↓
ルーターB
- 非同期ポートの設定を行います。
SET ASYN=1 SPEED=115200 CD=CONNECT ↓
- ACCコールを作成し、接続先を登録します。相手ルーターの認証はPPPのリンク確立後に行うため、AUTHENTICATIONパラメーターにはNONEを指定します。
ADD ACC CALL=remote DIAL=0312341111 DIR=BOTH ENCAP=PPP ASYN=1 DSCRIPT=dial.mds RSCRIPT=reset.mds AUTH=NONE ↓
- 相手ルーターのPPPユーザー名を登録します。
ADD USER=RouterA PASSWORD=PasswordA LOGIN=NO ↓
- PPPインターフェースを作成します。物理インターフェースには、ACCコール名の前に「ACC-」を付けたものを指定します。
CREATE PPP=0 OVER=ACC-remote IDLE=ON BAP=OFF LQR=OFF AUTHEN=CHAP USER=RouterB PASSWORD=PasswordB ↓
- IPの設定をします。
ENABLE IP ↓
ADD IP INT=eth0 IP=192.168.20.1 ↓
ADD IP INT=ppp0 IP=192.168.100.2 ↓
ADD IP ROUTE=192.168.10.0 MASK=255.255.255.0 INT=ppp0 NEXT=192.168.100.1 ↓
■ モデムスクリプトdial.mdsの内容は次のとおりです。
[atz^m]
(10 ok)
[ate0q1dt%1^m]
|
■ モデムスクリプトreset.mdsの内容は次のとおりです。
[atz^m]
(10 ok)
[ats0=1^m]
|
■ PPPインターフェースには、必ずしもIPアドレスを設定する必要はありません。IPアドレスを設定しないインターフェースをUnnumbered IPインターフェースと呼びます。Unnumberedを使用する場合は、手順5のIPの設定で次の2行を変更します。
ルーターA
ADD IP INT=ppp0 IP=0.0.0.0 ↓
ADD IP ROUTE=192.168.20.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 ↓
ルーターB
ADD IP INT=ppp0 IP=0.0.0.0 ↓
ADD IP ROUTE=192.168.10.0 MASK=255.255.255.0 INT=ppp0 NEXT=0.0.0.0 ↓
アナログ回線経由でダイヤルアップを受け入れられるように設定します。接続してきたユーザーには、ユーザー認証データベースに登録されたIPアドレスを割り当てます。
ルーター(ダイヤルアップサーバー)
- 非同期ポートの設定を行います。
SET ASYN=1 SPEED=115200 CDCONTROL=CONNECT ↓
- PPPユーザーを登録します。IPADDRESS、NETMASKパラメーターは、このユーザーが接続してきたときに割り当てるIPアドレスとネットマスクです。ダイヤルアップユーザーに割り当てるネットマスクは、通常255.255.255.255になります。
ADD USER=dialupuser PASSWORD=dialuppasswd IPADDRESS=192.168.10.230 NETMASK=255.255.255.255 LOGIN=NO ↓
- ユーザーが接続してきたときに動的に作成されるPPPインターフェースのテンプレートを作成します。ルーターのユーザー認証データベースを使って認証を行い、認証方式にはCHAPかPAPのどちらかを使います。
CREATE PPP TEMPLATE=0 IDLE=180 BAP=OFF LQR=OFF LOGIN=USER AUTHEN=EITHER ↓
- ACCコールを作成します。着信専用なのでDIRECTIONにはANSWERを指定します。PPPTEMPLATEには、着信時に動的作成するPPPインターフェースのテンプレートを指定します。また、接続ユーザーの認証はPPPのリンク確立後に行うため、AUTHENTICATIONパラメーターにはNONEを指定します。
ADD ACC CALL=dialin DIR=ANSWER ENCAP=PPP ASYN=1 RSCRIPT=reset.mds PPPTEMPLATE=0 AUTH=NONE ↓
RSCRIPT(リセットスクリプト)には、モデムを初期化し、自動応答をオンにするためのモデムコマンドを記述します。DSCRIPT(ダイヤルスクリプト)は不要なので指定しません。
- LAN側のIP設定をします。
ENABLE IP ↓
ADD IP INT=eth0 IP=192.168.10.1 ↓
■ モデムスクリプトreset.mdsの内容は次のとおりです。
[atz^m]
(5 ok)
[ats0=1^m]
|
■ IPプールを使ってアドレスを動的に割り当てるには、手順2、3を次のように変更します。この例では、192.168.10.211〜192.168.10.220の範囲から空いているアドレスを動的に割り当てます。
ADD USER=dialupuser PASSWORD=dialuppasswd LOGIN=NO ↓
CREATE IP POOL=pppip IP=192.168.10.211-192.168.10.220 ↓
CREATE PPP TEMPLATE=0 IDLE=180 BAP=OFF LQR=OFF LOGIN=USER AUTHEN=EITHER IPPOOL=pppip ↓
■ RADIUSサーバーを使ってユーザーに割り当てるIPアドレスを管理するには、手順2、3を次のように変更します。ユーザーアカウントはRADIUSサーバー上で管理するため、ADD USERコマンドは必要ありません。その代わり、ADD RADIUS SERVERコマンドでRADIUSサーバーのIPアドレスと共有パスワードを指定する必要があります。
CREATE PPP TEMPLATE=0 BAP=OFF LQR=OFF LOGIN=RADIUS AUTHEN=EITHER ↓
ADD RADIUS SERVER=192.168.10.100 SECRET=ijiruna ↓
RADIUSサーバーのクライアント情報ファイルとユーザー情報ファイルの例を示します。設定ファイルの書式はサーバーによって微妙な違いがあるので注意してください。詳細はRADIUSサーバーのマニュアルをご覧ください。
[/etc/raddb/clients]
# client secret
192.168.10.1 ijiruna
|
[/etc/raddb/users]
dialupuser Password = "PasswordA"
Framed-IP-Address = 192.168.10.201
Framed-IP-Netmask = 255.255.255.255
Idle-Timeout = 180
|
■ 非同期コールのデバッグをオンにするには、ENABLE ACC CALL DEBUGコマンドを使います。
ENABLE ACC CALL=slip DEBUG=ALL ↓
■ 接続に失敗する場合、非同期ポートの設定を確認してください。CD信号線の解釈の仕方(SET ASYNコマンドのCDCONTROLパラメーター)がCONNECT(CDオンで接続、オフで切断と認識する)になっているかどうか確認してください。
(C) 1997 - 2008 アライドテレシスホールディングス株式会社
PN: 613-000215 Rev.C