SERIAL-IP(8)SERIAL-IP(8)NAMEserial-ip - Serial IP (SLIP or PPP) setup
DESCRIPTION-------
Note: This text and the serial IP code is not finished. Code needs to
be added to nonamed to allow it to be used both with and without a con‐
nection to the Internet, and by now there is a PPP program for standard
MINIX 3 "out there" that will change everything that is said in this
text. So much to do, so little time...
-------
This manual page describes the MINIX 3 network setup to use serial line
IP. The serial IP protocol used can either be the older SLIP by means
of the slip(8) program, or PPP (Point-to-Point Protocol), the newer and
better serial IP protocol implemented by the ppp(8) program. Alas
standard MINIX 3 only supports SLIP.
In the following text all descriptions and examples will name SLIP or
the slip program, but one may just as well read PPP or ppp. Where nec‐
essary the differences will be noted.
A typical use of the slip program is like this:
slip /dev/psip2 </dev/tty01 >/dev/tty01
The argument of the program, the /dev/psip2 device, is one of the so-
called "Pseudo IP" devices that the MINIX 3 TCP/IP driver inet(8)
offers to implement a virtual network on. On an ethernet IP packets
are received or transmitted by the ethernet card, but packets on a
pseudo IP network are channeled back to or received from a program run‐
ning in user space, such as slip. Standard input and output are used
by slip to exchange packets with another SLIP implementation. This is
normally through an RS-232 serial line like the second serial line
/dev/tty01 as used in the example above.
If we look at the flow of data over normal ethernet then this is what a
TCP connection between two MINIX 3 machines, telnet for instance, looks
like:
[telnet]
|
/dev/tcp0
|
inet
|
[ethernet]
|
inet
|
/dev/tcp0
|
[in.telnetd]
One-half (!) of a SLIP connection would look like this:
[telnet]
|
/dev/tcp2
|
inet
|
/dev/psip2
|
slip
|
[serial line]
...
Configuration for a SLIP network only
It is important to know that as far as inet is concerned the pseudo IP
network is just another network, nothing special. So you have to con‐
vince inet that it has to send packets out over that network. One does
this by setting a default route that makes inet believe that there is a
router somewhere on the pseudo-IP network.
Assume your machine has been given the IP address 192.168.0.13 by your
service provider. Let's choose another address on that network,
192.168.0.1 for instance. (You can use the address of the SLIP gateway
if you want to make it look pretty, but it doesn't really matter, any‐
thing "out there" is ok.) To make MINIX 3 aware of the situation you
have to configure the pseudo IP network. For Minix-vmd you need to
look for the if-then-else-fi code in /usr/etc/rc that tests if
/etc/rc.net should be run. Copy the lines in the else clause that
starts network daemons to /etc/rc.net and add the following lines to
make it look like this:
# My SLIP interface address.
ifconfig -h 192.168.0.13 -n 255.255.255.0
# Standard network daemons.
daemonize rarpd $named irdpd rip inetd
# Default route to the outside world.
add_route -g 192.168.0.1
For standard MINIX 3 one has to edit /etc/rc instead at the point of
the XXX comments. The ifconfig goes at the first XXX, the add_route at
the second XXX. The result is conceptually the same as the example
above. The important thing is the order: Configuration, Daemons,
Routes. (First give addresses to the networks, let the daemons medi‐
tate over the results and possibly configure more networks (rarpd),
then add routes to the configured networks.)
Just one thing left to do. The system uses the first ethernet network
(eth0, ip0, tcp0, and udp0) as the default network. With the program
netdefault(8) you have to change the links to the default devices
(eth/psip, ip, tcp, and udp) to point to the first pseudo IP network
(psip2, ip2, tcp2, and udp2):
netdefault psip2
In /etc/hosts list at least localhost and the name of your machine with
its SLIP address. This way your machine will boot and know its own
name. Now you need to find a way to let your system know the addresses
of other machines. There are three ways:
List the names and addresses of any other machine you wish to
talk to in /etc/hosts. Drawback: This will quickly become a
pretty long list.
Create an /etc/resolv.conf that lists a nameserver at your ISP
and 127.0.0.1 (localhost). Drawback: With the SLIP link down
it takes 5 to 10 seconds for a name lookup to time out on the
remote name server before the local name server is tried.
Install the above /etc/resolv.conf when slip is started, and
remove it when slip exits. Drawback: Long running programs only
read /etc/resolv.conf at startup, so they don't notice it chang‐
ing.
Run a real Internet name daemon from the named package. Draw‐
back: Nontrivial to set up.
Configuration for a SLIP - Ethernet router (simple case)
XXX
Configuration for a SLIP - Ethernet router (complex case)
XXX
FILES
/dev/psip* Pseudo-IP devices for use by slip and ppp.
SEE ALSOboot(8), inet(8), netdefault(8), term(1), chat(1).
BUGSAUTHOR
Kees J. Bot (kjb@cs.vu.nl)
SERIAL-IP(8)