web-dev-qa-db-ja.com

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

virbr0-nicのような仮想ネットワークインターフェイスを作成するにはどうすればよいですか? NIC like 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

したがって、virbr0virbr0-nicが接続されているブリッジです。では、virbr0-nicvnet1はどのように作成されるのでしょうか。

10
cosimo

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

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オフにする、など。

10
suprjami

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

# /usr/bin/tunctl -t virbr0-nic
5
Max A.

virbr0-nicは仮想ブリッジNICを表します。

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

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

brctl show 

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

brctl addbr <name>

どこ <name>は新しいブリッジの名前(virbr0-nicとして)になります。次に、次のコマンドでブリッジにインターフェースを追加できます

brctl addif <brname> <ifname>

詳細は man page を参照してください。

3

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

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

ip link add veth0 type veth peer name veth1

この例ではveth0およびveth1は、例のために思いついた任意のインターフェース名です。この方法は、たとえば、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
kasperd

しかし、私はこの/ 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自体がアクティブ化されないようにすることができます。前者はVM libvirtdのデフォルトネットワークに接続されているゲストがネットワーク接続できないようにし、後者は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
1
Aktony