Manual:AMD64/Redes/Modular
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.
Todas las configuraciones que aquí se comentan, son almacenadas en /etc/conf.d/net a menos que se especifique lo contrario.
# 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.
# 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.
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
# 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
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 instalamos 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.
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_net_ppp0_need="net.eth0"
También puede configurar su password en /etc/ppp/pap-secrets.
# Ojo: el * es importante "username" * "password"
Si utiliza PPPoE con un modem USB necesitará instalar br2684ctl. Por favor, lea /var/db/repos/gentoo/net-dialup/speedtouch-usb/files/README para conseguir la información de cómo configurarlo adecuadamente.
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.
# 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.
config_eth0="null" config_eth1="null" config_eth2="null"
A continuación defina el bonding entre las interfaces:
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.
# 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_net_br0_need="net.eth0 net.eth1"
Para usar algunas configuraciones de puente, tal vez tenga que consultar la documentación de Configuración por medio de variables.
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.
# 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.
# Para túneles GRE iptunnel_vpn0="mode gre remote 188.8.131.52 key 0xffffffff ttl 255" # Para túneles IPIP iptunnel_vpn0="mode ipip remote 184.108.40.206 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:
vlans_eth0="1 2"
A continuación, configure el interfaz 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:
vlan1_name="vlan1" vlan1_ingress="2:6 3:5" eth0_vlan1_egress="1:2"
Para usar algunas configuraciones de VLAN, tal vez haga falta consultar la documentación de Configuración por medio de variables.