我如何创建虚拟网络接口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
答案1
这些是虚拟设备。您可以运行
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 等等。
答案2
libvirt 使用 TUN 设备来实现此目的。您可以通过以下命令手动创建此设备:
# /usr/bin/tunctl -t virbr0-nic
答案3
virbr0-nic
代表虚拟桥接 NIC。
它基本上是您的物理网卡和虚拟机虚拟网卡之间的桥梁。
要管理桥接接口,您可以使用该brctl
命令。您可以使用以下命令列出所有桥接接口
brctl show
并根据需要添加或修改桥梁。要创建新桥梁,请使用
brctl addbr <name>
<name>
您的新网桥名称为 virbr0-nic。然后,您可以使用以下命令向网桥添加接口
brctl addif <brname> <ifname>
您可以参考手册页了解更多信息。
答案4
但是我没有这个 /usr/bin/tunctl -t virbr0-nic,它是从 cockpit 安装的,当我使用虚拟机时我找不到删除选项,当它存在时可以,但是对于使用 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 默认网络
您可以使用 virsh 命令暂时禁用 libvirtd 的默认网络。此操作在重启后不会继续生效。
virsh net-destroy 默认
要永久禁用在启动时创建 libvirtd 默认网络:
virsh net-autostart default --disable
删除 libvirtd 默认网络 要永久删除 libvirtd 默认网络:
virsh net-undefine default
要永久禁用 RHEL5 和 RHEL6 上的 libvirtd 服务在启动时启动:
chkconfig libvirtd off
要永久禁用 RHEL7 启动时启动的 libvirtd 服务:
systemctl disable libvirtd.service