traducción(es): English – Español – Français – Italiano – Français中中文
Reader prerrequisitos: para aprovechar al máximo este artículo, comprenda los siguientes conceptos antes de leer: herramientas básicas de línea de comandos unix, editores de texto, DNS, TCP/IP, DHCP, máscara de red, gateway
tabla de contenidos
la mayoría de la configuración de red se puede hacer a través de el archivo de configuración de interfaces en /etc/network/interfaces., Aquí, puede darle a su tarjeta de red una dirección IP (o usar dhcp), configurar la información de enrutamiento, configurar el enmascaramiento de IP, establecer rutas predeterminadas y mucho más.
recuerde agregar las interfaces que desee que aparezcan en el momento del arranque a la línea’ auto’.
vea interfaces man para más opciones.
iniciar y detener Interfaces
Las Interfaces configuradas con/etc/network / interfaces se pueden subir y bajar con los comandos ifup e ifdown.,
algunas guías desactualizadas ordenan reiniciar el servicio de red para aplicar cambios a/etc/network / interfaces, sin embargo esto fue obsoleto porque es posible que no se reinicien todas las interfaces. En su lugar, use ifup e ifdown para aplicar cambios a cada interfaz, por ejemplo, con una interfaz llamada enp7s0:
# ifdown enp7s0# ifup enp7s0
nombres de interfaz de red
consulte NetworkInterfaceNames. Desde Stretch, los nuevos sistemas por defecto ya no usan nombres de interfaz de estilo antiguo como eth0, eth1, wlan0, wlan1., El nuevo sistema utiliza nombres basados en la ubicación del hardware, como eno0, enp0s31f6, wlp1s7 (o en el caso de los dongles USB, dirección MAC: enx2c56ac39ec0d).
puede listar interfaces con: ls/sys/class/net
varios ejemplos a continuación continúan usando «eth0» como nombre de interfaz predeterminado, aunque es poco probable que exista en un sistema moderno.
Upgrading and Network Interface Names
Stretch y Buster siguen siendo compatibles con el antiguo sistema de nombres, siempre y cuando el archivo/etc/udev / rules.d / 70-local-persistent-net.,las reglas todavía están en su lugar, pero se aconseja a los usuarios que cambien antes de la actualización a Bullseye.
usando DHCP para configurar automáticamente la interfaz
si solo está usando DHCP, todo lo que necesita es algo como:
auto eth0 allow-hotplug eth0 iface eth0 inet dhcp
para DHCPv6 (utilizado para IPv6), agregue también la siguiente estrofa iface
iface eth0 inet6 dhcp
alternativamente, IPv6 se puede configurar automáticamente usando la configuración automática de direcciones sin estado, o slaac, que se especifica usando auto en lugar de DHCP en la estrofa de inet6:
iface eth0 inet6 auto
También vea ipv6prefixdelegation.,
configurar la interfaz manualmente
si la está configurando manualmente, entonces algo como esto establecerá la puerta de enlace predeterminada (red, difusión y puerta de enlace son opcionales):
auto eth0 iface eth0 inet static address 192.0.2.7/24 gateway 192.0.2.254
Si desea agregar una dirección IPv6, también, agregue algo como:
iface eth0 inet6 static address 2001:db8::c0ca:1eaf/64 gateway 2001:db8::1ead:ed:beef
Ver interfaces man para más opciones.
asegúrese de deshabilitar todos los servicios DHCP, por ejemplo, dhcpcd.
también es posible la configuración manual y automática de la mezcla, p.ej., para usar IPv6 SLAAC para conectividad a internet y direcciones estáticas dentro de la red:
# manual unique local addressiface eth0 inet6 static address fdc3:cafe::3/64 # use SLAAC to get global IPv6 address from the router # we may not enable ipv6 forwarding, otherwise SLAAC gets disabled autoconf 1 accept_ra 2
configurar la velocidad y la autonegociación dúplex
fallar repetidamente es a menudo un síntoma de cableado defectuoso, así que investigue asuntos físicos antes de asumir que los Algoritmos de autonegociación de las interfaces son incompatibles. Si desactiva la autonegociación y establece la velocidad y el dúplex manualmente, la interfaz del Socio en el otro extremo del cable asumirá que la ausencia de autonegociación indica una velocidad de 10 Mbps y un dúplex de la mitad., Para un funcionamiento sin errores si configura la velocidad y el dúplex manualmente, debe asegurarse de que la misma velocidad y el dúplex estén configurados exactamente en la interfaz del Socio.
Si configura la velocidad y el dúplex de su interfaz a mano, puede ser necesario un ensayo y error. Estos son los pasos básicos:
-
instale los paquetes ethtool y net-tools, para que tenga los programas ethtool y Mii-tool. Uno o ambos pueden funcionar para su interfaz.
-
asegúrese de tener una forma de iniciar sesión en el sistema en caso de que la interfaz de red no funcione., Una conexión SSH podría interrumpirse, por lo que debería tener una estrategia de reserva.
- Identificar la interfaz en cuestión (a menudo será eth0). Ajuste el resto de estas instrucciones en consecuencia.
- intente determinar cuál es su velocidad actual y la configuración dúplex. Aquí es donde se pone divertido:
-
como root, pruebe ethtool eth0 primero, y vea si las líneas» Speed: «y» Duplex: «parecen válidas. Si no es así, es posible que el dispositivo no admita ethtool.
-
como root, pruebe mii-tool – v eth0 y vea si su salida se ve correcta., Si no, es posible que mii-tool no sea compatible con su dispositivo.
-
si ninguno de los dos está soportado, es posible que tenga que establecer parámetros directamente en el módulo del controlador del kernel. Identifique qué módulo de controlador está utilizando leyendo la salida de dmesg y lsmod. A continuación, puede probar modinfo MODULENAME para ver qué parámetros acepta, si los hay. (Puede utilizar modinfo incluso en módulos que no están cargados, para la comparación.) ToDo: ¿dónde se establecen los parámetros del módulo del núcleo?
-
- a continuación, intente cambiar la configuración de la interfaz mientras está funcionando. Tendrás que ser root, por supuesto., Ya sea:
-
ethtool-s eth0 speed 100 duplex full autoneg off (suponiendo 100 Mbps y Full duplex)
-
mii-tool-F 100BaseTX-FD eth0 (la misma suposición)
en cada caso, vuelva a comprobar si la configuración de la interfaz realmente cambió, y luego intente enviar algunos datos dentro y fuera del sistema para ver si la NIC está funcionando correctamente.
-
-
si uno de estos comandos establece correctamente su NIC, entonces puede ponerlo en /etc/network/interfaces para que se ejecute cuando abra la interfaz (por ejemplo, en el momento del arranque)., Sin embargo, antes de hacer eso, debe comprender que algunos controladores y dispositivos se comportan de manera diferente a otros. Cuando se carga el módulo driver, la NIC puede iniciar la autonegociación sin ninguna forma de detenerla (particularmente con drivers que no aceptan parámetros). Los ajustes de las interfaces se aplican en algún momento después de eso, que puede estar justo en el medio de la negociación. Por lo tanto, algunas personas encuentran necesario retrasar el comando ethtool o Mii-tool unos segundos. Así:
iface eth0 inet static address .../... gateway ... up sleep 5; ethtool -s eth0 ...
o el comando Mii-tool análogo.,
- reinicie la máquina para asegurarse de que sale correctamente, y esté preparado para intervenir manualmente (por ejemplo, Ctrl-Alt-Del Y luego arranque en modo de usuario único desde GRUB o LILO) si las cosas no funcionan.
crear una interfaz sin dirección IP
para crear una interfaz de red sin dirección IP utilice el método manual y utilice los comandos pre-up y post-down para subir y bajar la interfaz.
iface eth0 inet manual pre-up ifconfig $IFACE up post-down ifconfig $IFACE down
si la interfaz es una interfaz VLAN, los comandos up/down deben ejecutarse después / antes de los ganchos vlan., (También tiene que instalar el paquete vlan.)
iface eth0.99 inet manual post-up ifconfig $IFACE up pre-down ifconfig $IFACE down
Nota: Si crea la interfaz VLAN solo para ponerla en un puente, no es necesario definir la interfaz VLAN manualmente. Simplemente configure el puente, y la interfaz VLAN se creará automáticamente al crear el puente (ver más abajo).
definir los servidores de nombres (DNS)
antes de que una computadora pueda conectarse a un recurso de red externo (por ejemplo, un servidor web), debe tener un medio de convertir cualquier nombre alfanumérico (p. ej. wiki.debian.org) en direcciones de red numéricas (por ejemplo, 140.211.166.,4). (Internet utiliza estas direcciones IP numéricas estructuradas como direcciones de red.)
la biblioteca C y otras bibliotecas de resolución miran a/etc / resolv.conf para una lista de servidores de nombres. En el caso más simple, ese es el archivo a editar para establecer la lista de servidores de nombres. Pero tenga en cuenta que varios otros programas de configuración dinámica estarán encantados de sobrescribir su configuración:
-
el programa resolvconf
-
el demonio network-manager
- clientes DHCP
en la mayoría de las situaciones, el archivo a editar es el archivo de configuración para dicho programa.,
en las situaciones más complejas, usar resolvconf realmente es el camino a seguir, aunque en configuraciones más simples probablemente sea excesivo.
la resolución.conf configuration file
el archivo de configuración resolv.conf en/etc / resolv.conf contiene información que permite a un equipo conectado a una red resolver nombres en direcciones. (Nota: no confunda este archivo de configuración con el programa resolvconf, que desafortunadamente tiene un nombre casi idéntico.)
la resolución.,el archivo conf normalmente contiene las direcciones IP de los servidores de nombres (solucionadores de nombres DNS) que intentarán traducir nombres en direcciones para cualquier nodo disponible en la red. Habrá una línea o líneas que se vean así:
nameserver 12.34.56.78nameserver 12.34.56.79
en este ejemplo, el sistema está utilizando servidores de nombres en las direcciones IP 12.34.56.78 y 12.34.56.79. Simplemente edite el Archivo e ingrese las direcciones IP de los servidores de nombres que necesita usar después de cada servidor de nombres. Agregue más líneas de servidor de nombres si tiene más servidores de nombres. No utilice este método si tiene instalado el programa resolvconf.,
la resolución.conf configuration file tiene muchas otras opciones para definir cómo el solucionador busca nombres. Ver Man resolv.conf para más detalles.
el programa resolvconf
el programa resolvconf realiza un seguimiento de la información del sistema sobre los servidores de nombres disponibles actualmente. No debe confundirse con el archivo de configuración resolv.conf, que desafortunadamente tiene un nombre casi idéntico. El programa resolvconf es opcional en un sistema Debian.
el archivo de configuración resolv.conf contiene información acerca de los servidores de nombres a ser usados por el sistema., Sin embargo, cuando varios programas necesitan modificar dinámicamente la resolución.archivo de configuración de conf pueden pisar uno sobre el otro y el archivo puede quedar fuera de sincronización. El programa resolvconf soluciona este problema. Actúa como intermediario entre los programas que suministran información del servidor de nombres (por ejemplo, clientes dhcp) y los programas que utilizan información del servidor de nombres (por ejemplo, resolver).
cuando resolvconf está instalado correctamente, el resolv.archivo de configuración de conf en/etc / resolv.conf se sustituye por un enlace simbólico a /etc/resolvconf/run/resolv.,conf y el solucionador utilizan en su lugar el archivo de configuración generado dinámicamente por resolvconf en /etc/resolvconf/run / resolv.conf.
el programa resolvconf generalmente solo es necesario cuando un sistema tiene varios programas que necesitan modificar dinámicamente la información del servidor de nombres. En un sistema simple donde los servidores de nombres no cambian a menudo o solo son cambiados por un programa, el resolv.el archivo de configuración conf es adecuado.
si el programa resolvconf está instalado, no debe editar el resolv.,conf archivo de configuración manualmente, ya que será cambiado dinámicamente por los programas en el sistema. Si necesita definir manualmente los servidores de nombres (como con una interfaz estática), agregue una línea como la siguiente al archivo de configuración de interfaces en /etc/network/interfaces:
dns-nameservers 12.34.56.78 12.34.56.79
coloque la línea sangrada dentro de una estrofa iface, por ejemplo, justo después de la línea gateway. Introduzca las direcciones IP de los servidores de nombres que necesita usar después de dns-nameservers. Ponga todos ellos en una línea separados por espacios. No olvide la » s » al final de los servidores de nombres dns.,
el programa resolvconf es una adición bastante nueva a Debian y muchos programas antiguos necesitan ser actualizados o reconfigurados para funcionar correctamente con él. Si tiene problemas, consulte /usr/share/doc/resolvconf/README. Tiene mucha información sobre cómo hacer que otros programas se lleven bien con resolvconf.
la configuración DNS para NetworkManager
NetworkManager anulará la configuración de dhcp, sobrescribiendo resolv.conf aunque haya configurado DNS en / etc/dhcp / dhclient.conf, E. G., hacer que DNS busque primero el dominio local, lo que puede tener que esperar antes de que la resolución de DNS continúe causando largos tiempos de resolución de DNS. Puede hacerse una idea de lo que NetworkManager piensa que debería ser la configuración ejecutando nm-tool en la línea de comandos.
Puede configurar estos ajustes usando una GUI iniciando nm-connection-editor que actualmente (13.11.23) no se encuentra en el menú Herramientas del Sistema → Administración, sino que debe ser lanzado a mano desde la línea de comandos. Después de iniciar:
- elija una conexión (desde la pestaña cableada o inalámbrica) y haga clic en Editar.,
- haga clic en la pestaña Configuración de IPv4
- elija ‘ solo direcciones automáticas (DHCP)’ en lugar de solo ‘automáticas (DHCP)’.
- introduzca los servidores DNS en el campo» servidores DNS», separados por espacios (por ejemplo, 208.67.222.222 para OpenDNS).
- haga Clic en «Aplicar.»
NetworkManager guarda esta configuración en/etc/NetworkManager/system-connections / name-of-connection. Ejemplo/etc/NetworkManager/system-connections/Wired connection 1:
Ejecutar nm-tool de nuevo debería mostrar que NetworkManager ahora tiene la idea correcta de cómo se debe resolver su DNS.,
configuración del cliente DHCP
configuración de servidores DNS adicionales
Ejemplo: dhclient3 utiliza/etc/dhcp / dhclient.conf. La configuración que desea es
supersede domain-name-servers 12.34.56.78, 12.34.56.79;
o tal vez
prepend domain-name-servers 12.34.56.78, 12.34.56.79;
establecer dominios de búsqueda adicionales
agregar dominios de búsqueda para VPN o redes virtuales locales:
append domain-name " virt vpn";
tenga en cuenta el espacio inicial desde la cadena se añade literalmente al dominio de búsqueda proporcionado por otras configuraciones.
Ver el dhclient.página de manual de conf (5) para más detalles.,
Bridging
Bridging pone varias interfaces en el mismo segmento de red. Esto es muy popular cuando se conecta un servidor a múltiples switches para alta disponibilidad o con virtualización. En este último caso se utiliza generalmente para crear un puente en el host (por ejemplo. dom0) y poner las interfaces virtuales de los invitados (domU) en el puente.
-
El paquete bridge-utils es necesario para crear interfaces puenteadas.,
Ejemplo: Conecte un servidor a 2 switches (a través de eth0 y eth1) definiendo el puente 0 y dé al servidor una dirección IP en esta subred:
auto br0iface br0 inet static address 10.10.0.15/24 gateway 10.10.0.1 bridge_ports eth0 eth1 up /usr/sbin/brctl stp br0 on
si un servidor está conectado a varios switches, generalmente necesita ejecutar el protocolo spanning tree para evitar bucles. Por lo tanto, STP debe activarse mediante un comando «up» como se muestra arriba.
Ejemplo: configuración de puente sin configuración de dirección IP (use «manual» en lugar de «estático») para «reenviar» una interfaz a una máquina virtual invitada. (La configuración del puente estático contiene solo 1 interfaz física., La interfaz virtual se agregará al puente cuando se inicie la VM.)
auto br1iface br1 inet manual bridge_ports eth4 up /usr/sbin/brctl setageing br1 0 up /usr/sbin/brctl stp br1 off
Nota: El Puente Linux solo soporta STP, no RSTP (árbol de expansión rápida). Por lo tanto, solo soporta los costos STP antiguos, no los nuevos costos RSTP (ver Spanning_Tree_Protocol). Esto suele estar bien con los Switches de Cisco, pero por ejemplo. Los conmutadores Juniper utilizan los costos RSTP y, por lo tanto, esto puede conducir a diferentes cálculos de árbol de expansión y problemas de bucle. Esto se puede arreglar mediante la configuración de los costos manualmente, ya sea en el interruptor o en el servidor., Se prefiere establecer el costo en el conmutador, ya que Linux cambia a los costos predeterminados cada vez que una interfaz baja / sube.
puentear sin cambiar
por defecto el puente Linux actúa como un switch. Esto significa que recuerda las direcciones MAC detrás de un puerto de conmutación y si se conoce la dirección MAC de destino, los paquetes de datos o solo se reenvían al puerto respectivo; de lo contrario, los paquetes se transmitirán.
en algunas configuraciones esto es malo. Por ejemplo, si el puente conecta 2 interfaces troncales y las mismas direcciones MAC pueden verse desde ambas interfaces, dependiendo de la VLAN., Como el puente de Linux no admite VLAN (tablas de direcciones MAC dedicadas por cada VLAN), en tales configuraciones debe deshabilitar el aprendizaje de direcciones MAC y poner el puente en un modo «puente» real con:
up /sbin/brctl setageing br0 0 up /sbin/brctl stp br0 off
cómo usar vlan (dot1q, 802.,1q, trunk) (Etch, Lenny)
manual config
modprobe 8021qapt install vlanvconfig add eth0 222 # 222 is vlan numberifconfig eth0.222 upifconfig eth0.222 mtu 1496 #optional if your network card doesn't support MTU 1504Bifconfig eth0.222 10.10.10.1 netmask 255.255.255.0
Network init script config
En /etc/modules Añadir línea:
8021q
En /etc/network/interfaces a la sección iface Añadir parámetro:
vlan-raw-device eth0
el nombre de la interfaz debe ser el nombre de la interfaz Raw (el mismo especificado por VLAN-raw-device), luego un punto, luego el ID de la VLAN, por ejemplo eth0.100. En su lugar, puede ser «vlan» y luego el ID de VLAN, por ejemplo vlan100. En cualquier caso, el ID de VLAN está al final, y este es el único lugar en el que está configurado.,
Nota: si nombra sus interfaces VLAN ethX.YYY, entonces no hay necesidad de especificar el VLAN-raw-device, ya que el dispositivo raw se puede recuperar desde el nombre de la interfaz.
Eg:
auto eth0.222iface eth0.222 inet static address 10.10.10.1/24 vlan-raw-device eth0
puentes y VLAN
Si crea interfaces VLAN solo para ponerlas en un puente, no es necesario definir las interfaces VLAN manualmente. Simplemente config el puente, y la interfaz VLAN se creará automáticamente al crear el puente, e.,g:
auto br1iface br1 inet manual bridge_ports eth0.99 eth1.99 up /usr/sbin/brctl stp br1 on
advertencias al usar bridging y vlan
Si está utilizando una configuración de VLAN brigded, que probablemente sea útil para redes en entornos de virtualización, tenga cuidado de conectar solo un dispositivo bridge o dispositivos VLAN a un dispositivo físico subyacente, como se muestra arriba. Conectar la interfaz física (eth0) a un puente (ej. bri1) mientras se usa la misma interfaz física en VLAN aparentemente diferentes, todos los paquetes permanecerán Etiquetados. (Kernel más reciente que 2.6.37 y más antiguo que 3.2).,
Howto create fault tolerant bonding with VLAN (Etch – Stretch)
debian_bonding.dia
Cómo configurar uno de los anteriores server active backup bonding 3 VLAN {vlan10,vlan20,vlan30} Debian networking sin SPOF sin VLAN nativa.
aptitude install vlan ifenslave-2.6
Network config
Cisco switch interface example config
interface GigabitEthernet1/2 description eth1 switchport switchport trunk encapsulation dot1q switchport trunk allowed vlan 10,20,30 switchport mode trunk no ip address no cdp enable spanning-tree portfast trunk
bonding with active backup
Create a file/etc / modprobe.D vinculación.,conf que contiene:
alias bond0 bondingoptions bonding mode=active-backup miimon=100 downdelay=200 updelay=200 primary=eth1
/etc/network/interfaces
# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto bond0iface bond0 inet manual up ifconfig bond0 0.0.0.0 up slaves eth1 eth0auto vlan10iface vlan10 inet static address 10.10.10.12/24 vlan-raw-device bond0 gateway 10.10.0.1 dns-search hup.hu dns-nameservers 10.10.0.2auto vlan20iface vlan20 inet static address 10.20.10.12/24 vlan-raw-device bond0auto vlan30iface vlan30 inet static address 10.30.10.12/24 vlan-raw-device bond0
cómo configurar el MTU (Max transfer unit / packet size) con VLAN sobre una interfaz enlazada
MTU debe configurarse en la interfaz de enlace y en las interfaces esclavas después de que se haya aplicado el restablecimiento de la configuración al enlace interfaces. Esto se hace utilizando una línea de post-up en la configuración de la interfaz de unión.
auto bond0iface bond0 inet manual up ifconfig lacptrunk0 0.0.0.0 up slaves eth0 eth1# bond-mode 4 = 802.3ad bond-mode 4 bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-lacp-rate 1 bond-xmit-hash-policy layer2+3 post-up ifconfig eth0 mtu 9000 && ifconfig eth1 mtu 9000 && ifconfig bond0 mtu 9000#vlan devices will use the MTU set on bond0 deviceauto vlan101iface vlan101 inet static address 10.101.60.123/24 gateway 10.155.60.1 vlan-raw-device bond0auto vlan151iface vlan151 inet static address 192.168.1.1/24 vlan-raw-device bond0
múltiples direcciones IP en una interfaz
el aliasing de interfaz permite que una interfaz tenga varias direcciones IP., Esto es útil cuando más de un servidor debe ser visible a través de Internet. Tenga en cuenta que los hosts virtuales pueden admitir varios servidores Apache con una sola dirección IP. Apache responde al nombre de dominio proporcionado por el cliente en el encabezado HTTP. En muchas otras situaciones, se necesita una IP externa para cada servidor que usa un puerto.
método heredado
Este texto de/etc / network / interfaces asigna tres direcciones IP a eth0.
una interfaz de alias no debe tener «gateway» o «dns-nameservers»; se permite la asignación dinámica de IP.,
la configuración anterior es el método tradicional anterior que refleja el uso tradicional de ifconfig para configurar dispositivos de red. ifconfig ha introducido el concepto de interfaces virtuales o con alias. Esos tipos de interfaces virtuales tienen nombres de la interfaz de formulario: integer e ifconfig los tratan de manera muy similar a las interfaces reales.
hoy en día ifupdown utiliza la utilidad ip del paquete iproute2 en lugar de ifconfig. La nueva utilidad ip no utiliza el mismo concepto de alias o interfaces virtuales., Sin embargo, admite la asignación de nombres arbitrarios a las interfaces (se llaman etiquetas). ifupdown utiliza esta característica para admitir interfaces con alias mientras usa ip.
método iproute2
Además, ifupdown admite la especificación de múltiples interfaces repitiendo secciones iface con el mismo nombre de interfaz. La diferencia clave con el método descrito anteriormente es que todas estas secciones son tratadas por ifupdown como una sola interfaz, por lo que el Usuario no puede agregarlas o eliminarlas individualmente. Sin embargo, los comandos up/down, así como los scripts, se llaman para cada sección como solía ser.,
tenga en cuenta sin embargo que este método es peligroso! Algunas combinaciones de controlador / hardware a veces pueden fallar en traer el enlace si no se asignan etiquetas a las interfaces de alias. (Visto esto en Debian Wheezy y Jessie con RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01) auto-negociación a 10 / full. Una advertencia similar de otra persona existe en la historia de esta página.)
Este texto de/etc/network / interfaces asigna tres direcciones IP a eth0.
auto eth0allow-hotplug eth0iface eth0 inet static address 192.168.1.42/24 gateway 192.168.1.1iface eth0 inet static address 192.168.1.43/24iface eth0 inet static address 192.168.1.44/24# adding IP addresses from different subnets is also possibleiface eth0 inet static address 10.10.10.14/24
enfoque Manual:
CategoryNetwork CategorySystemAdministration