Next: 5.4 Networking with UUCP Up: 5.3 Networking with TCP/IP Previous: 5.3.3.3 Dynamic IP address

## 5.3.4 Using dip

`dip` can simplify the process of connecting to a SLIP server, logging in, and configuring the SLIP device. Unless you have a leased line running to your SLIP server, `dip` is the way to go.

To use `dip`, you'll need to write a ``chat script'' which contains a list of commands used to communicate with the SLIP server at login time. These commands can automatically send your username/password to the server, as well as get information on your IP address from the server.

Here is an example `dip` chat script, for use with a dynamic IP address server. For static servers, you will need to set the variables `$local` and `$remote` to the values of your local IP address and server IP address, respectively, at the top of the script. See the `dip` man page for details.

``

    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 ATT&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` automatically executes `ifconfig` and `route` commands based on the values of the variables `$local` and `$remote`. Here, those variables are assigned using the `get...remote` command, which obtains text from the SLIP server and assigns it to the named variable.

If the `ifconfig` and `route` commands that `dip` runs for you don't work, you can either run the correct commands in a shell script after executing `dip`, or modify the source for `dip` itself. Running `dip` with the `-v` option will print debugging information while the connection is being set up, which should help you to determine where things might be going awry.

Now, in order to run `dip` and open the SLIP connection, you can use a command such as:

``/etc/dip/dip -v /etc/dip/mychat 2>&1``

Where the various `dip` files, and the chat script (`mychat.dip`), are stored in `/etc/dip`.

The above discussion should be enough to get you well on your way to talking to the network, either via Ethernet or SLIP. Again, we strongly suggest looking into a book on TCP/IP network configuration, especially if your network has any special routing considerations, other than those mentioned here.

Next: 5.4 Networking with UUCP Up: 5.3 Networking with TCP/IP Previous: 5.3.3.3 Dynamic IP address