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
したがって、virbr0
はvirbr0-nic
が接続されているブリッジです。では、virbr0-nic
とvnet1
はどのように作成されるのでしょうか。
これらはダミーデバイスです。あなたは走ることができます
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オフにする、など。
Libvirtはこの目的でTUNデバイスを使用しています。次のコマンドを使用して、このデバイスを手動で作成できます。
# /usr/bin/tunctl -t virbr0-nic
virbr0-nic
は仮想ブリッジNICを表します。
基本的には、物理ネットワークカードと仮想マシンの仮想ネットワークカードの間のブリッジです。
ブリッジインターフェイスを管理するには、brctl
コマンドを使用できます。あなたはすべてのブリッジされたインターフェースをリストすることができます
brctl show
必要に応じてブリッジを追加または変更します。新しいブリッジを作成するには
brctl addbr <name>
どこ <name>
は新しいブリッジの名前(virbr0-nicとして)になります。次に、次のコマンドでブリッジにインターフェースを追加できます
brctl addif <brname> <ifname>
詳細は man page を参照してください。
どのタイプのデバイスかは明確ではありません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を接続する仮想インターフェイスがあります。それらの詳細は、使用している仮想化ソリューションによって異なります。
しかし、私はこの/ 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デフォルトネットワークを無効にします
Virshコマンドを使用して、libvirtdのデフォルトネットワークを一時的に無効にすることができます。これは再起動後も持続しません。
起動時にlibvirtdデフォルトネットワークが作成されないように永続的に無効にするには:
Libvirtdデフォルトネットワークの削除libvirtdデフォルトネットワークを完全に削除するには:
virsh net-undefine default
RHEL5およびRHEL6の起動時にlibvirtdサービスが永続的に無効になるようにするには:
chkconfig libvirtd off
RHEL7の起動時にlibvirtdサービスが永続的に無効になるようにするには:
systemctl disable libvirtd.service