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, особенно, если ваша сеть имеет специфику
в маршрутизации, отличающую ее от рассмотренных здесь.