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