Gentoo Logo

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


3. Trabajo Modular con Redes

Contenido:

3.a. Módulos de Red

Ahora tenemos soporte para guiones de red, lo cual significa que podemos fácilmente añadir soporte para nuevos tipos de interfaces y módulos de configuración mientras mantenemos 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.

Listado de Código 1.1: Preferencias en los 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"

3.b. Manejadores de interfaces

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

Por defecto se instala ifconfig (el paquete net-tools es parte del perfil system). El paquete iproute2 es más poderoso y flexible, pero no se incluye por defecto.

Listado de Código 2.1: Para instalar iproute2

# emerge sys-apps/iproute2

# 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 cuál módulo tenga instalado.

Listado de Código 2.2: Ejemplos de ifconfig e iproute2

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"

3.c. 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="..."(cambie "module" por el nombre del módulo dhcp que vaya a utilizar - por ejemplo: dhcpcd_eth0).

Tratamos 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- suelta la dirección IP para ser re-utilizada
  • rnodns - no sobre-escriba el /etc/resolv.conf
  • rnontp - no sobre-escriba el /etc/ntp.conf
  • rnonis - no sobre-escriba el /etc/yp.conf

Listado de Código 3.1: Ejemplo de configuración DHCP en /etc/conf.d/net

# 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
segundos
dhcp_eth0="release nodns nontp nonis" # Solamente obtenga la
dirección IP

Nota: dhcpcd y dpump envían el nombre de máquina al servidor DHCP por defecto así que no necesita especificarlo más.

3.d. ADSL con PPPoE/PPPoA

Primero necesitamos instalar el software ADSL.

Listado de Código 4.1: Instalar el paquete rp-pppoe

# emerge 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:

Listado de Código 4.2: Crear los guiones para PPP y ethernet

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

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

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

Listado de Código 4.3: Una configuración básica PPPoE

config_eth0=null (Especifique su intefaz ethernet)
config_ppp0="ppp"
link_ppp0="eth0" (Especifique su interfaz 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.

Listado de Código 4.4: Ejemplo /etc/ppp/pap-secrets

# Ojo: el * es importante
"nombre-usuario" * "contraseña"

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.

3.e. 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 al Internet y que todos los demás computadores también usen APIPA.

Para soporte APIPA, haga emerge net-misc/iputils o net-analyzer/arping.

Listado de Código 5.1: Configuración de APIPA en /etc/conf.d/net

# Intentar DHCP primero - y si falla, entonces usar APIPA
config_eth0="dhcp"
fallback_eth0="apipa"

# Usar únicamente APIPA
config_eth0="apipa"

3.f. Bonding

Para unir enlaces con bonding/trunking haga emerge net-misc/ifenslave.

El "bonding" se utiliza para aumentar el ancho de banda hacia la red. Si tiene dos interfaces que van a usar la misma red, puede unirlos (bond, en inglés) para que las aplicaciones vean solo uno, aunque en realidad use ambos interfaces.

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

Listado de Código 6.1: Eliminar la configuración de las interfaces en /etc/conf.d/net

config_eth0="null"
config_eth1="null"
config_eth2="null"

An continuación defina el bonding entre las interfaces:

Listado de Código 6.2: Definir el bonding

slaves_bond0="eth0 eth1 eth2"
config_bond0="192.168.100.4/24"

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.

3.g. Puentes (soporte para 802.1d)

Para soportar puentes, haga emerge net-misc/bridge-utils.

Los puentes se usan para unir redes. Por ejemplo, puede tener un servidor conectando al 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.

Listado de Código 7.1: Configurar un puente en /etc/conf.d/net

# Configure el puente - para más detalles vea "man brctl"
brctl_br0="setfd 0
sethello 2
stp on"

# 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"

# Depend 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.

3.h. 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.

Listado de Código 8.1: Ejemplo 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"

3.i. Haciendo túneles

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

Listado de Código 9.1: Configuración de túneles en /etc/conf.d/net

# 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"

3.j. 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:

Listado de Código 10.1: Especificar los números VLAN

lans_eth0="1 2"

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

Listado de Código 10.2: Configurar 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:

Listado de Código 10.3: Configurar 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.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 12 de abril, 2014

Sumario: Gentoo permite un trabajo flexible con la red - aquí explicamos como escoger diferentes clientes DHCP, configurar la unión de interfaces, hacer puentes, redes virtuales (VLANs) y más.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desarrollador Gentoo x86

Tavis Ormandy
Desarrollador Gentoo Alpha

Jason Huebel
Desarrollador Gentoo AMD64

Guy Martin
Desarrollador Gentoo HPPA

Pieter Van den Abeele
Desarrollador Gentoo PPC

Joe Kallar
Desarrollador Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Contribuidor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.