¿Es posible obtener el índice de interfaz de red no a través de / sys?


11

Entonces, lo que estoy buscando es un índice de interfaz (o nombre) pero real. if_nametoindex(3)y ioctl(2)no parecen ayudarme aquí. Ahora la única forma en que encontré cómo hacer esto es a través de /sys. Permítanme demostrar, por ejemplo, lo que necesito:

# cat /sys/class/net/bond0.1007/ifindex 
26
# cat /sys/class/net/bond0.1007/iflink
23                                  <-- I need either this or a reference to bond0
# cat /sys/class/net/bond0/ifindex 
23

¿Hay alguna manera de hacerlo con una llamada a función o la única es sysfs?


Mira lo que ip link showhace (probablemente usando la API de netlink)
Stéphane Chazelas

Vea también /proc/net/vlan/configo /proc/net/vlan/bond0.1007si es una interfaz vlan.
Stéphane Chazelas

@ StéphaneChazelas Gracias. Decidí seguir usando /sys. /proco /sysson más o menos lo mismo en ese sentido. Solo quería comprobar si hay una llamada al sistema para obtener este tipo de información, resulta que no la hay.
UVV

1
las llamadas al sistema serían sendmsg / recvmsg utilizando la API de socket de enlace de red.
Stéphane Chazelas

1
Documentación de rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html : emita un RTM_GETLINKmensaje y busque el IFLA_LINKatributo en la respuesta.
ecatmur

Respuestas:


1

El comando ip link showes probablemente lo que quieres. Mostrará el índice frente a la información de la interfaz. Ejemplo a continuación de un sistema con NIC enlazadas.

# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9214 qdisc mq master bond0 portid 000f53000000 state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9214 qdisc mq master bond0 portid 000f53000001 state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 9214 qdisc noqueue state UP mode DEFAULT qlen 1000
    link/ether 00:0f:53:00:00:00 brd ff:ff:ff:ff:ff:ff
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.