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

Сайт создан в системе uCoz