を使用して仮想マシンを作成すると、仮想マシンは次のvirt-install
XML構成を作成して自動的にネットワークインターフェイスに接続します。virbr0
<interface type="network">
<source network="default"/>
<mac address="52:54:00:6a:40:f8"/>
<model type="e1000e"/>
</interface>
今私はこれを複製しようとしています。
デフォルトのlibvirtネットワーク設定を確認すると、/var/lib/libvirt/dnsmasq/default.conf
ネットワークインタフェース名が何であるかがわかりますvirbr0
。
私はqemuに次の同じインターフェースを使用するように指示しました。
qemu-system-x86_64 -net nic -net bridge,br=virbr0" ...
しかし、XML設定のようにカスタムMACアドレスを指定する方法はわかりません。誰かが私を実現できますか?
Tapデバイスの場合、MACアドレスを次のように設定できるようです。
-netdev type=tap,id=net0,ifname=tap0,script=tap_ifup,downscript=tap_ifdown,vhost=on \
-device virtio-net-pci,netdev=net0,addr=19.0,mac=52:54:00:6a:40:f8
しかし、それは私が望むものではありません。私はその足を利用したかったのですvirbr0
。
答え1
いよいよ調べました!
したがって、virt-install
基本的に実行される操作は次のとおりです。
sudo virt-install --network network=default,model=e1000,mac=00:11:22:33:44:55
と同等qemu-system-x86_64
です:
INTERFACE_NAME="$(sudo cat /var/lib/libvirt/dnsmasq/default.conf | grep "^interface=" | cut -d'=' -f2-)"
sudo qemu-system-x86_64 -net nic,model=e1000,macaddr=00:11:22:33:44:55 -net bridge,br=${INTERFACE_NAME}
default
まず、ネットワークが有効になっていることを確認することをお勧めします。
if ! sudo virsh net-list | grep default | grep --quiet active; then
sudo virsh net-start default
fi
注:デフォルトのネットワーク全体はパッケージで提供されていますlibvirt-daemon-config-network
(少なくともFedoraでは)。
qemuのマニュアルページから:
-net nic[,netdev=nd][,macaddr=mac][,model=type] [,name=name][,addr=addr][,vectors=v]
Legacy option to configure or create an on-board (or machine default) Network Interface Card(NIC) and connect it either to the emulated hub with ID 0 (i.e. the default hub), or to the netdev nd. If model is omitted,
then the default NIC model associated with the machine type is used. Note that the default NIC model may change in future QEMU releases, so it is highly recommended to always specify a model. Optionally, the MAC ad‐
dress can be changed to mac, the device address set to addr (PCI cards only), and a name can be assigned for use in monitor commands. Optionally, for PCI cards, you can specify the number v of MSI-X vectors that the
card should have; this option currently only affects virtio cards; set v = 0 to disable MSI-X. If no -net option is specified, a single NIC is created. QEMU can emulate several different models of network card. Use
-net nic,model=help for a list of available devices for your target.
-net user|tap|bridge|socket|l2tpv3|vde[,...][,name=name]
Configure a host network backend (with the options corresponding to the same -netdev option) and connect it to the emulated hub 0 (the default hub). Use name to specify the name of the hub port.
virt-installのマニュアルページから:
NETWORKING OPTIONS
-w, --network
Syntax: -w, --network OPTIONS
Connect the guest to the host network. Examples for specifying the network type:
bridge=BRIDGE
Connect to a bridge device in the host called BRIDGE. Use this option if the host has static networking config & the guest requires full outbound and inbound connectivity to/from the LAN. Also use this if live migra‐
tion will be used with this guest.
network=NAME
Connect to a virtual network in the host called NAME. Virtual networks can be listed, created, deleted using the virsh command line tool. In an unmodified install of libvirt there is usually a virtual network with a
name of default. Use a virtual network if the host has dynamic networking (eg NetworkManager), or using wireless. The guest will be NATed to the LAN by whichever connection is active.
type=direct,source=IFACE[,source.mode=MODE]
Direct connect to host interface IFACE using macvtap.
user Connect to the LAN using SLIRP. Only use this if running a QEMU guest as an unprivileged user. This provides a very limited form of NAT.
none Tell virt-install not to add any default network interface.
If --network is omitted a single NIC will be created in the guest. If there is a bridge device in the host with a physical interface attached, that will be used for connectivity. Failing that, the virtual network called de‐
fault will be used. This option can be specified multiple times to setup more than one NIC.
Some example suboptions:
model.type or model
Network device model as seen by the guest. Value can be any nic model supported by the hypervisor, e.g.: 'e1000', 'rtl8139', 'virtio', ...
mac.address or mac
Fixed MAC address for the guest; If this parameter is omitted, or the value RANDOM is specified a suitable address will be randomly generated. For Xen virtual machines it is required that the first 3 pairs in the MAC
address be the sequence '00:16:3e', while for QEMU or KVM virtual machines it must be '52:54:00'.
filterref.filter
Controlling firewall and network filtering in libvirt. Value can be any nwfilter defined by the virsh 'nwfilter' subcommands. Available filters can be listed by running 'virsh nwfilter-list', e.g.: 'clean-traffic',
'no-mac-spoofing', ...
virtualport.* options
Configure the device virtual port profile. This is used for 802.Qbg, 802.Qbh, midonet, and openvswitch config.
Use --network=? to see a list of all available sub options. Complete details at https://libvirt.org/formatdomain.html#elementsNICS
This option deprecates -m/--mac, -b/--bridge, and --nonetworks