Manual de Gentoo: X86/Redes/Modular

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:X86/Networking/Modular and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎
X86 Manual
Instalación
Acerca de la instalación
Elegir los medios
Configurar la red
Preparar los discos
Instalar el stage3
Instalar el sistema base
Configurar el núcleo
Configurar el sistema
Instalar las herramientas
Configurar el cargador de arranque
Terminar
Trabajar con Gentoo
Introducción a Portage
Ajustes USE
Características de Portage
Sistema de guiones de inicio
Variables de entorno
Trabajar con Portage
Ficheros y directorios
Variables
Mezclar ramas de software
Herramientas adicionales
Repositorios personalizados de paquetes
Características avanzadas
Configuración de la red
Comenzar
Configuración avanzada
Configuración de red modular
Conexión inalámbrica
Añadir funcionalidad
Gestión dinámica


Módulos de Red

Los guiones netifrc ofrecen ahora soporte para guiones modulares de red, lo cual significa que se puede añadir fácilmente soporte para nuevos tipos de interfaces y módulos de configuración mientras se mantiene la compatibilidad con los actuales.

Los módulos se cargan por defecto si el paquete que los requiere está instalado. Si especifica un modulo aquí que no tiene su paquete instalado, entonces obtendrá un error acerca del paquete que necesita instalar. Lo ideal sería que solamente use la configuración con módulos si tiene dos o más paquetes que proporcionen el mismo servicio y necesita marcar su preferencia de uno sobre los otros.

Nota
Todas las configuraciones que aquí se comentan, son almacenadas en /etc/conf.d/net a menos que se especifique lo contrario.
ARCHIVO /etc/conf.d/netDefiniciones de módulos
# Preferir ifconfig sobre iproute2
modules="ifconfig"
  
# También se puede especificar otros módulos para una interfaz
# En este caso preferimos a udhcpc sobre dhcpcd
modules_eth0="pump"
  
# También podemos especificar módulos que no queremos utilizar -
# por ejemplo, puede querer utilizar un suplicante o linux-wlang-ng
# para controlar la configuración inalámbrica, pero querer seguir
# configurando la red por ESSID asociado.
modules="!iwconfig"

Manejadores de interfaces

Proporcionamos dos manejadores de interfaces: ifconfig e iproute2. Hará falta uno de estos para cualquier tipo de configuración de red.

Ambos se instalan por defecto como parte del perfil del sistema. El paquete iproute2 es el más potente y flexible.

root #emerge --ask sys-apps/iproute2
ARCHIVO /etc/conf.d/netPreferir ifconfig aunque iproute2 esté instalado
# Para preferir ifconfig sobre iproute2 si ambos están instalados y debido a que openrc
# utilizar iproute2, debe hacer:
modules="ifconfig"

Ya que ifconfig e iproute2 hacen cosas muy parecidas, nos permitimos usar la misma configuración básica para ambos. Los ejemplos a continuación funcionarán sin importar qué módulo tenga instalado.

ARCHIVO /etc/conf.d/netEjemplos de diferentes posibilidades de configuración
config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"
  
# También podemos especificar la dirección de difusión
config_eth0="192.168.0.2/24 brd 192.168.0.255"
config_eth0="192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"

DHCP

El DHCP es un medio para obtener información de red (dirección IP, servidores DNS, puerta de enlace, etc) de un servidor DHCP. Si existe un servidor DHCP en su red, apenas tendrá que decirle a cada cliente que utilice DHCP y el servidor se encargará de configurar el resto. Por supuesto, tendrá que configurar otras cosas la red inalámbrica, el ppp, etc. u otros si hacen falta antes de poder utilizar DHCP.

DHCP puede ser proporcionado por: dhclient, dhcpcd o pump. Cada módulo DHCP tiene sus propios pros y contras - aquí tiene un pequeño resumen:

Módulo DHCP Paquete Pros Contras
dhclient net-misc/dhcp Creado por la ISC, la misma gente que hacen el software dns BIND. Muy configurable. Configuración excesivamente complicada, software bastante hinchado, no se puede obtener servidores NTP desde DHCP, no envía el nombre de host por defecto.
dhcpcd net-misc/dhcpcd Durante largo tiempo ha sido la opción por defecto de Gentoo, no depende de herramientas externas, activamente desarrollada por Gentoo. Puede ser un poco lento a veces, no se convierte en demonio cuando el arrendamiento de la dirección es infinito.
pump net-misc/pump Ligero, no depende de herramientas externas. Ya no es mantenido por los desarrolladores, no es fiable especialmente a través de modems, no se puede obtener servidores de NIS desde DHCP.

Si tiene más de un cliente DHCP instalado, hará falta especificar cuál utilizar - sino, utilizaremos dhcpcd por defecto, si está disponible.

Para enviar opciones específicas al módulo dhcp, utilizamos module_eth0="..." (cambiar "modulo" por el nombre del módulo dhcp que se vaya a utilizar - por ejemplo: dhcpcd_eth0).

Tratamos de hacer que el servicio DHCP sea relativamente agnóstico, de manera que soportamos las siguientes órdenes usando la variable dhcp_eth0. Por defecto no se configuran ninguno de ellos:

  • release: Libera la dirección IP para ser reutilizada
  • nodns: No sobreescribir el /etc/resolv.conf
  • nontp: No sobreescribir el /etc/ntp.conf
  • nonis: No sobreescribir el /etc/yp.conf
ARCHIVO /etc/conf.d/netEjemplo de configuración DHCP
# Solamente necesita hacerlo si tiene más de un módulo
instalado
modules="dhcpcd"
  
config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Espera agotada (timeout) después de 10
dhcp_eth0="release nodns nontp nonis" # Solamente obtenga la dirección IP
Nota
dhcpcd y pump envían el nombre de máquina al servidor DHCP por defecto así que no necesita especificarlo más.

ADSL con PPPoE/PPPoA

Primero necesitamos instalar el software ADSL.

root #emerge --ask net-dialup/ppp

Segundo, cree el guión de red PPP y el guión de red para la interfaz ethernet que se utilizará con PPP:

root #ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
root #ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Asegúrese de configurar rc_depend_strict a YES en /etc/rc.conf.

Ahora necesitamos configurar /etc/conf.d/net.

ARCHIVO /etc/conf.d/netUna configuración básica PPPoE
config_eth0=null (Especifique su intefaz ethernet)
config_ppp0="ppp"
link_ppp0="eth0" (Especifique su intefaz ethernet)
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
pppd_ppp0="
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"
  
rc_need_ppp0="net.eth0"

También puede configurar su password en /etc/ppp/pap-secrets.

ARCHIVO /etc/ppp/pap-secretsEjemplo de pap-secrets
# Ojo: el * es importante
"username"  *  "password"

Si utiliza PPPoE con un modem USB necesitará instalar br2684ctl. Por favor, lea /usr/portage/net-dialup/speedtouch-usb/files/README para conseguir la información de cómo configurarlo adecuadamente.

Importante
Por favor, lea con detenimiento la sección sobre ADSL y PPP en /usr/share/doc/netifrc-*/net.example.bz2. Contiene muchas explicaciones mucho más detalladas de las configuraciones que su instalación PPP podría necesitar.

APIPA Direccionamiento Privado Automático (Automatic Private IP Addressing)

APIPA intenta encontrar una dirección libre en el rango 169.254.0.0-169.254.255.255 haciendo arping a direcciones aleatorias en ese rango para el interfaz. Si no se obtiene respuesta, se asigna esa dirección al interfaz.

Esto es útil solamente en redes donde no hay servidor DHCP y no hay conexión directa a Internet y que todos los demás computadores también usen APIPA.

Para obtener soporte de APIPA, hacer emerge de net-misc/iputils con el ajuste USE arping o net-analyzer/arping.

ARCHIVO /etc/conf.d/netConfiguración APIPA
# Intentar DHCP primero - y si falla, entonces usar APIPA
config_eth0="dhcp"
fallback_eth0="apipa"
  
# Usar únicamente APIPA
config_eth0="apipa"

Bonding

El "Bonding" se utiliza para incrementar el ancho de banda de la red o para mejorar la capacidad de recuperación ante fallos del hardware. Si tiene dos interfaces de red en la misma red puede unirlas de modo que sus aplicaciones solo vean un interfaz pero en realidad están usando ambas.

Hay varias formas de configurar el bonding. Algunas de ellas como el modo 802.3ad LACP requieren un soporte y configuración adicionales en el concentrador de la red. Para saber más de las opciones específicas eche un vistazo a su copia de /usr/src/linux/Documentation/networking/bonding.txt.

En primer lugar, elimine la configuración de las interfaces que van a participar.

ARCHIVO /etc/conf.d/netEliminar la configuración de las interfaces
config_eth0="null"
config_eth1="null"
config_eth2="null"

A continuación defina el bonding entre las interfaces:

ARCHIVO /etc/conf.d/netDefinir el bonding
slaves_bond0="eth0 eth1 eth2"
config_bond0="192.168.100.4/24"
# Elija el modo y configuraciónes adicionales que correspondan a sus necesidades
mode_bond0="balance-alb"

Elimine los servicios net.eth* de los niveles de ejecución, cree un servicio net.bond0 y añádalo al nivel de ejecución adecuado.

Puentes (soporte para 802.1d)

Los puentes se usan para unir redes. Por ejemplo, puede tener un servidor conectando a internet vía modem ADSL y una tarjeta inalámbrica para que otros computadores se conecten al internet por medio del modem ADSL. Se puede crear un puente para unir ambos interfaces.

ARCHIVO /etc/conf.d/netConfigurar un puente
# Configure el puente - para más detalles vea "man brctl"
bridge_forward_delay_br0=0
bridge_hello_time_br0=200
bridge_stp_state_br0=1
  
# Para agregar puertos al puente br0
bridge_br0="eth0 eth1"
  
# Hará falta configurar los puertos a valores nulos para no iniciar dhcp
config_eth0="null"
config_eth1="null"
  
# Finalmente, déle una dirección al puente - para esto puede usar DHCP también
config_br0="192.168.0.1/24"
  
# Hacer depender de eth0 y eth1 ya que pueden requerir configuración adicional
rc_need_br0="net.eth0 net.eth1"
Importante
Para usar algunas configuraciones de puente, tal vez tenga que consultar la documentación de Configuración por medio de variables.
Importante
Cuando se utilizan puentes utilizando IPv6, SLAAC necesita que STP esté a 1, tal y como se muestra en el ejemplo de arriba.

Dirección MAC

Si lo requiere, también puede cambiar la dirección MAC de los interfaces por medio del archivo de configuración de red.

ARCHIVO /etc/conf.d/netEjemplo de cambio de una dirección MAC
# Establecer una dirección MAC de un interfaz
mac_eth0="00:11:22:33:44:55"
  
# Para cambiar aleatoriamente solo los últimos 3 bytes
mac_eth0="random-ending"
  
# Para cambiar aleatoriamente entre tipos de conexión
# físicamente iguales (por ejemplo: fibra óptica, cobre, inalámbrica),
# para todos los proveedores
mac_eth0="random-samekind"
  
# Para cambiar aleatoriamente entre cualquier tipo físico de
# conexión (por ejemplo fibra óptica, cobre, inalámbrica),
# para todos los proveedores
mac_eth0="random-anykind"
  
# Generación completamente aleatoria -
# ADVERTENCIA: algunas direcciones MAC generadas de esta manera
# tal vez NO se comporten de la forma esperada
mac_eth0="random-full"

Haciendo túneles

No se requiere hacer emerge de paquete alguno para túneles, ya que el manejador del interfaz se encarga de esto.

ARCHIVO /etc/conf.d/netConfiguración de túneles
# Para túneles GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
  
# Para túneles IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
  
# Para configurar el interfaz
config_vpn0="192.168.0.2 peer 192.168.1.1"

VLAN (soporte para 802.1q)

Para dar soporte a VLAN, asegúrese de que se ha instalado sys-apps/iproute2 y también que se utiliza iproute2 como módulo de configuración en lugar de ifconfig.

Las redes virtuales son un grupo de dispositivos de red que se comportan como si estuviesen conectados a un solo segmento de red - aunque no lo estén. Miembros de una VLAN solo pueden ver miembros de la misma VLAN, aunque no compartan la misma red física.

Para configurar VLANs, en primer lugar especifique los números de VLAN en /etc/conf.d/net del siguiente modo:

ARCHIVO /etc/conf.d/netEspecificar los números VLAN
vlans_eth0="1 2"

A continuación, configure el interfaz para cada VLAN:

ARCHIVO /etc/conf.d/netConfigurar la interface para cada VLAN
config_eth0_1="172.16.3.1 netmask 255.255.254.0"
routes_eth0_1="default via 172.16.3.254"
  
config_eth0_2="172.16.2.1 netmask 255.255.254.0"
routes_eth0_2="default via 172.16.2.254"

Las configuraciones específicas se VLAN se realizan con vconfig del siguiente modo:

ARCHIVO /etc/conf.d/netConfigurar las VLANs
vlan1_name="vlan1"
vlan1_ingress="2:6 3:5"
eth0_vlan1_egress="1:2"
Importante
Para usar algunas configuraciones de VLAN, tal vez haga falta consultar la documentación de Configuración por medio de variables.