昇腾社区首页
中文
注册

配置网桥

QEMU需要配置虚拟网卡作为网关。

DHCP模式(动态IP)配置网桥

  1. 执行如下命令,查看虚拟网络是否正常。

    virsh net-list --all

    显示如下,则表示虚拟网络正常。

    [root@localhost home]# virsh net-list --all
     Name      State    Autostart   Persistent
    --------------------------------------------
     default   active   yes         yes
    [root@localhost home]#

    若与回显不一致,则参考2-6配置网桥。

  2. 执行如下命令,打开“/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>
  3. 执行如下命令,定义该虚拟网络。

    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
  4. 执行如下命令,查看虚拟网络是否正常。

    virsh net-list --all

    [root@localhost ~]# virsh net-list --all
     Name      State      Autostart   Persistent
    ----------------------------------------------
     default   inactive   no          yes
  5. 执行如下命令,设置为自启动。

    virsh net-autostart default

    [root@localhost ~]# virsh net-autostart default
    Network default marked as autostarted
  6. 执行如下命令,启动虚拟网络。

    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),参考如下步骤:

  1. 执行如下命令,查看默认网桥是否关闭。

    virsh net-list --all

    显示如下,则表示默认网桥关闭。

    [root@localhost home]# virsh net-list --all
     Name      State    Autostart   Persistent
    --------------------------------------------
     default   inactive   no         yes
    [root@localhost home]#

    若与回显不一致,则参考23关闭默认网桥。

  2. (可选)执行如下命令,关闭虚拟网络。

    virsh net-destroy default

    [root@localhost ~]# virsh net-destroy default
    Network default destroyed
  3. (可选)执行如下命令,关闭自启动。

    virsh net-autostart --disable default

    [root@localhost ~]# virsh net-autostart --disable default
    Network default unmarked as autostarted
  4. 执行如下命令,安装必要的工具软件。

    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!
  5. 执行如下命令,修改物理网卡对应的网络配置文件。

    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为虚拟网卡名称,用户自定义。
  6. 创建一个虚拟网卡的网络配置文件。

    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=后的值需要和物理网卡配置文件中保持一致。
  7. 执行如下命令,使配置生效。

    先生效虚拟网卡配置: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

  8. (可选)执行如下命令,重启系统,使配置生效。

    reboot

对于Ubuntu 20.04/Ubuntu 22.04,参考如下步骤:

  1. 执行如下命令,查看默认网桥是否关闭。

    virsh net-list --all

    显示如下,则表示默认网桥关闭。

    [root@localhost home]# virsh net-list --all
     Name      State    Autostart   Persistent
    --------------------------------------------
     default   inactive   no         yes
    [root@localhost home]#

    若与回显不一致,则参考23关闭默认网桥。

  2. (可选)执行如下命令,关闭虚拟网络。

    virsh net-destroy default

    [root@localhost ~]# virsh net-destroy default
    Network default destroyed
  3. (可选)执行如下命令,关闭自启动。

    virsh net-autostart --disable default

    [root@localhost ~]# virsh net-autostart --disable default
    Network default unmarked as autostarted
  4. 执行如下命令,安装必要的工具软件。

    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).
  5. 执行如下命令,修改网络配置文件。

    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配置保持一致。
  6. 执行如下命令,使配置生效。

    netplan apply

对于veLinux 1.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
    
  2. 执行如下命令,更新“/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 指本地环回接口,也称为回送地址。

  3. 执行如下命令,在“ /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
  4. 执行如下命令,重新启动网络服务。

    systemctl restart networking.service

  5. 执行如下命令,查看服务已经重新启动。

    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
  6. 执行如下命令,可查询新的br0接口和路由表。

    ip a s

  7. 执行如下命令,查看网桥相关信息。

    brctl show

    bridge name	bridge id		STP enabled	interfaces
    br0	        8000.e84d7429debf	no		ens3f3
    docker0		8000.0242f95b8fd4	no 
  8. 执行如下命令,显示当前网桥。

    bridge link

    5: ens3f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 4