Fiziksel adaptörsüz bir makinede sanal ethernet arayüzü nasıl oluşturabilirim?


68

Ben bir wifi nic olan, ancak fiziksel ethernet nic (wlan0, ancak eth0) olan bir Dell XPS 13 ultrabook var. NFS ile Vagrant'ı kullanmak için sanal bir adaptör oluşturmam gerekiyor, ancak tipik ifup eth0:1...olanın başarısız olduğunu buluyorum ignoring unknown interface eth0:1=eth0:1. Ayrıca karşı sanal bir arayüz oluşturmayı denedim wlan0, ancak aynı sonucu aldım .

Bu makinede fiziksel bir arayüz olmadan nasıl sanal bir arayüz oluşturabilirim?


Öncelikle, wlan0 tarafından kullanılan sürücünüzün takma adını desteklediğinden emin olun. Sanal arayüzlerin geçtiği diğer isim bu. Bu benim A ile nasıl Q bakın: unix.stackexchange.com/questions/108396/… . BTW Eğer fiziksel bir cihaza sahip değilseniz, eth0'a karşı bir takma ad oluşturamazsınız.
slm

Ayrıca bu ipkomutu kullanarak da ek IP'ler ekleyebilirsiniz : xmodulo.com/2013/02/…
slm

Yanıtlar:


103

Sahte bir arayüz ayarlama

Ağ arayüzleri oluşturmak istiyorsanız, ancak onu destekleyecek fiziksel bir NIC'den yoksunsanız, sahte bağlantı türünü kullanabilirsiniz. Onlar hakkında daha fazla bilgiyi burada bulabilirsiniz: iproute2 Wikipedia page .

Eth10 oluşturma

Bu arayüzü oluşturmak için ilk önce sahte çekirdek modülünün kurulu olduğundan emin olmanız gerekir. Bunu böyle yapabilirsiniz:

$ sudo lsmod | grep dummy
$ sudo modprobe dummy
$ sudo lsmod | grep dummy
dummy                  12960  0 

Şimdi yüklü olan sürücüyle, istediğiniz kadar sahte ağ arayüzünü oluşturabilirsiniz:

$ sudo ip link set name eth10 dev dummy0

Ve onayla:

$ 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

MAC’i değiştirme

İsterseniz MAC adresini değiştirebilirsiniz:

$ 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

Bir takma ad oluşturma

Daha sonra eth10 üstüne takma adlar oluşturabilirsiniz.

$ sudo ip addr add 192.168.100.199/24 brd + dev eth10 label eth10:0

Onları şöyle onaylayın:

$ 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)

Veya kullanarak 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

Bunların tümü kaldırılıyor mu?

Tüm bunları çözmek istiyorsanız, aşağıdakileri yapmak için bu komutları çalıştırabilirsiniz:

$ 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

Referanslar


4
Bu komut benim için işe yaramadı: sudo ip link set name eth10 dev dummy0. ip link add dummy0 type dummyDummy0 arabirimini aşağıdaki komutlarda kullandım ve kullandım. Diğer komutlar iyi çalıştı. Teşekkürler!
Ikrom,

1
harika, bu tam olarak yeni RHEL 7 cihaz isimlerinden (ethX yerine emX) MAC adresini okuyamadığım eski bir lmgrd için ihtiyacım olan şeydi
Thesane

26

İproute2 araç setini kullanarak sanal arayüzler oluşturabilirsiniz .

ip link add veth0 type veth peer name veth1

Bu 2 arayüz yaratacak veth0ve veth1. Onları bir borunun 2 ucu olarak düşünün. Gönderilen herhangi bir trafik veth0ortaya çıkar veth1ve tersi de geçerlidir.

Trafiğin yönlendirilmesini istiyorsanız, şunları yapabilirsiniz:

sysctl -w net.ipv4.conf.veth0.forwarding=1

Bu, çekirdeğe gelen trafiği iletmesini söyleyecektir veth0(bu nedenle veth1kullanılan bitiş noktası için kullanın ).

Başka bir seçenek, veth0başka bir arayüz ile bir köprü kurmaktır. Ardından, sanal arabirimden gelen herhangi bir trafik, sanki makineniz basitçe bir anahtar gibi hareket ediyormuş gibi ağa yönlendirilir.

Bu trafikte yapabileceğiniz birçok şey var (onu masquerade edin, yönlendirin, DNAT, vb.), Ancak bu başarmaya çalıştığınız şeye bağlıdır.

Yıkmak için:

ip link del veth0

Harika şeyler, ancak bu durumda ihtiyacım olanı değil (sanal bir arabirime ihtiyacım vardı, böylece bir VM'in VBox dosya paylaşımlarını kullanmak yerine NFS paylaşımına sahip olması gerekiyordu)
STW

veth0 Örnekte IP adresi nasıl ayarlanır ?
MURATSPLAT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.