virbr0-nicはどのように作成されますか?


11

次のような仮想ネットワークインターフェイスを作成するにはどうすればよいvirbr0-nicですか。のようなNICを作成する方法を見つけようとしていますvirbr0-nicが、インターネットで見つけることができるのは、のような物理インターフェースに接続されたインターフェースを作成する方法eth0:0です。私が書くとき

# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400e0af01   yes virbr0-nic
virbr1      8000.525400e8a6b1   yes virbr1-nic
                            vnet1

そうvirbr0するためのブリッジでvirbr0-nic取り付けられています。では、どのようにvirbr0-nicしてvnet1作成されますか?


通常、これは少しのソフトウェアに固有のブリッジのようなものに関連しています。あなたは本当に何をしようとしていますか?
ジャーニーマンオタク2013年

KVMをインストールしましたが、新しいNIC virbr0-nicが作成されていることに気付きました。このような独自のNICを作成するにはどうすればよいですか。
cosimo 2013年

回答:


10

これらはダミーデバイスです。あなたは走ることができます

modprobe dummy

と呼ばれるネットワークインターフェイスを作成しますdummy0

複数のデバイスが必要な場合は、たとえば5を作成できます

modprobe dummy numdummies=5

その後、これらのデバイスを他のネットワークデバイスと同様に制御できます。

それにMACアドレスを与える

ip link set dummy0 address aa:aa:aa:bb:bb:bb

それにIPアドレスを与える

ip addr add 10.0.0.1/24 dev dummy0

既存のブリッジに追加します

brctl addif virbr0 dummy0

セットアップ、ダウン、NATオフなど。


1
この回答は代替案よりも正しいようですが、デフォルトでKVMがセットアップするもの(virbr0-nic)と同等のインターフェースを作成することについての詳細はありません。
pepper_chico 2016

質問の投稿者は、ブリッジが何をするのか、ダミーデバイスが何をするのかを理解しているようで、彼は同様のインターフェースを作成する方法を知りたかっただけです。改善の余地があると思われる場合は、回答を改善していただけます。
suprjami 2016

6

libvirtはこの目的のためにTUNデバイスを使用しています。次のコマンドを使用して、このデバイスを手動で作成できます。

# /usr/bin/tunctl -t virbr0-nic

3

virbr0-nic 仮想ブリッジNICの略です。

基本的には、物理​​ネットワークカードと仮想マシンの仮想ネットワークカードの間のブリッジです。

ブリッジインターフェイスを管理するには、brctlコマンドを使用できます。あなたはすべてのブリッジされたインターフェースをリストすることができます

brctl show 

必要に応じてブリッジを追加または変更します。新しいブリッジを作成するには

brctl addbr <name>

どこ<name>あなたの新しい橋の名前になりますあなたがブリッジにインターフェイスを追加することができます.Then(virbr0-NICなど)

brctl addif <brname> <ifname>

追加情報については、manページを参照してください。


1
これは、実際には新しい「virbr1-nic」の作成については伝えていません。設定されるインターフェース(「virbr1-nic」)が以前から存在していることが暗黙のうちに含まれている新しい「virbr1」だけです。
pepper_chico 2016

物理的なものと仮想的なものの架け橋でもないと思います。パケットをルーティングするために、virbr0と物理間のマスカレードを行う必要があります。
ピートアッシュダウン

2

どのタイプのデバイスでvirbr0-nicありvnet1、セットアップ内にあるかは明確ではありません。ブリッジに含めると便利な仮想デバイスにはいくつかのタイプがあり、そのいくつかはipコマンドを使用して作成できます。

1つの種類の仮想デバイスはveth、接続された仮想イーサネットインターフェイスのペアを作成します。

ip link add veth0 type veth peer name veth1

この例veth0veth1は、私が例のために思いついた任意のインターフェース名です。この方法は、たとえば、2つのインターフェースの1つを別のネットワーク名前空間に移動する場合に役立ちます。

別の種類の仮想インターフェイスではvlan、物理インターフェイス上の特定の802.1qタグに接続された単一の仮想イーサネットインターフェイスを作成します。

ip link add link eth0 name eth0.10 type vlan id 10

ipコマンドで作成できるさらに多くのタイプの仮想インターフェースに関する情報が記載されたmanページがあります。manページの名前は、インストールされているバージョンに依存し、私はそれが名前の見ているip-linkか、単にip

さらに、仮想化を使用している場合は、ホストとVMを接続する仮想インターフェイスがあります。それらの詳細は、使用している仮想化ソリューションによって異なります。


1

しかし、私はこの/ usr / bin / tunctl -t virbr0-nicを持っていません。コックピットからインストールされたもので、仮想マシンを使用するときに削除オプションが見つかりませんsystemd-networkdでは、多くの問題があります。CockpitはNetwork-Managerとそこからの設定ファイルを使用します。インストール後、ネットワークがダウンし、すべてのデバイスとアプリケーションが起動し、多くの障害が発生します。

RHEL / CentOS 6,7システムの新規インストール後に 'ifconfig -a'を確認すると、インターフェースのvirbr0名が見つかります。新しくインストールしたCentOS 7システムの例を次に示します。

ifconfig -a

....

virbr0: flags=4099[UP,BROADCAST,MULTICAST]  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (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

virbr0-nic: flags=4098[BROADCAST,MULTICAST]  mtu 1500
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (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

virbr0インターフェースとはvirbr0ブリッジインターフェースは、libvirtdのデフォルトのネットワーク設定によって作成されます。libvirtdは、ホストがハイパーバイザーとして機能するための基礎を提供するサービスです。したがって、xen仮想化を使用していない場合は、起動時にlibvirtdのデフォルトネットワークがアクティブ化されないようにするか、起動時にlibvirtd自体がアクティブ化されないようにすることができます。前者は、libvirtdのデフォルトネットワークに接続されているVMゲストがネットワーク接続できないようにし、後者は、VMがまったく実行されないようにします。使用していない場合は問題ありません。libvirtdデフォルトネットワークを無効にする

  1. virshコマンドを使用して、libvirtdのデフォルトネットワークを一時的に無効にすることができます。これは再起動後は持続しません。

    virsh net-destroyのデフォルト

  2. 起動時にlibvirtdデフォルトネットワークが作成されないように永続的に無効にするには:

    virsh net-autostart default --disable

libvirtdデフォルトネットワークの削除libvirtdデフォルトネットワークを完全に削除するには:

virsh net-undefine default

RHEL5およびRHEL6の起動時にlibvirtdサービスが永続的に無効になるようにするには:

chkconfig libvirtd off

RHEL7の起動時にlibvirtdサービスが永久に無効になるようにするには:

systemctl disable libvirtd.service
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.