AirH"接続事例(2)
dialdによるオンデマンドダイヤルアップ
はじめに
本ドキュメントではdialdによるオンデマンドダイヤルアップの方法について解説します。
設定に関してはOpenBlockS S (200B)によるAirH"接続事例を元に行っておりますので、別のプロバイダやモデム/TA機器をお使いの場合は、dialdのパッケージ付属のドキュメント等を参考に設定を変更して下さい。
ファイルの入手と展開
- HDDまたはCFをルートファイルシステムとして使用されている場合
弊社FTPサイトよりファイルdiald-1.0-tools.tar.gzを入手して下さい。本ファイルを、/ディレクトリ以下に展開します。# cd / # tar zxvpf diald-1.0-tools.tar.gz
- 本体のみで使用されている場合
弊社FTPサイトよりファームウェアを入手し、ファームウェアアップデート手順に従って導入して下さい。
本ファームウェアは標準のファームウェアにRH2000Pカードを利用するために必要なコマンドおよびdialdの基本パッケージを追加した物です。
ファームウェアアップデート後に、必ずINTボタンを押しながら再起動をしてください。
diald接続設定を行う前に
diald接続設定を行う前にOpenBlockS S (200B)によるAirH"接続事例でも説明した、pppdによるPPP接続設定を先に行い、接続確認を行って下さい。
dialdの設定
dialdの設定を行うために以下のファイルを編集します。詳細な設定に関してはdialdのパッケージのドキュメントを参考にして下さい。
- /etc/diald.conf
- /usr/lib/diald/connect 本設定例は、プロバイダとしてprinを利用しています。別のプロバイダを利用する場合は適宜必要な項目を編集して下さい。
なお、本体のみでご利用の場合、上記設定を保存するために、以下のコマンドを実行して下さい。
# flashcfg s /etc/flashcfg
- /etc/diald.confの設定例
linkname "prin" linkdesc "prin Internet" # Lock in use devices lock device /dev/modem modem crtscts speed 115200 mode ppp accounting-log "/var/log/diald.prin" pidfile "diald.prin" fifo "/var/run/diald.ctl" tcpport 10000 # ip-up/ip-down ip-up /etc/ppp/ip-up ip-down /etc/ppp/ip-down # Use fake addresses initially. Once Demon has told us our real # address we know it is static. local 192.168.0.1 remote 192.168.0.2 sticky pppd-options name prin # We can reach the world via Demon... defaultroute # More or less standard stuff. redial-timeout 10 died-retry-count 0 connect-timeout 600 retry-count 3 connect "/usr/lib/diald/connect" include "/usr/lib/diald/standard.filter"
- /usr/lib/diald/connectの設定例
#!/bin/sh # Copyright (c) 1996, Eric Schenk. # # This script is intended to give an example of a connection script that # uses the "message" facility of diald to communicate progress through # the dialing process to a diald monitoring program such as dctrl or diald-top. # It also reports progress to the system logs. This can be useful if you # are seeing failed attempts to connect and you want to know when and why # they are failing. # # This script requires the use of chat-1.9 or greater for full # functionality. It should work with older versions of chat, # but it will not be able to report the reason for a connection failure. # Configuration parameters # The initialization string for your modem MODEM_INIT="ATZ" # The phone number to dial PHONE_NUMBER="0570570611##61" # The chat sequence to recognize that the remote system # is asking for your user name. USER_CHAT_SEQ="" # The string to send in response to the request for your user name. USER_NAME="" # The chat sequence to recongnize that the remote system # is asking for your password. PASSWD_CHAT_SEQ="" # The string to send in response to the request for your password. PASSWORD="" # The prompt the remote system will give once you are logged in # If you do not define this then the script will assume that # there is no command to be issued to start up the remote protocol. PROMPT="" # The command to issue to start up the remote protocol PROTOCOL_START="" # The string to wait for to see that the protocol on the remote # end started OK. If this is empty then no check will be performed. START_ACK="" # Pass a message on to diald and the system logs. function message () { [ $FIFO ] && echo "message $*" >$FIFO logger -p local2.info -t connect "$*" } # Initialize the modem. Usually this just resets it. message "Initializing Modem" chat TIMEOUT 5 "" $MODEM_INIT TIMEOUT 45 OK "" if [ $? != 0 ]; then message "Failed to initialize modem" exit 1 fi # Dial the remote system. message "Dialing system" chat \ TIMEOUT 45 \ ABORT "NO CARRIER" \ ABORT BUSY \ ABORT "NO DIALTONE" \ ABORT ERROR \ "" ATDT$PHONE_NUMBER \ CONNECT "" case $? in 0) message Connected;; 1) message "Chat Error"; exit 1;; 2) message "Chat Script Error"; exit 1;; 3) message "Chat Timeout"; exit 1;; 4) message "No Carrier"; exit 1;; 5) message "Busy"; exit 1;; 6) message "No DialTone"; exit 1;; 7) message "Modem Error"; exit 1;; *) esac ## We're connected try to log in. #message "Loggin in" #chat \ # TIMEOUT 5 \ # $USER_CHAT_SEQ \\q$USER_NAME \ # TIMEOUT 45 \ # $PASSWD_CHAT_SEQ $PASSWORD #if [ $? != 0 ]; then # message "Failed to log in" # exit 1 #fi # We logged in, try to start up the protocol (provided that the # user has specified how to do this) if [ $PROMPT ]; then message "Starting Comm Protocol" chat TIMEOUT 15 $PROMPT $PROTOCOL_START if [ $? != 0 ]; then message "Prompt not received" exit 1 fi fi if [ $START_ACK ]; then chat TIMEOUT 15 $START_ACK "" if [ $? != 0 ]; then message "Failed to start Protocol" exit 1 fi fi # Success! message "Protocol started"
なお、上記の/usr/lib/diald/connectは設定ファイルではなく実行ファイルのため、所有者root、グループbin、許可情報755に設定されている必要があります。
dialdの起動方法
# /usr/sbin/diald
必要に応じて/etc/rc.d/rc.localに記述して下さい。
diald接続についての捕捉
ダイヤルアップ接続確立後にIP Masquaradeによるサービスを行いたい場合 /etc/ppp/ppp-onに、以下のコマンドを記述して下さい。
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE