Ho un ultrabook Dell XPS 13 che ha una scheda wifi, ma nessuna scheda ethernet fisica (wlan0, ma non eth0). Ho bisogno di creare un adattatore virtuale per usare Vagrant con NFS, ma sto scoprendo che il tipico ifup eth0:1...
fallisce con ignoring unknown interface eth0:1=eth0:1
. Ho anche provato a creare un'interfaccia virtuale contro wlan0
, ma ha ricevuto lo stesso risultato.
Come posso creare un'interfaccia virtuale su questa macchina senza interfaccia fisica?
Risposta accettata:
Impostazione di un'interfaccia fittizia
Se si desidera creare interfacce di rete, ma non dispone di una scheda di rete fisica per supportarla, è possibile utilizzare il tipo di collegamento fittizio. Puoi leggere di più su di loro qui:pagina Wikipedia di iproute2.
Creazione di eth10
Per creare questa interfaccia devi prima assicurarti di aver caricato il modulo del kernel fittizio. Puoi farlo in questo modo:
$ sudo lsmod | grep dummy
$ sudo modprobe dummy
$ sudo lsmod | grep dummy
dummy 12960 0
Con il driver ora caricato puoi creare qualsiasi interfaccia di rete fittizia che ti piace:
$ sudo ip link add eth10 type dummy
NOTA: Nelle versioni precedenti di ip
faresti quanto sopra in questo modo, sembra essere cambiato lungo la strada. Tenendo questo qui a scopo di riferimento, ma sulla base del feedback tramite commenti, quanto sopra funziona ora.
$ sudo ip link set name eth10 dev dummy0
E confermalo:
$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default
link/ether c6:ad:af:42:80:45 brd ff:ff:ff:ff:ff:ff
Modifica del MAC
È quindi possibile modificare l'indirizzo MAC se lo si desidera:
$ sudo ifconfig eth10 hw ether 00:22:22:ff:ff:ff
$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default
link/ether 00:22:22:ff:ff:ff brd ff:ff:ff:ff:ff:ff
Creazione di un alias
Puoi quindi creare alias sopra eth10.
$ sudo ip addr add 192.168.100.199/24 brd + dev eth10 label eth10:0
E confermali così:
$ ifconfig -a eth10
eth10: flags=130<BROADCAST,NOARP> mtu 1500
ether 00:22:22:ff:ff:ff txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ ifconfig -a eth10:0
eth10:0: flags=130<BROADCAST,NOARP> mtu 1500
inet 192.168.100.199 netmask 255.255.255.0 broadcast 192.168.100.255
ether 00:22:22:ff:ff:ff txqueuelen 0 (Ethernet)
Oppure usando ip
:
$ ip a | grep -w inet
inet 127.0.0.1/8 scope host lo
inet 192.168.1.20/24 brd 192.168.1.255 scope global wlp3s0
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
inet 192.168.100.199/24 brd 192.168.100.255 scope global eth10:0
Rimuovere tutto questo?
Se vuoi rilassare tutto questo puoi eseguire questi comandi per farlo:
$ sudo ip addr del 192.168.100.199/24 brd + dev eth10 label eth10:0
$ sudo ip link delete eth10 type dummy
$ sudo rmmod dummy
Riferimenti
- MiniTip:Impostazione di alias IP in Fedora
- Rete Linux:interfacce fittizie e ponti virtuali
- Pagina man di ip-link
- iproute2 HOWTO
- cheatsheet di iproute2