.\" -*- coding: UTF-8 -*- '\" t .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" $Id: netdevice.7,v 1.10 2000/08/17 10:09:54 ak Exp $ .\" .\" Modified, 2004-11-25, mtk, formatting and a few wording fixes .\" .\" Modified, 2011-11-02, , added many basic .\" but missing ioctls, such as SIOCGIFADDR. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH netdevice 7 "2 Mayo 2024" "Páginas de Manual de Linux 6.9.1" .SH NOMBRE netdevice \- acceso de bajo nivel a los dispositivos de red de Linux .SH SINOPSIS .nf \fB#include \fP \fB#include \fP .fi .SH DESCRIPCIÓN Esta página de manual describe la interfaz de conectores que se usa para configurar los dispositivos de red. .P Linux incluye soporte para algunas ioctls estándares para configurar los dispositivos de red. Se pueden usar sobre cualquier descriptor de archivo de un conector sin importar la familia o el tipo. La mayoría pasa una estructura \fBifreq\fP: .P .in +4n .EX struct ifreq { char ifr_name[IFNAMSIZ]; /* Nombre de la interfaz */ union { struct sockaddr ifr_addr; struct sockaddr ifr_dstaddr; struct sockaddr ifr_broadaddr; struct sockaddr ifr_netmask; struct sockaddr ifr_hwaddr; short ifr_flags; int ifr_ifindex; int ifr_metric; int ifr_mtu; struct ifmap ifr_map; char ifr_slave[IFNAMSIZ]; char ifr_newname[IFNAMSIZ]; char *ifr_data; }; }; .EE .in .P \fBAF_INET6\fP es una excepción. Pasa una estructura \fIin6_ifreq\fP: .P .in +4n .EX struct in6_ifreq { struct in6_addr ifr6_addr; u32 ifr6_prefixlen; int ifr6_ifindex; /* Índice de la interfaz */ }; .EE .in .P En general, el usuario especifica a qué dispositivo va a afectar asignando a \fIifr_name\fP el nombre de la interfaz o a \fIifr6_ifindex\fP el índice de la misma. Todos los otros miembros de la estructura pueden compartir memoria. .SS Ioctls Si se marca una ioctl como privilegiada entonces su uso requiere un identificador de usuario efectivo 0 o la capacidad \fBCAP_NET_ADMIN\fP. Si éste no es el caso se devuelve \fBEPERM\fP. .TP \fBSIOCGIFNAME\fP Dado un \fIifr_ifindex\fP, devuelve el nombre de la interfaz en \fIifr_name\fP. Ésta es la única ioctl que devuelve su resultado en \fIifr_name\fP. .TP \fBSIOCGIFINDEX\fP Devuelve el índice de interfaz de la interfaz en \fIifr_ifindex\fP. .TP \fBSIOCGIFFLAGS\fP .TQ \fBSIOCSIFFLAGS\fP .\" Do not right adjust text blocks in tables Obtiene o establece la palabra de banderas activas del dispositivo. \fIifr_flags\fP contiene una máscara de bits de los siguientes valores: .na .TS tab(:); c s l l. Significado de las banderas IFF_UP:La interfaz está funcionando. IFF_BROADCAST:Dirección de difusión válida asignada. IFF_DEBUG:Bandera de depuración interna. IFF_LOOPBACK:Ésta es una interfaz loopback. IFF_POINTOPOINT:La interfaz es un enlace punto a punto. IFF_RUNNING:Recursos necesarios reservados. IFF_NOARP:T{ Sin protocolo ARP, la dirección de destino de Nivel 2 no está configurada. T} IFF_PROMISC:La interfaz se encuentra en modo promiscuo. IFF_NOTRAILERS:Evitar el uso de terminadores. IFF_ALLMULTI:Recibir todos los paquetes multidestino. IFF_MASTER:Interfaz maestra de un grupo de balanceo de carga. IFF_SLAVE:Interfaz esclava de un grupo de balanceo de carga. IFF_MULTICAST:La interfaz permite multidestino. IFF_PORTSEL:La interfaz es capaz de seleccionar el tipo de medio mediante ifmap. IFF_AUTOMEDIA:Autoselección de medios activa. IFF_DYNAMIC:T{ Las direcciones se pierden cuando la interfaz se desactiva. T} IFF_LOWER_UP:El controlador señala L1 activa (desde Linux 2.6.17) IFF_DORMANT:El controlador señala inactiva (desde Linux 2.6.17) IFF_ECHO:Paquetes enviados mediante eco (desde Linux 2.6.25) .TE .ad .P La configuración de la palabra de banderas activas es una operación privilegiada pero cualquier proceso puede leerla. .TP \fBSIOCGIFPFLAGS\fP .TQ \fBSIOCSIFPFLAGS\fP Obtiene o establece banderas ampliadas (privadas) del dispositivo. \fBifr_flags\fP contiene una máscara de bits de los siguientes valores: .TS tab(:); c s l l. Banderas privadas IFF_802_1Q_VLAN:La interfaz es un dispositivo VLAN 802.1Q. IFF_EBRIDGE:La interfaz es un disposotivo puente Ethernet. IFF_SLAVE_INACTIVE:La interfaz es un enlace esclavo inactivo. IFF_MASTER_8023AD:La interfaz es un enlace maestro 802.3ad. IFF_MASTER_ALB:La interfaz es un enlaze maestro balanceado\-alb. IFF_BONDING:La interfaz es un enlace maestro o esclavo. IFF_SLAVE_NEEDARP:La interfaz necesita ARP para la validación. IFF_ISATAP:La interfaz es una ISATAP RFC4214. .TE .P La configuración de las opciones extendidas (privada) de la interfaz necesita privilegios especiales. .TP \fBSIOCGIFADDR\fP .TQ \fBSIOCSIFADDR\fP .TQ \fBSIOCDIFADDR\fP Obtenga, configure o elimine la dirección del dispositivo mediante \fIifr_addr\fP, o \fIifr6_addr\fP con \fIifr6_prefixlen\fP. Configurar o eliminar la dirección de la interfaz es una operación que precisa privilegios de administrador. Por compatibilidad, \fBSIOCGIFADDR\fP devuelve solo direcciones \fBAF_INET\fP, \fBSIOCSIFADDR\fP acepta direcciones \fBAF_INET\fP y \fBAF_INET6\fP, y \fBSIOCDIFADDR\fP elimina solo direcciones \fBAF_INET6\fP. Una dirección \fBAF_INET\fP se puede eliminar configurándola como nula mediante de \fBSIOCSIFADDR\fP. .TP \fBSIOCGIFDSTADDR\fP .TQ \fBSIOCSIFDSTADDR\fP Obtenga o configure la dirección de destino de un dispositivo punto a punto usando \fIifr_dstaddr\fP. Por compatibilidad, solo se aceptarán o retornarán direcciones \fBAF_INET\fP. Necesita privilegios de administrador para establecer la dirección de destino. .TP \fBSIOCGIFBRDADDR\fP .TQ \fBSIOCSIFBRDADDR\fP Obtenga o configure la dirección de transmisión para un dispositivo usando \fIifr_brdaddr\fP. Por compatibilidad, solo se aceptarán o retornarán direcciones \fBAF_INET\fP. Necesita privilegios de administrador para configurar la dirección de transmisión. .TP \fBSIOCGIFNETMASK\fP .TQ \fBSIOCSIFNETMASK\fP Obtenga o configure la máscara de red para un dispositivo usando \fIifr_netmask\fP. Por compatibilidad, solo se aceptarán o retornarán direcciones \fBAF_INET\fP. Necesita privilegios de administrador para configurar la máscara de red. .TP \fBSIOCGIFMETRIC\fP .TQ \fBSIOCSIFMETRIC\fP Obtiene o establece la métrica del dispositivo usando \fIifr_metric\fP. Todavía no implementado. Asigna un 0 a \fIifr_metric\fP cuando se intenta leer y devuelve \fBEOPNOTSUPP\fP cuando se intenta asignarle un valor. .TP \fBSIOCGIFMTU\fP .TQ \fBSIOCSIFMTU\fP Obtiene o establece la MTU (unidad de transferencia máxima) del dispositivo usando \fIifr_mtu\fP. La configuración de la MTU es una operación privilegiada. Configurar la MTU con valores demasiado pequeños puede provocar un fallo del núcleo. .TP \fBSIOCGIFHWADDR\fP .TQ \fBSIOCSIFHWADDR\fP Obtiene o establece la dirección hardware del dispositivo usando \fIifr_hwaddr\fP. La configuración de la dirección hardware es una operación privilegiada. .TP \fBSIOCSIFHWBROADCAST\fP Establece la dirección de difusión hardware del dispositivo a partir de \fIifr_hwaddr\fP. Es una operación privilegiada. .TP \fBSIOCGIFMAP\fP .TQ \fBSIOCSIFMAP\fP Obtiene o establece los parámetros hardware de la interfaz usando \fIifr_map\fP. La configuración de los parámetros es una operación privilegiada. .IP .in +4n .EX struct ifmap { unsigned long mem_start; unsigned long mem_end; unsigned short base_addr; unsigned char irq; unsigned char dma; unsigned char port; }; .EE .in .IP La interpretación de la estructura ifmap depende del manejador del dispositivo y de la arquitectura. .TP \fBSIOCADDMULTI\fP .TQ \fBSIOCDELMULTI\fP Añade una dirección a o borra una dirección de los filtros multidestino de la capa de enlace de la interfaz usando \fIifr_hwaddr\fP. Estas operaciones son privilegiadas. Si quiere una alternativa, vea también \fBpacket\fP(7). .TP \fBSIOCGIFTXQLEN\fP .TQ \fBSIOCSIFTXQLEN\fP Obtiene o establece la longitud de la cola de transmisión de un dispositivo usando \fIifr_qlen\fP. La configuración de la longitud de la cola de transmisión es una operación privilegiada. .TP \fBSIOCSIFNAME\fP Cambia el nombre de la interfaz indicada en \fIifr_name\fP a \fIifr_newname\fP. Es una operación privilegiada. Sólo está permitida cuando la interfaz no está activada. .TP \fBSIOCGIFCONF\fP Devuelve una lista de direcciones de interfaz (capa de red). Por compatiilidas, serán sólo direcciones de la familia \fBAF_INET\fP (IPv4). A diferencia de los demás, este ioctl pasará una estructura \fIifconf\fP: .IP .in +4n .EX struct ifconf { int ifc_len; /* tamaño del buffer */ union { char *ifc_buf; /* dirección del buffer */ struct ifreq *ifc_req; /* vector de estructuras */ }; }; .EE .in .IP Si \fIifc_req\fP es NULL, \fBSIOCGIFCONF\fP retornará el tamaño de búfer necesario en bytes para recibir todas las direcciones disponibles en \fIifc_len\fP. De lo contrario, \fIifc_req\fP contiene un puntero a un vector de estructuras \fIifreq\fP que se completarán con todas las direcciones de interfaz L3 activas. \fIifc_len\fP contiene el tamaño de la matriz en bytes. Dentro de cada estructura \fIifreq\fP, \fIifr_name\fP recibirá el nombre de la interfaz y \fIifr_addr\fP la dirección. El número real de bytes transferidos se devuelve en \fIifc_len\fP. .IP Si el tamaño definido en \fIifc_len\fP es insuficiente para almacenar todas las direcciones, el núcleo omitirá las que sobran y finalizará sin errores. No existe una forma fiable de detectar esta condición una vez que ha ocurrido. Por lo tanto, se recomienda determinar de antemano el tamaño de búfer necesario invocando a \fBSIOCGIFCONF\fP con \fIifc_req\fP definido al valor NULL, o volver a intentar la llamada con un búfer más grande siempre que \fIifc_len\fP al regresar difiera en menos de \fIsizeof (struct ifreq)\fP de su valor original. .IP .\" Slaving isn't supported in Linux 2.2 .\" . .\" .TP .\" .B SIOCGIFSLAVE .\" .TQ .\" .B SIOCSIFSLAVE .\" Get or set the slave device using .\" .IR ifr_slave . .\" Setting the slave device is a privileged operation. .\" .P .\" FIXME . add amateur radio stuff. Si sucediese un error durante el acceso a lasestructuras \fIifconf\fP o \fIifreq\fP, se devolvería \fBEFAULT\fP. .P La mayoría de los protocolos soportan sus propias ioctls para configurar las opciones de la interfaz específicas del protocolo. Vea las páginas de manual de los protocolos para una descripción más amplia. Para la configuración de direcciones IP, vea \fBip\fP(7). .P Además, algunos dispositivos soportan ioctls privadas. Éstas no se describen aquí. .SH NOTAS \fBSIOCGIFCONF\fP y otros ioctls que aceptan o devuelven solamente direcciones de conectores \fBAF_INET\fP son específicos de IP y seguramente sea buena idea que se documenten en \fBip\fP(7). .P Los nombres de interfaces que no tiene dirección o que no tienen la opción \fBIFF_RUNNING\fP activa, se pueden encontrar a través de \fI/proc/net/dev\fP. .P Las direcciones IPv6 de \fBAF_INET6\fP pueden leerse desde \fI/proc/net/if_inet6\fP o a través de \fBrtnetlink\fP(7). Pueden añadirse y/o eliminarse direcciones IPv6 a través de \fBSIOCSIFADDR\fP y \fBSIOCDIFADDR\fP o a través de \fBrtnetlink\fP(7). Obtener o modificar direcciones IPv6 de destino de una interfaz punto a punto sólo es posible a través de \fBrtnetlink\fP(7). .SH ERRORES glibc 2.1 no posee la macro \fIifr_newname\fP en \fI\fP. Añada lo siguiente a su programa como solución: .P .in +4n .EX #ifndef ifr_newname #define ifr_newname ifr_ifru.ifru_slave #endif .EE .in .SH "VÉASE TAMBIÉN" \fBproc\fP(5), \fBcapabilities\fP(7), \fBip\fP(7), \fBrtnetlink\fP(7) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Juan Piernas y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .