Использование dip
dip может упростить процесс соединения со SLIP-сервером,
войти и настроить SLIP-устройства. Если только у вас не
выделенная линия для SLIP-сервера, dip - это то, что вам надо.
Для использования dip вы должны написать "сценарий болтовни"
(``chat script''), который содержит перечень команд, используемых
для связи со SLIP-сервером при входе в систему. Эти команды могут
автоматически посылать ваши имя/пароль серверу, а также получать
информацию о вашем IP адресе с сервера.
Вот пример такого сценария для использования с сервером
динамических IP адресов. Для статических серверов вам потребуется
в начале сценария установить значения переменных $local
и $remote.
В соответствии с вашими локальным IP адресом и адресом сервера
соответственно. Более детальную информацию можно получить в
Руководстве на dip.
main:
# Set Maximum Transfer Unit. This is the maximum size of packets
# transmitted on the SLIP device. Many SLIP servers use either
# 1500 or 1006; check with your network admins when in doubt.
get $mtu 1500
# Make the SLIP route the default route on your system.
default
# Set the desired serial port and speed.
port cua03
speed 38400
# Reset the modem and terminal line. If this causes trouble
# for you, comment it out.
reset
# Prepare for dialing. Replace the following with your
# modem initialization string.
send AT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r
wait OK 2
if $errlvl != 0 goto error
# Dial the SLIP server
dial 2546000
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# We are connected. Login to the system.
login:
sleep 3
send \r\n\r\n
# Wait for the login prompt
wait login: 10
if $errlvl != 0 goto error
# Send your username
send USERNAME\n
# Wait for password prompt
wait ord: 5
if $errlvl != 0 goto error
# Send password.
send PASSWORD\n
# Wait for SLIP server ready prompt
wait annex: 30
if $errlvl != 0 goto error
# Send commands to SLIP server to initate connection.
send slip\n
wait Annex 30
# Get the remote IP address from the SLIP server. The
# `get...remote' command reads text in the form xxx.xxx.xxx.xxx,
# and assigns it to the variable given as the second argument
# (here, $remote).
get $remote remote
if $errlvl != 0 goto error
wait Your 30
# Get local IP address from SLIP server, assign to variable
# $local.
get $local remote
if $errlvl != 0 goto error
# Fire up the SLIP connection
done:
print CONNECTED to $remote at $rmtip
print GATEWAY address $rmtip
print LOCAL address $local
mode SLIP
goto exit
error:
print SLIP to $remote failed.
exit:
dip автоматически выполняет команды ifconfig и
route,
базирующиеся на значениях переменных
$local и $remote. Здесь этим
переменным присваиваются значения с использованием удаленных
команд get..., которые получают текст со SLIP-сервера и
присваивают его названной переменной.
Если команды ifconfig и route, которые
выполняет для вас dip
не работают, вы можете либо выполнить правильные команды в
сценарии shell после выполнения dip, либо модифицировать исходник
для самого dip. Выполнение dip с опцией
-v будет выдавать
отладочную информацию в процессе установления связи, что должно
помочь в определении ошибок в работе. Теперь, для того, чтобы
выполнить dip и открыть SLIP-соединение вы можете использовать
команду, вроде:
/etc/dip/dip -v /etc/dip/mychat 2>&1
Где различные dip-файлы и сценарий болтовни (mychat.dip)
помещены в /etc/dip. Вышеприведенное обсуждение должно быть
достаточным для вашего хорошего самочувствия на славном пути в
сетевое сообщество через Ethernet или SLIP. И вновь мы
настоятельно рекомендуем заглянуть в книгу по TCP/IP, особенно,
если ваша сеть имеет специфику в маршрутизации, отличающую ее от
рассмотренных здесь.