Capítulo 7. Redes

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

7.1. Sinopsis

Este capítulo profundiza en la configuración y el rendimiento de redes, y muestra las sólidas capacidades de red del sistema operativo FreeBSD. Tanto al trabajar con redes cableadas como inalámbricas, este capítulo ofrece una guía completa para configurar y optimizar la conectividad de red en FreeBSD.

Antes de leer este capítulo, debería:

  • Entender los conceptos básicos de redes, como protocolos, interfaces de red y direccionamiento.

Después de leer este capítulo:

  • Sabrá cómo configurar redes cableadas en FreeBSD, incluida la configuración de las interfaces de red, el direccionamiento y las opciones de personalización.

  • Sabrá cómo configurar redes inalámbricas en FreeBSD, incluida la configuración de las interfaces de red inalámbricas, los protocolos de seguridad y las técnicas de resolución de problemas.

  • Conocerá las capacidades de red de FreeBSD y su reputación por su excelente rendimiento de red.

  • Sabrá qué servicios y protocolos de red son compatibles con FreeBSD, con instrucciones de configuración para DNS, DHCP y más.

Encontrará más información sobre cómo realizar configuraciones de red avanzadas en Redes avanzadas.

7.2. Configuración de la red

Configurar una conexión cableada o inalámbrica es una tarea habitual para cualquier usuario de FreeBSD. Esta sección muestra cómo identificar los adaptadores de red cableados e inalámbricos y cómo configurarlos.

Antes de empezar la configuración, es necesario conocer los siguientes datos de red:

  • Si la red dispone de DHCP

  • Si la red no dispone de DHCP, la IP estática que se utilizará

  • La máscara de red

  • La dirección IP de la puerta de enlace predeterminada

Es posible que la conexión de red se haya configurado durante la instalación mediante bsdinstall(8).

7.2.1. Identificar adaptadores de red

FreeBSD es compatible con una gran variedad de adaptadores de red, tanto para redes cableadas como inalámbricas. Consulte la lista de compatibilidad de hardware de la release de FreeBSD utilizada para comprobar si el adaptador de red es compatible.

Para obtener los adaptadores de red utilizados por el sistema, ejecute la siguiente orden:

% pciconf -lv | grep -A1 -B3 network

La salida debería ser similar a la siguiente:

em0@pci0:0:25:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x10f5 subvendor=0x17aa subdevice=0x20ee
    vendor     = 'Intel Corporation' (1)
    device     = '82567LM Gigabit Network Connection' (2)
    class      = network
    subclass   = ethernet
--
iwm0@pci0:3:0:0:        class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4237 subvendor=0x8086 subdevice=0x1211
    vendor     = 'Intel Corporation' (1)
    device     = 'PRO/Wireless 5100 AGN [Shiloh] Network Connection' (2)
    class      = network

El texto situado antes del símbolo «@» es el nombre del controlador que gestiona el dispositivo. En este caso son em(4) y iwn(4).

1Muestra el nombre del fabricante
2Muestra el nombre del dispositivo

Solo es necesario cargar el módulo de la tarjeta de interfaz de red si FreeBSD no la ha detectado correctamente.

Por ejemplo, para cargar el módulo alc(4), ejecute la siguiente orden:

# kldload if_alc

Como alternativa, para cargar el controlador como módulo durante el arranque, añada la siguiente línea a /boot/loader.conf:

if_alc_load="YES"

7.3. Redes cableadas

Una vez cargado el controlador adecuado, es necesario configurar el adaptador de red. FreeBSD usa el nombre del controlador seguido de un número de unidad para nombrar el adaptador de interfaz de red. El número de unidad representa el orden en el que se detecta el adaptador durante el arranque o posteriormente.

Por ejemplo, em0 es la primera tarjeta de interfaz de red (NIC) del sistema que usa el controlador em(4).

Para mostrar la configuración de la interfaz de red, introduzca la siguiente orden:

% ifconfig

La salida debería ser similar a la siguiente:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

En este ejemplo se han mostrado los siguientes dispositivos:

  • em0: La interfaz Ethernet.

  • lo0: La interfaz de bucle es un mecanismo de bucle de software que puede utilizarse para el análisis de rendimiento, pruebas de software o comunicación local. Encontrará más información en lo(4).

El ejemplo muestra que em0 está activa y en funcionamiento.

Los indicadores principales son:

  1. UP significa que la interfaz está configurada y preparada.

  2. La interfaz tiene una dirección de Internet IPv4 (inet), 192.168.1.19.

  3. La interfaz tiene una dirección de Internet IPv6 (inet6), fe80::21f:16ff:fe0f:275a%em0.

  4. Tiene una máscara de subred válida (netmask), donde 0xffffff00 equivale a 255.255.255.0.

  5. Tiene una dirección de difusión válida, 192.168.1.255.

  6. La dirección MAC de la interfaz (ether) es 00:1f:16:0f:27:5a.

  7. La selección de medio físico está en modo de selección automática (media: Ethernet autoselect (1000baseT <full-duplex>)).

  8. El estado del enlace (status) es active, lo que indica que se detecta la señal de portadora. Para em0, el estado status: no carrier es normal cuando no hay un cable Ethernet conectado a la interfaz.

Si la salida de ifconfig(8) hubiera mostrado algo similar a la siguiente, indicaría que la interfaz no se ha configurado:

em0: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        media: Ethernet autoselect
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

7.3.1. Configurar una dirección IPv4 estática

Esta sección proporciona una guía para configurar una dirección IPv4 estática en un sistema FreeBSD.

La configuración de la tarjeta de interfaz de red puede realizarse desde la línea de órdenes con ifconfig(8), pero no persistirá tras reiniciar a menos que también se añada a /etc/rc.conf.

Si la red se configuró durante la instalación mediante bsdinstall(8), es posible que ya existan algunas entradas para las tarjetas de interfaz de red (NIC). Compruebe de nuevo /etc/rc.conf antes de ejecutar sysrc(8).

La dirección IP se puede establecer ejecutando la siguiente orden:

# ifconfig em0 inet 192.168.1.150/24

Para que el cambio persista tras reiniciar, ejecute la siguiente orden:

# sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0"

Añada el router predeterminado ejecutando la siguiente orden:

# sysrc defaultrouter="192.168.1.1"

Añada los registros DNS a /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

A continuación, reinicie netif y routing ejecutando la siguiente orden:

# service netif restart && service routing restart

La conexión se puede comprobar mediante ping(8):

% ping -c2 www.FreeBSD.org

La salida debería ser similar a la siguiente:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.2. Configurar una dirección IPv4 dinámica

Si la red dispone de un servidor DHCP, es muy sencillo configurar la interfaz de red para usar DHCP. FreeBSD usa dhclient(8) como cliente DHCP. dhclient(8) proporcionará automáticamente la IP, la máscara de red y el router predeterminado.

Para que la interfaz funcione con DHCP, ejecute la siguiente orden:

# sysrc ifconfig_em0="DHCP"

dhclient(8) se puede usar manualmente ejecutando la siguiente orden:

# dhclient em0

La salida debería ser similar a la siguiente:

DHCPREQUEST on em0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
unknown dhcp option value 0x7d
bound to 192.168.1.19 -- renewal in 43200 seconds.

De este modo se puede comprobar que la asignación de direcciones mediante DHCP funciona correctamente.

El cliente dhclient(8) se puede iniciar en segundo plano. Esto puede ocasionar problemas a las aplicaciones que dependen de una red operativa, pero en muchos casos proporcionará un inicio más rápido.

Para ejecutar dhclient(8) en segundo plano, ejecute la siguiente orden:

# sysrc background_dhclient="YES"

A continuación, reinicie netif ejecutando la siguiente orden:

# service netif restart

La conexión se puede comprobar mediante ping(8):

% ping -c2 www.FreeBSD.org

La salida debería ser similar a la siguiente:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.3. IPv6

IPv6 es la nueva versión del conocido protocolo IP, también denominado IPv4.

IPv6 proporciona varias ventajas respecto a IPv4, además de muchas funcionalidades nuevas:

  • Su espacio de direcciones de 128 bits permite 340,282,366,920,938,463,463,374,607,431,768,211,456 direcciones. Esto resuelve la escasez de direcciones IPv4 y su eventual agotamiento.

  • Los routers solo almacenan direcciones de agregación de red en sus tablas de enrutamiento, lo que reduce el tamaño medio de una tabla de enrutamiento a 8192 entradas. Esto resuelve los problemas de escalabilidad asociados con IPv4, que requería intercambiar todos los bloques de direcciones IPv4 asignados entre los routers de Internet, haciendo que sus tablas de enrutamiento fueran demasiado grandes para permitir un enrutamiento eficiente.

  • Autoconfiguración de direcciones (RFC4862).

  • Direcciones multicast obligatorias.

  • IPsec integrado (seguridad IP).

  • Estructura de cabecera simplificada.

  • Compatibilidad con IP móvil.

  • Mecanismos de transición de IPv6 a IPv4.

FreeBSD incluye la implementación de referencia IPv6 del proyecto KAME e incorpora todo lo necesario para usar IPv6.

Esta sección se centra en configurar y poner en funcionamiento IPv6.

Hay tres tipos diferentes de direcciones IPv6:

Unicast

Un paquete enviado a una dirección unicast llega a la interfaz que pertenece a esa dirección.

Anycast

Estas direcciones no se distinguen sintácticamente de las direcciones unicast, pero se dirigen a un grupo de interfaces. El paquete destinado a una dirección anycast llegará a la interfaz más cercana.

Multicast

Estas direcciones identifican un grupo de interfaces. Un paquete destinado a una dirección multicast llegará a todas las interfaces que pertenecen al grupo multicast. La dirección de difusión IPv4, normalmente xxx.xxx.xxx.255, se expresa mediante direcciones multicast en IPv6.

Al leer una dirección IPv6, la forma canónica se representa como x:x:x:x:x:x:x:x, donde cada x representa un valor hexadecimal de 16 bits. Un ejemplo es FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.

Con frecuencia, una dirección tendrá secuencias largas compuestas por ceros. Se puede usar :: (dos puntos dobles) para reemplazar una secuencia por dirección. También se pueden omitir hasta tres 0 iniciales por valor hexadecimal. Por ejemplo, fe80::1 corresponde a la forma canónica fe80:0000:0000:0000:0000:0000:0000:0001.

Una tercera forma consiste en escribir los últimos 32 bits usando la conocida notación IPv4. Por ejemplo, 2002::10.0.0.1 corresponde a la representación canónica hexadecimal 2002:0000:0000:0000:0000:0000:0a00:0001, que a su vez equivale a 2002::a00:1.

Para ver la dirección IPv6 de un sistema FreeBSD, ejecute la siguiente orden:

# ifconfig

La salida debería ser similar a la siguiente:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet 192.168.1.150 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

En este ejemplo, la interfaz em0 usa fe80::21f:16ff:fe0f:275a%em0, una dirección local de enlace autoconfigurada que se generó automáticamente a partir de la dirección MAC.

Algunas direcciones IPv6 están reservadas. La siguiente tabla muestra una lista de direcciones reservadas:

Tabla 1. Ejemplo de direcciones IPv6 reservadas
Dirección IPv6DescripciónNotas

::/128

sin especificar

Equivalente a 0.0.0.0 en IPv4.

::1/128

dirección de bucle

Equivalente a 127.0.0.1 en IPv4.

::ffff:0.0.0.0/96

dirección IPv6 mapeada a IPv4

Los 32 bits inferiores son la dirección IPv4 para mantener la compatibilidad con hosts y routers IPv4.

fe80::/10

unicast local de enlace

Equivalente a 169.254.0.0/16 en IPv4.

fc00::/7

local única

Las direcciones locales únicas están destinadas a la comunicación local y solo se pueden enrutar dentro de un conjunto de sitios que cooperan.

ff00::/8

multicast

2000::/3

unicast global

Todas las direcciones unicast globales se asignan desde este grupo. Los tres primeros bits son 001.

2001:db8::/32, 3fff::/20

documentación

Prefijo de dirección IPv6 para utilizar en documentación.

Para obtener más información sobre la estructura de las direcciones IPv6, consulte RFC4291.

7.3.4. Configurar una dirección IPv6 estática

Para configurar un sistema FreeBSD como cliente IPv6 con una dirección IPv6 estática, es necesario establecer la dirección IPv6.

Ejecute las siguientes órdenes para cumplir los requisitos:

# sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

Para asignar un router predeterminado, especifique su dirección ejecutando la siguiente orden:

# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"

Para configurar una dirección anycast IPv6 adicional, especifique la dirección anycast como _aliasN, tal como se indica en rc.conf(5), seguida de la opción anycast:

# sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast"

Tenga en cuenta que las aplicaciones no pueden vincularse a direcciones anycast; en ese caso, es necesario usar una dirección de alias.

7.3.5. Configurar una dirección IPv6 dinámica

Para configurar dinámicamente la dirección IPv6 de la interfaz mediante SLAAC, ejecute las siguientes órdenes:

# sysrc ifconfig_em0_ipv6="inet6 accept_rtadv"
# sysrc rtsold_enable="YES"

Tenga en cuenta que, cuando está habilitado el reenvío de paquetes IPv6 (es decir, ipv6_gateway_enable=YES), el sistema no configurará una dirección SLAAC a menos que la variable net.inet6.ip6.rfc6204w3 de sysctl(8) esté establecida en 1.

7.3.6. Anuncio de router y configuración automática de hosts

Esta sección muestra cómo configurar rtadvd(8) en un router IPv6 para anunciar el prefijo de red IPv6 y la ruta predeterminada.

Para habilitar rtadvd(8), ejecute la siguiente orden:

# sysrc rtadvd_enable="YES"

Es importante especificar la interfaz en la que se realizará el anuncio de router IPv6. Por ejemplo, para indicar a rtadvd(8) que use em0:

# sysrc rtadvd_interfaces="em0"

A continuación, cree el fichero de configuración /etc/rtadvd.conf, como se muestra en este ejemplo:

em0:\
	:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:

Sustituya em0 por la interfaz que se vaya a usar y 2001:db8:1f11:246:: por el prefijo de la asignación.

Para una subred /64 dedicada, no es necesario cambiar nada más. De lo contrario, cambie prefixlen# al valor correcto.

7.3.7. Mapeo de direcciones IPv6 e IPv4

Cuando IPv6 está habilitado en un servidor, puede ser necesario habilitar la comunicación mediante direcciones IPv6 mapeadas a IPv4. Esta opción de compatibilidad permite representar direcciones IPv4 como direcciones IPv6. Permitir que las aplicaciones IPv6 se comuniquen con IPv4, y viceversa, puede constituir un problema de seguridad.

Esta opción puede no ser necesaria en la mayoría de los casos y está disponible solo por compatibilidad. Esta opción permitirá que las aplicaciones exclusivas de IPv6 funcionen con IPv4 en un entorno de pila dual. Resulta especialmente útil para aplicaciones de terceros que quizá no sean compatibles con un entorno exclusivo de IPv6.

Para habilitar esta funcionalidad, ejecute la siguiente orden:

# sysrc ipv6_ipv4mapping="YES"

7.4. Redes inalámbricas

La mayoría de las redes inalámbricas se basan en los estándares IEEE® 802.11.

FreeBSD es compatible con redes que operan mediante 802.11a, 802.11b, 802.11g y 802.11n.

La compatibilidad con 802.11ac en FreeBSD está actualmente en desarrollo.

Una red inalámbrica básica consta de varias estaciones que se comunican mediante radios que emiten en la banda de 2,4 GHz o de 5 GHz, aunque esto varía según la región y también está cambiando para permitir la comunicación en los rangos de 2,3 GHz y 4,9 GHz.

Hay tres pasos básicos para configurar una red inalámbrica:

  1. Escanear y seleccionar un punto de acceso

  2. Autenticar la estación

  3. Configurar una dirección IP o usar DHCP.

Las secciones siguientes describen cada paso.

7.4.1. Inicio rápido para conectarse a una red inalámbrica

Conectar FreeBSD a una red inalámbrica existente es una situación muy habitual.

Este procedimiento de inicio rápido muestra los pasos necesarios para conectarse a una red mediante autenticación básica. En la siguiente sección se ofrece un procedimiento más detallado.

El primer paso es obtener del administrador de la red el identificador del conjunto de servicios (SSID) y la clave precompartida (PSK) de la red inalámbrica.

El segundo paso es añadir una entrada para esta red a /etc/wpa_supplicant.conf.

Si el fichero no existe, créelo. Consulte wpa_supplicant.conf(5) para obtener detalles sobre el formato de las entradas de este fichero.

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
 ssid="myssid" (1)
 psk="mypsk" (2)
}
1Es el SSID de la red inalámbrica. Sustitúyalo por el nombre de la red inalámbrica.
2Es la PSK de la red inalámbrica. Sustitúyala por la contraseña de la red inalámbrica.

El tercer paso es añadir la entrada de interfaz de red para configurar la red durante el arranque. Obtenga la interfaz del dispositivo de red mediante el sysctl net.wlan.devices. En el listado siguiente, la salida de este sysctl muestra que la interfaz del dispositivo de red es "iwm0".

# sysctl net.wlan.devices

La salida debería ser similar a la siguiente:

net.wlan.devices: iwm0

En la siguiente línea de sysrc, sustituya "iwm0" por la salida de la orden sysctl si es necesario.

# sysrc wlans_iwm0="wlan0"
# sysrc ifconfig_wlan0="WPA DHCP"
  • El último paso es reiniciar el servicio netif ejecutando la siguiente orden:

# service netif restart

7.4.2. Configuración inalámbrica básica

Esta sección proporciona un ejemplo más detallado de cómo configurar una tarjeta de red inalámbrica. Para averiguar qué tarjetas de red inalámbricas hay en el sistema, consulte la sección Identificar adaptadores de red.

# ifconfig wlan0 create wlandev iwm0

Para que el cambio persista tras reiniciar, ejecute la siguiente orden:

# sysrc wlans_iwm0="wlan0"

Dado que la situación normativa es diferente en distintas partes del mundo, es necesario establecer correctamente los dominios aplicables a la ubicación para disponer de información correcta sobre los canales que se pueden usar.

Las definiciones de región disponibles se pueden encontrar en /etc/regdomain.xml. Para establecer los datos en tiempo de ejecución, use ifconfig:

# ifconfig wlan0 regdomain etsi2 country AT

Para conservar la configuración, añádala a /etc/rc.conf:

# sysrc create_args_wlan0="country AT regdomain etsi2"

7.4.3. Escanear redes inalámbricas

Las redes inalámbricas disponibles se pueden escanear mediante ifconfig(8).

Para listar las redes inalámbricas, ejecute la siguiente orden:

# ifconfig wlan0 up list scan

La salida debería ser similar a la siguiente:

SSID/MESH ID                      BSSID              CHAN RATE    S:N     INT CAPS
FreeBSD                           e8:d1:1b:1b:58:ae    1   54M  -47:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
NetBSD                            d4:b9:2f:35:fe:08    1   54M  -80:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
OpenBSD                           fc:40:09:c6:31:bd   36   54M  -94:-96   100 EPS  VHTPWRENV APCHANREP RSN WPS BSSLOAD HTCAP VHTCAP VHTOPMODE WME
GNU-Linux                         dc:f8:b9:a0:a8:e0   44   54M  -95:-96   100 EP   WPA RSN WPS HTCAP VHTCAP VHTOPMODE WME VHTPWRENV
Windows                           44:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
MacOS                             46:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
  1. SSID/MESH ID identifica el nombre de la red.

  2. BSSID identifica la dirección MAC del punto de acceso.

  3. El campo CAPS identifica el tipo de cada red y las capacidades de las estaciones que operan en ella (consulte la definición de list scan en ifconfig(8) para obtener más detalles).

7.4.4. Conexión y autenticación en una red inalámbrica

Una vez seleccionada una red inalámbrica de la lista de redes escaneadas, es necesario realizar la conexión y la autenticación. En la gran mayoría de las redes inalámbricas, la autenticación se realiza con una contraseña configurada en el router. Otros esquemas requieren completar intercambios criptográficos antes de que pueda fluir el tráfico de datos, ya sea mediante claves o secretos precompartidos, o mediante esquemas más complejos que implican servicios de backend como RADIUS.

7.4.4.1. Autenticarse con WPA2/WPA/Personal

El proceso de autenticación de una red inalámbrica se gestiona mediante wpa_supplicant(8).

La configuración de wpa_supplicant(8) se realiza en el fichero /etc/wpa_supplicant.conf. Para obtener más información, consulte wpa_supplicant.conf(5).

Una vez escaneadas las redes inalámbricas, seleccionada una red y obtenida la contraseña (PSK), añada esa información al fichero /etc/wpa_supplicant.conf, como se muestra en el siguiente ejemplo:

network={
        scan_ssid=1 (1)
        ssid="FreeBSD" (2)
        psk="12345678" (3)
}
1Técnica de escaneo de SSID. Solo es necesario usar esta opción si la red está oculta.
2Nombre de la red.
3Contraseña de la red inalámbrica.

El siguiente paso es configurar la conexión inalámbrica en el fichero /etc/rc.conf.

Para usar una dirección estática, será necesario ejecutar la siguiente orden:

# sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0"

Para usar una dirección dinámica, será necesario ejecutar la siguiente orden:

# sysrc ifconfig_wlan0="WPA DHCP"

A continuación, reinicie la red ejecutando la siguiente orden:

# service netif restart

Encontrará más información sobre cómo realizar métodos de autenticación más avanzados en Autenticación inalámbrica avanzada.

7.4.4.2. Autenticarse con redes abiertas

Es importante que el usuario tenga mucho cuidado al conectarse a redes abiertas sin ningún tipo de autenticación.

Una vez realizado el escaneo de redes inalámbricas y seleccionado el SSID de la red inalámbrica, ejecute la siguiente orden:

# ifconfig wlan0 ssid SSID

A continuación, ejecute dhclient(8) para obtener la dirección configurada:

# dhclient wlan0

7.4.5. Usar conexiones cableadas e inalámbricas a la vez

Una conexión cableada proporciona mejor rendimiento y fiabilidad, mientras que una conexión inalámbrica proporciona flexibilidad y movilidad. Los usuarios de portátiles normalmente desean alternar sin interrupciones entre los dos tipos de conexiones.

En FreeBSD, es posible combinar dos o más interfaces de red a modo de «failover». Este tipo de configuración usa la conexión preferida que esté disponible de un grupo de interfaces de red, y el sistema operativo cambia automáticamente cuando se modifica el estado del enlace.

La agregación de enlaces y el failover se tratan en Agregación de enlaces y failover, y encontrará un ejemplo de uso simultáneo de conexiones cableadas e inalámbricas en Modo failover entre interfaces Ethernet e inalámbricas.

7.5. Nombre de host

El nombre de host representa el nombre de dominio completamente cualificado (FQDN) del host en la red.

Si no se establece ningún nombre de host para el host, FreeBSD se llamará a sí mismo Amnesiac.

7.5.1. Comprobar el nombre de host actual

Se puede usar hostname(1) para comprobar el nombre de host actual:

$ hostname

La salida debería ser similar a la siguiente:

freebsdhostname.example.com

7.5.2. Cambiar el nombre de host

Para cambiar el nombre de host y conservarlo tras reiniciar, ejecute la siguiente orden:

# sysrc hostname="freebsdhostname.example.com"

7.6. DNS

DNS se puede entender como un listín telefónico en el que una IP se asocia a un nombre de host y viceversa.

Hay tres ficheros que gestionan cómo interactúa un sistema FreeBSD con DNS. Estos tres ficheros son hosts(5), resolv.conf(5) y nsswitch.conf(5)

A menos que se indique lo contrario en el fichero /etc/nsswitch.conf, FreeBSD consultará las direcciones del fichero /etc/hosts y, después, la información DNS del fichero /etc/resolv.conf.

El fichero nsswitch.conf(5) especifica cómo debe funcionar nsdispatch (el despachador del conmutador de servicios de nombres).

Por defecto, la sección hosts del fichero /etc/nsswitch.conf será la siguiente:

hosts: files dns

Por ejemplo, en caso de usar el servicio nscd(8). El orden de preferencia se puede cambiar dejando la línea de la siguiente manera:

hosts: files cache dns

7.6.1. Direcciones locales

El fichero /etc/hosts es una sencilla base de datos de texto que proporciona mapeos de nombres de host a direcciones IP. Se pueden añadir entradas para los equipos locales conectados mediante una LAN a este fichero a fin de proporcionar nombres sencillos, en lugar de configurar un servidor DNS. Además, /etc/hosts puede usarse para proporcionar un registro local de nombres de Internet y reducir la necesidad de consultar servidores DNS externos para los nombres a los que se accede con frecuencia.

Por ejemplo, si se dispone de una instancia local de www/gitlab-ce en un entorno local, se puede añadir al fichero /etc/hosts de la siguiente forma:

192.168.1.150 git.example.com git

7.6.2. Configurar el servidor de nombres

El modo en que un sistema FreeBSD accede al sistema de nombres de dominio de Internet (DNS) se controla mediante resolv.conf(5).

Las entradas más comunes de /etc/resolv.conf son:

nameserver

La dirección IP de un servidor de nombres que el resolvedor debe consultar. Los servidores se consultan en el orden indicado, con un máximo de tres.

search

Lista de búsqueda para consultar nombres de host. Normalmente se determina mediante el dominio del nombre de host local.

domain

El nombre de dominio local.

Un fichero /etc/resolv.conf típico tiene este aspecto:

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

Solo debe usarse una de las opciones search y domain.

Al usar DHCP, dhclient(8) normalmente vuelve a escribir /etc/resolv.conf con la información recibida del servidor DHCP.

Si la máquina en la que se realiza la configuración no es un servidor DNS, se puede usar local-unbound(8) para mejorar el rendimiento de las consultas DNS.

Para habilitarlo durante el arranque, ejecute la siguiente orden:

# sysrc local_unbound_enable="YES"

Para iniciar el servicio local-unbound(8), ejecute la siguiente orden:

# service local_unbound start

7.7. Resolución de problemas

Al resolver problemas de configuración de hardware y software, compruebe primero las cosas sencillas.

  • ¿Está conectado el cable de red?

  • ¿Están correctamente configurados los servicios de red?

  • ¿Está correctamente configurado el firewall?

  • ¿Es FreeBSD compatible con la NIC?

  • ¿Funciona correctamente el router?

Antes de enviar un informe de errores, consulte siempre las notas de hardware en la página de releases de FreeBSD, actualice FreeBSD a la última versión STABLE, consulte los archivos de las listas de correo y busque en Internet.

7.7.1. Resolución de problemas en redes cableadas

Si la tarjeta funciona pero el rendimiento es deficiente, lea tuning(7). Compruebe también la configuración de red, ya que unos ajustes de red incorrectos pueden provocar conexiones lentas.

Los mensajes No route to host aparecen si el sistema no puede enrutar un paquete al host de destino. Esto puede suceder si no se ha especificado ninguna ruta predeterminada o si hay un cable desconectado. Compruebe la salida de netstat -rn y asegúrese de que existe una ruta válida al host. Si no la hay, lea Puertas de enlace y rutas.

Los mensajes de error ping: sendto: Permission denied suelen deberse a un firewall mal configurado. Si hay un firewall habilitado en FreeBSD pero no se ha definido ninguna regla, la política por defecto es denegar todo el tráfico, incluso ping(8). Consulte Firewalls para obtener más información.

7.7.2. Resolución de problemas en redes inalámbricas

Esta sección describe una serie de pasos para ayudar a resolver problemas habituales de redes inalámbricas.

  • Si el punto de acceso no aparece al escanear, compruebe que la configuración no haya limitado el dispositivo inalámbrico a un conjunto limitado de canales.

  • Si el dispositivo no puede asociarse con un punto de acceso, compruebe que la configuración coincide con los ajustes del punto de acceso. Esto incluye el esquema de autenticación y cualquier protocolo de seguridad. Simplifique la configuración tanto como sea posible. Si usa un protocolo de seguridad como WPA2 o WPA, configure el punto de acceso con autenticación abierta y sin seguridad para comprobar si pasa el tráfico.

  • Una vez que el sistema pueda asociarse con el punto de acceso, diagnostique la configuración de red usando herramientas como ping(8).

  • Hay muchas herramientas de depuración de bajo nivel. Los mensajes de depuración se pueden habilitar en la capa de compatibilidad del protocolo 802.11 mediante wlandebug(8).