配置网桥
QEMU需要配置虚拟网卡作为网关。
DHCP模式(动态IP)配置网桥
- 执行如下命令,查看虚拟网络是否正常。
virsh net-list --all
显示如下,则表示虚拟网络正常。
[root@localhost home]# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yes [root@localhost home]#
- 执行如下命令,打开“/usr/share/libvirt/networks/default.xml”文件。
vi /usr/share/libvirt/networks/default.xml
参考如下加粗字体内容修改。
[root@localhost ~]# vi /usr/share/libvirt/networks/default.xml <network> <name>default</name> <bridge name="virbr0"/> <forward/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254"/> </dhcp> </ip> </network>
- 执行如下命令,定义该虚拟网络。
virsh net-define /usr/share/libvirt/networks/default.xml
[root@localhost ~]# virsh net-define /usr/share/libvirt/networks/default.xml Network default defined from /usr/share/libvirt/networks/default.xml
- 执行如下命令,查看虚拟网络是否正常。
virsh net-list --all
[root@localhost ~]# virsh net-list --all Name State Autostart Persistent ---------------------------------------------- default inactive no yes
- 执行如下命令,设置为自启动。
virsh net-autostart default
[root@localhost ~]# virsh net-autostart default Network default marked as autostarted
- 执行如下命令,启动虚拟网络。
virsh net-start default
[root@localhost ~]# virsh net-start default Network default started
指定网段(静态IP)配置网桥
对于openEuler 22.03 LTS/openEuler 20.03 LTS/Kylin V10 SP2/Kylin V10/BC Linux 21.10/UOS V20(1050e)/CULinux 3.0/CentOS 7.5(5.10.0),参考如下步骤:
- 执行如下命令,查看默认网桥是否关闭。
virsh net-list --all
显示如下,则表示默认网桥关闭。
[root@localhost home]# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default inactive no yes [root@localhost home]#
- (可选)执行如下命令,关闭虚拟网络。
virsh net-destroy default
[root@localhost ~]# virsh net-destroy default Network default destroyed
- (可选)执行如下命令,关闭自启动。
virsh net-autostart --disable default
[root@localhost ~]# virsh net-autostart --disable default Network default unmarked as autostarted
- 执行如下命令,安装必要的工具软件。
yum install -y bridge-utils
[root@localhost ~]# yum install -y bridge-utils Package bridge-utils-1.7.1-2.oe2203sp2.aarch64 is already installed. Dependencies resolved. Nothing to do. Complete!
- 执行如下命令,修改物理网卡对应的网络配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-enp189s0f0
在配置文件末尾增加如下加粗字体标注的内容并保存。
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp189s0f0 ... BRIDGE=virbr0
- enp189s0f0为物理网卡名称。
- virbr0为虚拟网卡名称,用户自定义。
- 创建一个虚拟网卡的网络配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-virbr0
增加如下内容并保存。
TYPE=Bridge BOOTPROTO=static DEVICE=virbr0 IPADDR=x.x.x.x NETMASK=x.x.x.x GATEWAY=x.x.x.x
- virbr0为虚拟网卡名称,用户自定义。
- 虚拟网卡配置文件中IPADDR=、NETMASK=、GATEWAY=后的值需要和物理网卡配置文件中保持一致。
- 执行如下命令,使配置生效。
先生效虚拟网卡配置:ifup virbr0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
再生效物理网卡配置:ifup enp189s0f0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
若配置未生效,执行8。
- (可选)执行如下命令,重启系统,使配置生效。
reboot
对于Ubuntu 20.04/Ubuntu 22.04,参考如下步骤:
- 执行如下命令,查看默认网桥是否关闭。
virsh net-list --all
显示如下,则表示默认网桥关闭。
[root@localhost home]# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default inactive no yes [root@localhost home]#
- (可选)执行如下命令,关闭虚拟网络。
virsh net-destroy default
[root@localhost ~]# virsh net-destroy default Network default destroyed
- (可选)执行如下命令,关闭自启动。
virsh net-autostart --disable default
[root@localhost ~]# virsh net-autostart --disable default Network default unmarked as autostarted
- 执行如下命令,安装必要的工具软件。
apt install -y bridge-utils
root@ubuntu:~# apt install -y bridge-utils Reading package lists... Done Building dependency tree Reading state information... Done bridge-utils is already the newest version (1.6-2ubuntu1).
- 执行如下命令,修改网络配置文件。
vi /etc/netplan/00-installer-config.yaml
参考如下修改并保存:
# This is the network config written by 'subiquity' network: ethernets: enp189s0f0: dhcp4: false dhcp6: false bridges: virbr0: interfaces: [ enp189s0f0 ] addresses: [x.x.x.x/x] gateway4: x.x.x.x nameservers: addresses: [x.x.x.x] version: 2
- enp189s0f0为物理网卡名称。
- virbr0为虚拟网卡名称,用户自定义。
- 虚拟网卡的IP配置和物理网卡的IP配置保持一致。
- 执行如下命令,使配置生效。
netplan apply
对于veLinux 1.1,参考如下步骤:
- 执行如下命令,查询物理接口。
ip -f inet a s
回显如下,x.x.x.x/x表示所在物理接口。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 5: ens3f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet x.x.x.x/x brd x.x.x.255 scope global noprefixroute ens3f3 valid_lft forever preferred_lft forever 6: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever
- 执行如下命令,更新“/etc/network/interface” 文件。
vi /etc/network/interface
确保只有 lo,即loopback在“ /etc/network/interface”中处于活动状态。删除与 1查询的物理网卡相关的任何配置。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug ens3f3 #iface ens3f3 inet static # address x.x.x.x/x # gateway x.x.x.x # # dns-* options are implemented by the resolvconf package, if installed # dns-nameservers x.x.x.x # dns-search huawei
loopback 指本地环回接口,也称为回送地址。
- 执行如下命令,在“ /etc/network/interfaces.d/br0 ”中配置网桥(br0)。
vi /etc/network/interfaces.d/br0
在文件中增加如下配置。
auto br0 iface br0 inet static address x.x.x.x # 当前host侧主机的ip netmask 255.255.252.0 gateway x.x.x.x bridge_ports ens3f3 # 对应物理网卡设备 bridge_stp off bridge_waitport 0 bridge_fd 0
- 执行如下命令,重新启动网络服务。
systemctl restart networking.service
- 执行如下命令,查看服务已经重新启动。
systemctl status networking.service
回显信息如下,若状态为“active (exited)”,则表示服务已启动。
● networking.service - Raise network interfaces Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled) Active: active (exited) since Thu 2023-11-09 00:19:28 EST; 1 day 2h ago Docs: man:interfaces(5) Main PID: 3526 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 29491) Memory: 0B CGroup: /system.slice/networking.service
- 执行如下命令,可查询新的br0接口和路由表。
ip a s
- 执行如下命令,查看网桥相关信息。
brctl show
bridge name bridge id STP enabled interfaces br0 8000.e84d7429debf no ens3f3 docker0 8000.0242f95b8fd4 no
- 执行如下命令,显示当前网桥。
bridge link
5: ens3f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 4