È possibile ottenere l'indice dell'interfaccia di rete non tramite / sys?


11

Quindi quello che sto cercando è un indice di interfaccia (o nome) ma quello reale. if_nametoindex(3)e ioctl(2)non mi sembra di aiutarmi qui. Ora l'unico modo in cui ho scoperto come farlo è tramite /sys. Vorrei dimostrare sull'esempio di cosa ho bisogno:

# 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

C'è un modo per farlo con una chiamata di funzione o l'unico modo è sysfs?


Guarda cosa ip link showfa (probabilmente usando il netlink api)
Stéphane Chazelas,

Vedi anche /proc/net/vlan/configo /proc/net/vlan/bond0.1007se si tratta di un'interfaccia vlan.
Stéphane Chazelas,

@ StéphaneChazelas Grazie. Ho deciso di continuare a utilizzare /sys. /proco /syssono più o meno gli stessi in questo senso. Volevo solo verificare se esiste un syscall per ottenere questo tipo di informazioni, si scopre che non lo è.
UVV

1
i syscall sarebbero sendmsg / recvmsg usando l'API socket netlink.
Stéphane Chazelas,

1
Documentazione rtnetlink: man7.org/linux/man-pages/man7/rtnetlink.7.html - invia unRTM_GETLINK messaggio e cerca l' IFLA_LINKattributo in risposta.
ecatmur,

Risposte:


1

Il comando ip link showè probabilmente quello che vuoi. Visualizzerà l'indice davanti alle informazioni dell'interfaccia. Esempio seguente da un sistema con schede NIC collegate.

# 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.