物理アダプターのないマシンで仮想イーサネットインターフェイスを作成するにはどうすればよいですか?


68

私は、wifi nicはあるが物理イーサネットnicはない(wlan0、eth0はない)Dell XPS 13ウルトラブックを持っています。NFSでVagrantを使用するための仮想アダプターを作成する必要がありますが、典型的なifup eth0:1...失敗はであることがわかりましたignoring unknown interface eth0:1=eth0:1。に対して仮想インターフェイスを作成しようとしましたwlan0が、同じ結果が得られました。

物理インターフェイスなしでこのマシンに仮想インターフェイスを作成するにはどうすればよいですか?


まず、wlan0で使用されているドライバーがエイリアスをサポートしていることを確認してください。これは、仮想インターフェイスが通じるもう1つの名前です。このQ:unix.stackexchange.com/questions/108396/…への私のA経由の方法を参照してください。ところで、その物理デバイスがない場合、eth0に対してエイリアスを作成することはできません。
slm

ip次のコマンドを使用してIPを追加することもできます。xmodulo.com
slm

回答:


103

ダミーインターフェイスのセットアップ

ネットワークインターフェイスを作成したいが、それをバックアップする物理NICがない場合は、ダミーリンクタイプを使用できます。これらの詳細については、iproute2 Wikipedia pageをご覧ください

eth10の作成

このインターフェイスを作成するには、まずダミーのカーネルモジュールがロードされていることを確認する必要があります。次のようにこれを行うことができます:

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

ドライバーがロードされたら、好きなダミーのネットワークインターフェイスを作成できます。

$ sudo ip link set name eth10 dev dummy0

そしてそれを確認します:

$ 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の変更

必要に応じて、MACアドレスを変更できます。

$ 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

エイリアスを作成する

その後、eth10の上にエイリアスを作成できます。

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

次のように確認します。

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

または使用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

これをすべて削除しますか?

これをすべて解除したい場合は、次のコマンドを実行して実行できます。

$ 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

参照資料


4
このコマンドは機能しませんでした:sudo ip link set name eth10 dev dummy0ip link add dummy0 type dummy次のコマンドでdummy0インターフェイスを使用し使用しました。他のコマンドはうまく機能しました。ありがとう!
Ikrom

1
すごい、これはまさに新しいRHEL 7デバイス名(ethXではなく
emX

26

iproute2ツールキットを使用して仮想インターフェースを作成できます。

ip link add veth0 type veth peer name veth1

これは2つのインターフェイスを作成し、しますveth0veth1。それらをパイプの両端と考えてください。に送信されたトラフィックはすべてveth0出力されveth1、逆も同様です。

トラフィックをルーティングする場合は、次を実行できます。

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

これにより、カーネルからのトラフィックを転送するように指示されますveth0(そのveth1ため、使用されるエンドポイントに使用します)。

別のオプションは、ブリッジveth0と別のインターフェースをセットアップすることです。その後、仮想インターフェイスを通過するトラフィックは、マシンが単にスイッチとして機能しているかのようにネットワークにルーティングされます。

このトラフィックでできることは他にもたくさんあります(マスカレード、リダイレクト、DNATなど)が、それは何を達成しようとしているかによって異なります。

取り壊すには:

ip link del veth0

クールなものですが、この場合に必要なものではありません(VMがVBoxファイル共有を使用するのではなく、NFS共有をマウントできるように仮想インターフェイスが本当に必要でした)
STW 14

veth0 例でIPアドレスを設定する方法は ?
-MURATSPLAT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.