Программа dip заметно упрощает процесс подключения к SLIP-серверу, входа в систему и конфигурирования устройств SLIP. Программа dip будет весьма полезна кроме, может быть, случаев, когда для подключения к SLIP-серверу используется выделенная телефонная линия (leased line).
Для использования программы dip требуется написать "диалоговый скрипт" (chat script). В этом скрипте будет содержаться список команд, с помощью которых будет осуществляться диалог со SLIP-сервером во время входа в систему. Эти команды могут автоматически посылать на сервер имя пользователя и пароль, а также получить от сервера информацию о вашем IP-адресе.
Ниже дается пример диалогового скрипта программы dip для работы с сервером с динамическими IP-адресами. Для серверов со статическими адресами надо будет в начале скрипта установить значения переменных $local и $remote, равных соответственно вашему (local) IP-адресу и IP-адресу сервера. Подробно об этом написано в экранной документации к программе dip.
main:
# Установка максимального размера передаваемого блока
# (Maximum Transfer Unit). Это максимальный размер пакета,
# передаваемого через устройство SLIP device. Многие
# SLIP-серверы используют либо 1500 либо 1006; при сомнениях
# следует спросить администратора сети.
get $mtu 1500
# Установить маршрут SLIP как маршрут по умолчанию
default
# Установить нужный последовательный порт и скорость передачи
port cua03
speed 38400
# Выполнить начальную установку модема и терминальной линии.
# Если эта команда создает проблемы, закомментируйте ее.
reset
# Подготовка к набору номера. Подставьте в следующей строке
# инициализационную команду (initialization string) для
# вашего модема.
send ATT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r
wait OK 2
if $errlvl != 0 goto error
# Набираем номер SLIP-сервера
dial 2546000
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# Связь установлена. Входим в систему.
login:
sleep 3
send \r\n\r\n
# Ждем приглашения в систему
wait login: 10
if $errlvl != 0 goto error
# Посылаем имя пользователя
send USERNAME\n
# Ждем приглашения ввести пароль
wait ord: 5
if $errlvl != 0 goto error
# Посылаем пароль
send PASSWORD\n
# Ждем сигнала готовности SLIP-сервера
wait annex: 30
if $errlvl != 0 goto error
# Посылаем команды SLIP-серверу для инициализации соединения
send slip\n
wait Annex 30
# Получаем значение IP-адреса SLIP-сервера. Команда
# "get...remote" читает текст в формате xxx.xxx.xxx.xxx,
# и присваивает его переменной, указанной вторым аргументом
# (в данном случае переменной $remote).
get $remote remote
if $errlvl != 0 goto error
wait Your 30
# Получаем значение своего IP-адреса от SLIP-сервера и
# присваиваем его переменной $local.
get $local remote
if $errlvl != 0 goto error
# Запускаем связь через соединение SLIP
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...remote, которая получает текстовую строку от SLIP-сервера и присваивает ее указанной переменной.
Если запускаемые программой dip команды ifconfig и route не работают, то можно либо после выполнения программы dip запустить правильные команды из скрипта программной оболочки, либо непосредственно изменить текст скрипта для программы dip. Запуская программу dip с опцией -v можно получать протокол процесса подключения. Эта информация поможет выяснить источник неудачи, если связь не будет устанавливаться.
Для того, чтобы запустить программу dip и установить подключение SLIP, можно использовать команду следующего типа:
\verb!/etc/dip/dip -v /etc/dip/mychat 2>&1!При этом различные файлы программы dip и диалоговый скрипт mychat.dip хранятся в каталоге /etc/dip.
Сделанный обзор должен быть достаточным для того, чтобы пользователь смог успешно устанавливать соединение через сети через подключения Ethernet и SLIP. Еще раз отметим, что пользователю будет полезно ознакомиться с книгами, посвященными конфигурированию сетей с протоколом TCP/IP. Особенно это важно, если принцип маршрутизации (routing considerations) в сети отличается от рассмотренных выше.