Il nome dell'interfaccia di rete ha un segno: che cos'è?


10

Sto cercando di cercare informazioni sul perché un nome di interfaccia di rete dovrebbe avere un segno, ma c'è troppo rumore nei risultati che sto ottenendo finora (mi manca la terminologia corretta su cui cercare)

Ho un contenitore LXC su un host Ubuntu. All'interno del contenitore corro e ottengo:

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:37:a0:7a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.3.195/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe37:a07a/64 scope link 
       valid_lft forever preferred_lft forever

Nota che eth0@if10

Come si @chiama / riferendosi a questa porzione?

Sull'host non ce ne sono if10, un altro contenitore che ho ha un eth0@if8- devo presumere che questo sia parte della gestione delle traduzioni di rete da parte di LXC / container, ma non avevo notato questo esistente in precedenza, e mi chiedo se sia un complemento al bridge, che potrebbe esistere in altri scenari?

Risposte:


6

eth0@if10 si intende:

  • la tua interfaccia di rete è chiamata semplicemente eth0e gli strumenti e le app di rete possono fare riferimento solo a questo nome, senza l'appendice @. (Come un sidenote, questo è molto probabilmente un peer pari, ma il nome non deve riflettere questo.)
  • @if10significa: eth0è collegato a qualche (altra) interfaccia di rete con indice 10 (decimale). Dal momento che viene link-netnsid 0mostrato anche un altro, questa altra interfaccia di rete si trova in un altro spazio dei nomi di rete (tipo di stack IP virtuale), presumibilmente lo spazio dei nomi di rete root (noto anche come host).

Se si utilizza ip link shownel proprio host e non nel proprio contenitore, una delle interfacce di rete elencate dovrebbe avere @9un'appendice; il nome dell'interfaccia probabilmente inizierà con veth.... Questa interfaccia è il peer eth0@10dell'interfaccia di cui hai chiesto. Le interfacce Veth si presentano in coppie collegate tra loro, come un cavo virtuale.

Quindi, @...è un'appendice creata dallo ipstrumento e non fa parte dei nomi delle interfacce di rete di Linux. Il numero dopo la @ si riferisce a un'altra interfaccia di rete con il numero di indice visualizzato dopo la @. I numeri di indice vengono stampati prima dei nomi dell'interfaccia di rete, ad esempio in 9: eth0@if10. L'interfaccia di rete peer può trovarsi in uno spazio dei nomi di rete diverso.

Sfortunatamente, trovare lo spazio dei nomi di rete corretto per il link-netnsid ..è piuttosto coinvolto, vedere come trovare lo spazio dei nomi di rete di un veth peer ifindex .


Grazie - seguendo questa spiegazione sembra che quello che sto guardando sia quello che viene correttamente chiamato "spazi dei nomi di rete". Ta.
Taifwa,

1
La notazione @ viene utilizzata anche in altre situazioni non correlate agli spazi dei nomi di rete, come le interfacce MACVLAN collegate a un'altra interfaccia di rete fisica. È quello link-netnsid 0che segnala che è coinvolto un altro spazio dei nomi di rete. @ Indica semplicemente che è coinvolta un'altra interfaccia, ma non dove si trova quell'altra interfaccia.
TheDiveO

0

Cerca un file come 70-persistent-net.rules in /etc/udev/rules.d o in /lib/udev/rules.d. Dovrebbe esserci una riga con il nome dell'interfaccia di rete e l'indirizzo MAC. La modifica e il riavvio dovrebbero rinominare la NIC.


Non sto cercando di rinominare la scheda di rete - Sto cercando di capire cosa è presente ....
Taifwa,

Inteso. Ma esiste un file di regole di rete persistente con il segno "at" nel nome della NIC?
Bootbeast

Il segno @ in questo caso non fa parte del nome dell'interfaccia, ma piuttosto un artefatto dello ipstrumento. Basta confrontare con ifconfig... o fare alcuni rapidi nomi di interfaccia di scripting Python utilizzando pyroute2. Tutto mostrerà lì nomi di interfaccia di rete reali non adornati.
TheDiveO
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.