Posso creare un'interfaccia Ethernet virtuale chiamata eth0?


24

Sto eseguendo Arch basato sul kernel Linux 3.10.5-1. Il sistema utilizza le nuove convenzioni di denominazione di fatto delle interfacce Ethernet enp * s * e wlp * ecc. Questo è comunque un problema, poiché la mia istituzione educativa sta usando un programma chiamato Maple 17 . Il sistema di licenze di Maple dipende dall'esistenza di un'interfaccia denominata eth0 perché deve recuperarne l'indirizzo MAC per verificare la licenza. È una cattiva soluzione, ma devo aggirare il problema.

Ciò significa che avrò bisogno di un'interfaccia eth0 con qualsiasi indirizzo MAC (poiché posso recuperare un nuovo file di licenza per il nuovo indirizzo MAC) che non deve necessariamente funzionare. In effetti, dovrebbe essere sempre inattivo. Credo che ci siano diversi modi per tentare di risolvere questo problema, ma non sono stato in grado di trovare nulla su nessuna delle idee.

  • Creazione di un adattatore senza connettività
  • Creazione di un alias per enp3s0 chiamato eth0
  • Rinominare enp3s0 o l'interfaccia di loopback.

Le cose che sono riuscito a trovare riguardavano solo il passaggio alle convenzioni più recenti e alle versioni precedenti di udev. Hanno lavorato solo su RHEL e SuSe comunque. L'ho provato senza fortuna però. (persistent-net-names.rules e net-name-slot.rules, entrambi hanno appena fatto smettere di funzionare la mia interfaccia reale e la mia interfaccia wlan scompare)

Risposte:


28

Sicuro. Puoi creare un tapdispositivo abbastanza facilmente, sia con tunctl(da uml-utilities, almeno su Debian):

# tunctl -t eth0
Set 'eth0' persistent and owned by uid 0
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr a6:9b:fe:d8:d9:5e  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

O con ip:

# ip tuntap add dev eth0 mode tap
# ip link ls dev eth0
7: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 500
    link/ether 0e:55:9b:6f:57:6c brd ff:ff:ff:ff:ff:ff

Probabilmente dovresti preferire il secondo metodo, come lo ipstrumento di rete preferito su Linux, e probabilmente lo hai già installato.

Inoltre, entrambi stanno creando il dispositivo tap con un MAC locale casuale, immagino, è possibile impostare il MAC su un valore fisso in uno dei modi normali.


1
Bene! Esattamente la soluzione che speravo, grazie mille :) Funziona come un sogno.
Steen Schütt,

1
Ho un problema. Quando si tenta di cambiare MAC con ip link set dev eth0 address 01:23:45:67:89:ab(Mentre l'adattatore è inattivo ovviamente) dice RTNETLINK answers: Cannot assign requested address. Ho anche provato a installare il macchanger, ma restituisce un errore simile. Tutto provato come root.
Steen Schütt,

3
@TimeSheep Non è un indirizzo MAC valido. In particolare, si tratta di un indirizzo multicast. Prova 00: 23: 45: 67: 89: ab. Funzionerà. Ma 02: 23: 45: 67: 89: ab sarebbe meglio. Vedi, ad esempio, en.wikipedia.org/wiki/MAC_address#Address_details
derobert

Ah grazie. Ho completamente dimenticato che ci sono requisiti per far funzionare queste cose. Prenderò il prossimo che genera casualmente e lo userò. C'è un modo per mantenere persistente il dispositivo durante i riavvii piuttosto che ricrearlo e ripristinare il suo indirizzo all'avvio con uno script?
Steen Schütt,

@TimeSheep Non proprio. È un'interfaccia virtuale, non esiste altro che la mente del kernel ... quindi quando riavvii, non c'è più.
derobert,

4

Puoi anche impostare le regole udev per assegnare alle tue schede di rete i nomi che desideri:

https://wiki.archlinux.org/index.php/Network_Configuration#Change_device_name

Ovviamente, NON dovresti dire a udev di chiamarli eth0, eth1, ecc. Cosa fa Maple se hai solo una scheda wifi?


Non conosco Maple, ma ho visto altri software "protetti da copia" che controllano il tuo MAC e guardano solo le interfacce di rete chiamate eth0e eth1. Se il tuo viene chiamato wlan0, peccato (a meno che tu non sappia come rinominarlo o creare un'interfaccia virtuale).
Gilles 'SO- smetti di essere malvagio' il

Se hai solo una scheda wifi, penso solo che saresti sfortunato. Ne ho parlato con un rappresentante, ma non sembrano essere quelli che scrivono il sistema di licenze. Ho detto loro che le convenzioni di denominazione stanno probabilmente cambiando e che dovrebbero cercare di rattoppare il tutto per un miglior supporto. you are correct in your suspicions of the cause of the problem with the activation, particularly the issue with the Ethernet adapter name. Unfortunately, it is a limitation of the licensing software that it has to look for an "eth0" in order to find the Host ID of the system
Steen Schütt,

Qualche possibilità che potresti utilizzare le regole udev per rinominare temporaneamente la tua NIC in eth0, quindi rimuovere quella regola e riavviare dopo l'attivazione? In realtà non so se è sempre molto, molto male rinominare la tua scheda ethX, o solo a volte.
rainbowgoblin,

@rainbowgoblin No, verifica con il server ogni volta che viene avviato, quindi inizierà a restituirmi l'errore "Impossibile ottenere l'ID host" più tardi. In entrambi i casi la soluzione di derobert era perfetta e non sembra nemmeno una soluzione.
Steen Schütt,

2

Sto osservando un problema molto simile con un computer senza scheda di rete cablata. Questa soluzione sembra buona: http://jms.id.au/wiki/FakeEth0

Fondamentalmente, l'idea è di creare / modificare alcuni file per creare un'interfaccia fittizia:

In /etc/modules-load.d/dummy.confaggiunta:

# load dummy interface module
dummy

In /etc/udev/rules.d/70-persistent-net.rulesaggiunta:

SUBSYSTEM=="net", KERNEL=="dummy0", NAME="eth0"

Quindi /etc/network/interfacesaggiungere:

iface eth0 inet static
    hwaddress DE:AD:BE:EF:CA:FE

modprobe dummyA questo punto dovresti essere in grado di eseguire un controllo e verificare che l'interfaccia sia stata impostata correttamente. Potrebbe non impostare l'indirizzo mac se si utilizza modprobe invece di riavviare; in tal caso, impostare il collegamento ip dev dev0 indirizzo de: ad: be: ef: ca: fe.


-1

Soluzione più semplice, sebbene funzioni solo su sistemi con una scheda Ethernet:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Arch Linux utilizza "nomi prevedibili". Questo lo spegne.


L'ho già provato, ha appena rovinato tutto e i miei adattatori sono svaniti.
Steen Schütt,
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.