Lo siguiente es una forma de configurar FreeBSD para que utilice SLIP, en un red con dirección estática. Para direcciones dinámicas (esto es, donde su dirección cambia cada vez que se conecta), probablemente sea necesario realizar algunos ajustes que complican la configuración.
En primer término, es necesario determinar a que puerto
serial esta conectado nuestro módem. Mucha gente opta por}
contar con un enláce simbólico, tal como
/dev//modem
, que apunta al nombre
real del dispositivo,
/dev/cuaaN
. Esto permite abstenerse de
usar el nombre real del dispositivo, en caso de que sea necesario
cambiar de puerto nuestro módem. Lo cual puede ser de mucha
ayuda, ya que puede ser un fastidio tener que editar un monton de
ficheros en /etc
y ficheros de tipo
.kermrc
en todo el sistema!.
/dev/cuaa0
es
COM1
, cuaa1
es
COM2
, etc.
Asegurese de contar con la siguiente opción en la configuración de su kernel:
pseudo-device sl 1
Esta opción esta incluida en el archivo del kernel
GENERIC
, así que no debe haber
problema, claro esta, a menos que lo haya borrado
intencionalmente.
Añada el nombre de su maquina, gateway, servidores
de nombre a su fichero /etc/hosts
. Este es
un ejemplo de mi fichero:
127.0.0.1 localhost loghost 136.152.64.181 water.CS.Example.EDU water.CS water 136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway 128.32.136.9 ns1.Example.EDU ns1 128.32.136.12 ns2.Example.EDU ns2
Asegurese de que cuenta con la opción hosts
antes de la opción bind
, en su fichero
/etc/host.conf
. De lo contrario pueden ocurrir
cosas graciosas en su sistema.
Edite el fichero /etc/rc.conf
.
Especifique su nombre host al editar la línea que dice:
hostname=“minombre.mi.dominio”
El nombre completo de su sistema para internet, debe ser escrito en este punto.
Añada el dispositivo sl0
a la
lista de dispositivos de red, al cambiar la línea que dice:
network_interfaces="lo0"
a quedar:
network_interfaces=“lo0 sl0”
Añada los parámetros de inicialización del dispositivo sl0, al añadir la línea:
ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"
Especificque cual será su ruteador por omisión al editar la línea:
defaultrouter=“NO”
a quedar:
defaultrouter=“slip-gateway”
Edite su fichero /etc/resolv.conf
(si no existe
debe crearlo), a que contenga lo siguiente:
domain CS.Ejemplo.EDU nameserver 128.32.136.9 nameserver 128.32.136.12
Como puede ver, lo anterior define el nombre de host, de su servidor de nombres. Claro esta, el nombre de dominio y las direcciones IP, dependen de su sistema específico.
Establezca la contraseña del superusuario
root
y de su símil
toor
(y de cualquier otro usuario
que aun no cuente con la misma).
Reinicie su sistema y asegurese que cuenta con el nombre de host (hostname) correcto.
Marque el número, teclee en el signo de comando
slip
, ingrese el nombre y la contraseña.
Lo que se requiere ingresar, depende de su sistema. Si utiliza
kermit, puede utilizar un script similar
al siguiente:
# kermit setup set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # El siguiente macro se encarga de llamar e ingresar al sistema define slip dial 643-9600, input 10 =>, if failure stop, - output slip\x0d, input 10 Username:, if failure stop, - output silvia\x0d, input 10 Password:, if failure stop, - output ***\x0d, echo \x0aCONNECTED\x0a
Claro esta, que debe cambiar el nombre y contraseñ
a quedar de acuerdo a sus necesidades. Después de hacer
esto, puede simplemente teclear slip
en el
símbolo de sistema (prompt) de kermit, para realizar
la conexión.
El dejar su contraseña en texto plano, en cualquier parte del sistema, generalmente es una mala idea. Hágalo bajo su propio riesgo.
Dejé a kermit en ese punto trabajando (puede
suspenderlo tecleando
Ctrl+z) y como root
, teclee:
#
slattach -h -c -s 115200 /dev/modem
Si puede hacer ping
a cualquier host
que se encuentre del otro lado del ruteador, usted esta
conectado!. Si esto no funciona, puede intentar como
argumento del comando slattach
, la
opción -a
en lugar de utilizar la
optción -c
.
Para terminar la conexión haga lo siguiente:
#
kill -INT `cat /var/run/slattach.modem.pid`
esto terminaraá slattach
. Recuerde que
para hacer esto, usted debe estar firmado como superusuario (root).
Posteriormente dirijase a kermit (puede hacer esto con
fg
si lo envio a segundo plano) y salga (tecleando
q
).
La página de ayuda de slattach
indica que
debe utilizar el comando ifconfig sl0 down
, para
marcar como terminado el uso del dispositivo, pero tal parece que
esto no hace una gran diferencia para mi.
(ifconfig sl0
da el mismo resultado.)
En algunas ocasiones, puede que su módem se niegue a cortar la comunicación (el mio lo hace a veces). Si ese es el caso, simplemente inicie de nuevo kermit y vuelva a salir. Normalmente en el segundo intento hay exito.
Si esto no funciona, sientase libre de preguntarme. Lo siguiente es una recapitulación de los problemas que más comunmente se presentan:
El no utilizar la opción -c
o
-a
con el comando
slattach
(Esto debiera se fatal, pero algunos
usuarios han reportado que esto ha solucionado sus problemas.
Usar la opción s10
en vez de usar la
opción sl0
(puede ser difícil ver la
diferencia con algunos tipos de letras).
Intente ifconfig sl0
para visualizar
el estatus de sus dispositivos de red. Por ejemplo, puede ser que
obtenga algo similiar a lo siguiente:
#
ifconfig sl0
sl0: flags=10<POINTOPOINT> inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00
También el comando netstat -r
le
mostrará la tabla de ruteo, en caso de que obtenga el
mensaje “no route to te host”, al hacer
ping
. Un ejemplo de esto se muestra
a continuación:
#
netstat -r
Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: (root node) (root node) Route Tree for Protocol Family inet: (root node) => default inr-3.Example.EDU UG 8 224515 sl0 - - localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438 inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 (root node)
Esto es después de que el sistema ha estado conectado por un tiempo. Los numeros pueden variar en su sistema.
Este documento provee sugerencias, para establecer un servidor de SLIP, bajo FreeBSD, lo que generalmente significa configurar su sistema, para que de manera automática inicie los servicios, al firmarse usuarios—clientes remotos en su sistema.
Esta sección es de naturaleza muy técnica, así que contar con antecedentes sobre esto es requerido. Este documento supone que usted cuenta con conocimientos sobre el protocolo de redes TCP/IP, y particularmente, redes y direcciones de nodos, mascaras de red, subneteo, ruteo y protocolos de ruteo, tal como RIP. El configurar servicios SLIP, en un servidor, requiere un conocimiento de estos conceptos, y si usted no esta familiarizado con estos, puede leer una copia, ya sea del libro de Craig Hunt; TCP/IP Networking Administration, publicado por O'Reilly & Associates, Inc. (Numero ISBN 0-937175-82-X), o alguno de los libros de Douglas Comer, sobre protocolos TCP/IP.
Se da por un hecho, que usted ha instalado y configurado correctamente su(s) módem(s), así como la configuración de su sistema, para efecto de utilizar el mismo para realizar la conexión. Si usted no lo ha hecho, por favor lea el tutorial sobre configuración de estos servicios; si cuenta con un navegador para la World-Wide Web, puede ver los tutoriales disponibles en http://www.FreeBSD.org/.
Puede ser que también desee revisar las páginas de
ayuda (man), sio(4) para información
referente a los controladores de dispositivos de puertos en serie, y
ttys(5), gettytab(5), getty(8), & init(8), para
ver información relevante, sobre la configuración de su
sistema, para efecto de que acepte accesos (logins) por medio de un
módem, y quizás stty(1) para información
sobre los parámetros de configuración de puertos en
serie (tal como clocal
, que se utiliza para
la conexión directa por medio de puertos seriales).
En su configuración típica, el desarrollo de
FreeBSD como un servidor SLIP, funciona de la siguiente manera:
un Usuario SLIP, se conecta del Servidor SLIP FreeBSD e ingresa al
sistema con una identificación especial, que utiliza
/usr/sbin/sliplogin
como shell del usuario. El
programa sliplogin
busca en el fichero
/etc/sliphome/slip.hosts
la línea que
haya sido creada especialmente para el usuario, conecta la
línea serial a una interfaz SLIP disponible y posteriormente
ejecuta el script /etc/sliphome/slip.login
, para
configurar la interfaz SLIP.
Por ejemplo si la clave de acceso de un usuario SLIP
fuese Shelmerg
, la entrada del usuario
Shelmerg
, en el fichero
/etc/master.passwd
se vera algo similar
a lo siguiente:
Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin
Cuando Shelmerg
accese al sistema, el
comando sliplogin
, buscará en el
fichero /etc/sliphome/slip.hosts
, una
línea, en la cual el ID (identificación) del
usuario coincida, por ejemplo, puede ser que en el fichero
/etc/sliphome/slip.hosts
exista una
línea simliar a la siguiente:
Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
El comando sliplogin
encontrará
la línea que coincida, enganchará la línea
serial a cualquier interfaz SLIP disponible y posteriormente
ejecutará /etc/sliphome/slip.login
de manera similar a:
/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
Si todo marcha bien, /etc/sliphome/slip.login
creará una configuración, por medio de
ifconfig
, para la interfaz SLIP, a la cual
sliplogin
se ha adjuntado (la interfaz slip 0,
que era el primer parámetro dado en la lista de
slip.login
), para establecer la
dirección local IP (dc-slip
), la
interfaz de la direción IP Remota (sl-helmer
),
la submascara de red para la interfaz SLIP (0xfffffc00
) y cualquier otra opción
adicional (autocomp
). Si algo no va del todo
bien, normalmente sliplogin
guarda bastante
información para depurar, por medio del
demonio
(daemon
) syslog, que
usualmente guarda dicha infomración en
/var/log/messages
(vea la página de
ayuda syslogd(8) así como syslog.conf(5) y quizas
el fichero /etc/syslog.conf
, para ver que
es lo que syslogd
esta almacenando y donde es
que lo almacena.
OK, basta de ejemplos — entremos de lleno en la configuración del sistema.
El kernel de FreeBSD, por omisión, cuenta con 2
dispositivos SLIP definidos (sl0
y
sl1
); usted puede utilizar
netstat -i
, para verificar si estos
dispositivos se encuentran en el kernel de su sistema.
Un ejemplo del resultado de netstat -i
:
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133 ed0 1500 138.247.224 ivory 291311 0 174209 0 133 lo0 65535 <Link> 79 0 79 0 0 lo0 65535 loop localhost 79 0 79 0 0 sl0* 296 <Link> 0 0 0 0 0 sl1* 296 <Link> 0 0 0 0 0
En este ejemplo vemos que existen dos
dispositivos SLIP en el kernel, que son;
sl0
y
sl1
(el asterisco que aparece después
de sl0
y sl1
indica
que los dispositivos no estan “trabajando”.)
Aun cuando el kernel cuente con los dispositivos, por
omisión el kernel de FreeBSD, no viene configurado para
enviar paquetes (de hecho su sistema FreeBSD no trabajara como
ruteador, por default) esto en base a los requerimientos para
Internet, establecidos por los RFCs ( vea 1009 [Requerimentos para
Pasarelas (Gateway) en Internet], 1122 [Requerimientos para hosts
de Internet — Capas de comunicación] y quizás
1127 [RFC sobre Una Perspectiva de los Requerimientos de Hosts]).
Si usted desea que su servidor SLIP sobre FreeBSD, opere como un
ruteador, será necesario que edite el fichero
/etc/rc.conf
y cambie la opción
gateway_enable
, a quedar YES
,
esto habilitará esta función.
Será necesario que reinicie su sistema, para efecto de que estos cambios surtan efecto.
Al verificar su fichero de configuración del kernel
(/sys/i386/conf/GENERIC
), podrá
notar que cerca del final, hay una línea como la siguiente:
pseudo-device sl 2
Esta línea es la que define el numero de dispositivos SLIP disponibles en el kernel; el numero al final de la línea es el numero máximo de conecciones SLIP que puede manejar el servidor simultaneamente.
Para ayuda con relación a la configuración y compilación del kernel en su sistema FreeBSD, por favor refierase Capítulo 8, Configuración del kernel de FreeBSD al apartado correspondiente.
Como se menciono anteriormente, existen tres ficheros en el
directorio /etc/sliphome
, que son parte de
la configuración de /usr/sbin/sliplogin
(vea la pagina de ayuda sliplogin(8) de para ver la ayuda
del comando sliplogin
):
slip.hosts
, que es el fichero que define a
los usuarios SLIP, así como sus direcciones IP
correspondientes; slip.login
, que
normalmente es utilizado para configurar la interfaz de SLIP; y
(opcionalmente) slip.logout
, que hace lo opuesto a
slip.login
, cuando la conexión serial
ha terminado.
El fichero /etc/sliphome/slip.hosts
contiene líneas, que al menos cuentan con cuatro partes,
separadas por espacios en blanco:
Identificador (nombre) del usuario SLIP
Dirección Local (local para el servidor SLIP) de la liga a SLIP
Dirección Remota de la liga a SLIP
Mascara de red
Las direcciones local y remota, pueden ser nombres del host
(la resolución de los mismos, es llevada a cabo, por medio de
/etc/hosts
o por el servidor de nombres de
dominio (DNS), dependiendo de lo que haya especificado en el
fichero /etc/host.conf
), y la mascara de red
puede ser un nombre, que puede ser resuelto revisando
/etc/networks
. En un sistema de ejemplo, el
fichero /etc/sliphome/slip.hosts
, puede verse
así:
# # login local-addr remote-addr mask opt1 opt2 # (normal,compress,noicmp) # Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp
Al final de la línea puede ver que existen una o más opciones.
normal
— sin compresión
de los encabezados.
compress
— compresión de
los encabezados.
autocomp
— compresión
automática, si el host remoto lo permite.
noicmp
— deshabilitar los
paquetes ICMP (de tal forma que cualquier paquete enviado
por “ping” seráa rechazado, en lugar de
ocupar de su ancho de banda).
La elección sobre la dirección local y remota depende si usted va a utilizar una conexión TCP/IP dedicada o bien si va a utilizar una conexión por medio de “proxy ARP” en su servidor SLIP (no es correcto “proxy ARP”, pero es la terminología utilizada en esta sección para describirlo). Si usted no esta seguro que metodo manejar o como asignar la dirección IP, por favor refierase a alguno de los libros sobre TCP/IP, que se mencionan en los Prerequisitos de SLIP (Sección 25.6.2.1, “Prerequisitos”) y/o consulte al administrador de IP de su red.
Si usted piensa subnetear para los diferentes clientes SLIP, será necesario que la dirección de la subred (subnet), salga de la dirección IP que tenga asignada su red, y el numero de cada cliente, del numero que asigne a su subred. Posteriormente puede que sea necesario, o bien configurar una ruta estática a la subred SLIP, por medio de su servidor SLIP en su ruteador más cercano por IP.
De otra forma, si usted piensa utilizar un metodo
“proxy ARP”, será necesario que a sus
clientes SLIP, se les asigne una dirección IP, que se
encuentre dentro del rango que este utilizando para su
subred Ethernet, y tambié será necesario que
haga algunos ajustes en los ficheros script
/etc/sliphome/slip.login
y en
/etc/sliphome/slip.logout
, para que
usen arp(8), para que maneje la tabla ARP del servidor
SLIP y llamados del proxy-ARP.
El típico fichero /etc/sliphome/slip.login
se ve de la siguiente manera:
#!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6
This slip.login
file merely runs
ifconfig
for the appropriate SLIP interface
with the local and remote addresses and network mask of the
SLIP interface.
If you have decided to use the “proxy ARP”
method (instead of using a separate subnet for your SLIP
clients), your /etc/sliphome/slip.login
file will need to look something like this:
#!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # Answer ARP requests for the SLIP client with our Ethernet addr /usr/sbin/arp -s $5 00:11:22:33:44:55 pub
La línea adicional, arp -s $5 00:11:22:33:44:55
pub
del script slip.login
, crea una
entrada ARP en la tabla del servidor SLIP. Esta entrada le indica al
servidor SLIP que debe responder con la dirección MAC de su
dispositivo Ethernet, cuando cualquier otro nodo IP en la red,
solicite información a la IP del cliente SLIP.
Al tomar en cuenta el ejemplo anterior, es importante que
sustituya la dirección Ethernet MAC (00:11:22:33:44:55
), con la dirección
que corresponde a su tarjeta de red, o definitivamente su
“proxy ARP” no va a funcionar!. Para efecto de
conocer cual es la dirección MAC del dispositivo
Ethernet (tarjeta de red), de su servidor SLIP, puede ejecutar
el comando netstat -i
, el cual tendrá
como resultado algo similar a lo siguiente:
ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116
Esto indica que la dirección MAC de su
dispositivo Ethernet, en este sistema es
00:02:c1:28:5f:4a
— los puntos que aparecen en la salida del comando
netstat -i
deben cambiarse por dos puntos,
así mismo deberá de anteponerse un cero, a cada
dígito hexadecimal que aparezca sólo (no en pares),
de tal forma que convirtamos la dirección en lo que
arp(8) requiere para trabajar; vea la página de ayuda
arp(8), para ver información completa sobre su
uso.
Recuerde que cuando cree los ficheros
/etc/sliphome/slip.login
y
/etc/sliphome/slip.logout
, deben
contar con permisos de ejecución
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout
), de otra forma
estos scripts no podrán llevar a cabo su función.
El fichero /etc/sliphome/slip.logout
no es indispensable (a menos que vaya a utilizar
“proxy ARP”), pero si aun así decide crearlo,
el siguiente es un ejemplo básico del script
slip.logout
:
#!/bin/sh - # # slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down
Si usted esta utilizando “proxy ARP”, es
recomendable que le indique a
/etc/sliphome/slip.logout
, que desea
eliminar la entrada ARP, para el cliente SLIP:
#!/bin/sh - # # @(#)slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down # Dejar de solicitar respuesta ARP al cliente SLIP /usr/sbin/arp -d $5
El comando arp -d $5
, elimina la
entrada ARP, que slip.login
de
“proxy ARP” añadió al cliente SLIP
al ingresar al sistema.
Para esta más seguros: asegurese de que el fichero
/etc/sliphome/slip.logout
cuenta con los
permisos adecuados para su ejecución, una vez que lo ha
creado (ej. chmod 755 /etc/sliphome/slip.logout
)
.
Si usted no esta utilizando el metodo “proxy ARP”,
para efecto de rutear los paquetes entre sus clientes SLIP y el
resto de la red (y quizás Internet), deberá de
hacer una de las siguientes dos acciones, o bien añadir
direcciones estáticas, a su(s) ruteador(es) más
cercanos, para que se reenvien los paquetes de la subred de sus
clientes SLIP, por medio de su servidor SLIP, o bien tendrá
que instalar y configurar gated
en su servidor
SLIP (que corre FreeBSD!), de tal forma que le indique a su(s)
ruteador(es), por medio del protocolo correcto, a cerca de su
subred SLIP.
Añadir direcciones estáticas de enrutamiento puede ser un problema (o imposible si usted no cuenta con la autoridad para hacerlo...). Si usted cuenta con una red de ruteo-múltiple en su organización, algunos ruteadores, tales como los fabricados por Cisco y Proteon, puede ser que no sea suficiente con el hecho de configurar las rutas estáticas de su subred SLIP, sino que sea necesario indicar que rutas utilizar para informar a cerca de otras rutas, así que algo de experiencia así como determinación para la resolución de problemas serán necesarias para poner la ruta basada-en- ruteo-estático a trabajar.
Una alternativa para los dolores de cabeza que pueden dar
las redes con ruteo estático, es intalar
gated
en su servidor SLIP bajo FreeBSD
y configurarlo, para que utilice los protocolos de ruteo apropiados
(RIP/OSPF/BGP/EGP) para informar a otros ruteadores, a cerca de su
subred SLIP. Una vez que lo ha compilado e instalado, deberá
crear el fichero /etc/gated.conf
, que
configurará a gated
; aqui hay un ejemplo,
similar al que el autor utilizó en un servidor SLIP FreeBSD:
gated
es un software propietario y su
código fuente no estará disponible al público
más (más información en el sitio gated). Esta sección
solo existe para asegurarse de la compatibilidad con aquellos que
usan la versió antigua.
#
# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
#
#
# tracing options
#
traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
rip yes {
interface sl noripout noripin ;
interface ed ripin ripout version 1 ;
traceoptions route ;
} ;
#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
traceoptions remnants request routes info interface ;
} ;
#
# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#
export proto rip interface ed {
proto direct {
xxx.xxx.yy
mask 255.255.252.0 metric 1; # SLIP connections
} ;
} ;
#
# Accept routes from RIP via ed Ethernet interfaces
import proto rip interface ed {
all ;
} ;
En el ejemplo anterior, el fichero de configuración
gated.conf
transmite información sobre
la subred SLIP xxx.xxx.yy
, por medio
de RIP al dispositivo Ethernet; si usted esta utilizando un
dispositivo de red, diferente de ed
, será
necesario que modifique el parámetro ed
por el correspondiente. En este ejemplo, el fichero también
realiza una busqueda por el fichero
/var/tmp/gated.output
, que es un fichero que nos
sirve para depurar cualquier error que se presente en
la actividad de gated
; usted puede desactivar la
opción de depuración (debug), si es que
gated
esta funcionando correctamente. Será
necesario que modifique xxx.xxx.yy.
, a quedar
con la dirección correcta de su subred SLIP (asegurese de
modificar también la máscara de red, en la cláusula
proto direct
también).
Una vez que ha instalado y configurado gated
en
su sistema, necesitará indicarle a FreeBSD que al iniciar el
sistema, ejecute el script para gated
, en lugar de
ejecutar routed
. La forma más fácil de
hacer esto, es editar las variables de route
y
router_flags
, en el fichero
/etc/rc.conf
. Por favor vea la página de
ayuda de gated
, para ver información sobre
los parámetros de la línea—de—comandos.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.