KVM虚拟机网卡连接网桥

KVM虚拟机网卡连接网桥

在centos8 上取消了常用的网桥管工具来brctl,基本网络相关的配置信息全部可以通过nmcli 来实现,下面介绍在centos8 上对网桥的相关使用;

1、基本介绍:

[root@localhost ~]# nmcli --help

Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS

  -a, --ask                                ask for missing parameters

  -c, --colors auto|yes|no                 whether to use colors in output

  -e, --escape yes|no                      escape columns separators in values

  -f, --fields <field,...>|all|common      specify fields to output

  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f

  -h, --help                               print this help

  -m, --mode tabular|multiline             output mode

  -o, --overview                           overview mode

  -p, --pretty                             pretty output

  -s, --show-secrets                       allow displaying passwords

  -t, --terse                              terse output

  -v, --version                            show program version

      -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT

  g[eneral]       NetworkManager's general status and operations

  n[etworking]    overall networking control

  r[adio]         NetworkManager radio switches

  c[onnection]    NetworkManager's connections

  d[evice]        devices managed by NetworkManager

  a[gent]         NetworkManager secret agent or polkit agent

  m[onitor]       monitor NetworkManager changes

2、创建网桥

[root@localhost ~]# nmcli c add type bridge ifname br0 con-name br0

Connection 'br0' (7b309691-5b24-42ab-bb8c-5e1cc24eafbd) successfully added.

上面参数命令的解释:

type : 类型,常用的vxlan,vlan,bridge,bridge-slave等,用来定义设备的类型;

ifname:设备名字;

con-name : 连接名称;

创建完成后我们查看下网桥是否创建成功,

[root@localhost ~]# nmcli c

NAME        UUID                                  TYPE      DEVICE

bridge-br0  f5f43513-ba3f-49dc-a6a6-ad96e3b4bfc4  bridge    br0

eno4        d855cbac-278b-44c3-8ae6-05b6f9a44a1e  ethernet  eno4

eno1        9b2dabf2-c1d3-4479-bd7b-9dc56ff426a7  ethernet  --

eno2        2cb32179-6b65-4876-be77-b43ff9fad039  ethernet  --

eno3        dbd7996f-a932-4e9c-b5d2-6174653eaf23  ethernet  --

ens47f0     c5f2fd97-78e7-48c0-ad72-3015d542dca0  ethernet  --

ens47f1     8ef8d139-a398-43c8-ab3c-c28a179bba11  ethernet  --添加接口

[root@localhost ~]# nmcli c add type bridge-slave ifname ens47f1 master br0

Connection 'bridge-slave-ae58-ebf3b38afbae) successfully added.

这里的参数基本与之前的一致,注意设置类型即可,ifname 是需要添加到桥的接口名;

当接口添加完成后我们可以查看下简单的连接信息,如:

[root@localhost ~]# nmcli c

NAME                  UUID                                  TYPE      DEVICE

eno4                  d855cbac-278b-44c3-8ae6-05b6f9a44a1e  ethernet  eno4

br0                   f5f43513-ba3f-49dc-a6a6-ad96e3b4bfc4  bridge    br0

bridge-slave-ens47f1  7a2a9e70-7a49-4e8f-9f14-e5b4811cb5a5  ethernet  ens47f1

vnet0                 f97493c4-b6d1-4efc-a1fd-7562dddf3753  tun       vnet0

eno1                  9b2dabf2-c1d3-4479-bd7b-9dc56ff426a7  ethernet  --

eno2                  2cb32179-6b65-4876-be77-b43ff9fad039  ethernet  --

eno3                  dbd7996f-a932-4e9c-b5d2-6174653eaf23  ethernet  --

ens47f0               c5f2fd97-78e7-48c0-ad72-3015d542dca0  ethernet  --

ens47f1               8ef8d139-a398-43c8-ab3c-c28a179bba11  ethernet  --

当看具体的信息的时候可以添加show 参数,如:

[root@localhost ~]# nmcli c show bridge-slave-ens47f1

connection.id:                          bridge-slave-ens47f1

connection.uuid:                        7a2a9e70-7a49-4e8f-9f14-e5b4811cb5a5

connection.stable-id:                   --

connection.type:                        802-3-ethernet

connection.interface-name:              ens47f1

connection.autoconnect:                 yes

connection.autoconnect-priority:        0

connection.autoconnect-retries:         -1 (default)

connection.multi-connect:               0 (default)

connection.auth-retries:                -1

connection.timestamp:                   1589364882

connection.read-only:                   no

connection.permissions:                 --

connection.zone:                        --

connection.master:                      br0

connection.slave-type:                  bridge

connection.autoconnect-slaves:          -1 (default)

connection.secondaries:                 --

connection.gateway-ping-timeout:        0

connection.metered:                     unknown

connection.lldp:                        default

connection.mdns:                        -1 (default)

connection.llmnr:                       -1 (default)

connection.wait-device-timeout:         -1

802-3-ethernet.port:                    --

802-3-ethernet.speed:                   0

802-3-ethernet.duplex:                  --

802-3-ethernet.auto-negotiate:          no

802-3-ethernet.mac-address:             --

802-3-ethernet.cloned-mac-address:      --

802-3-ethernet.generate-mac-address-mask:--

802-3-ethernet.mac-address-blacklist:   --

802-3-ethernet.mtu:                     auto

802-3-ethernet.s390-subchannels:        --

802-3-ethernet.s390-nettype:            --

802-3-ethernet.s390-options:            --

802-3-ethernet.wake-on-lan:             default

802-3-ethernet.wake-on-lan-password:    --

bridge-port.priority:                   32

bridge-port.path-cost:                  100

bridge-port.hairpin-mode:               no

bridge-port.vlans:                      --

GENERAL.NAME:                           bridge-slave-ens47f1

GENERAL.UUID:                           7a2a9e70-7a49-4e8f-9f14-e5b4811cb5a5

GENERAL.DEVICES:                        ens47f1

GENERAL.STATE:                          activated

GENERAL.DEFAULT:                        no

GENERAL.DEFAULT6:                       no

GENERAL.SPEC-OBJECT:                    --

GENERAL.VPN:                            no

GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/123

GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/28

GENERAL.ZONE:                           --

GENERAL.MASTER-PATH:                    /org/freedesktop/NetworkManager/Devices/20

IP4.GATEWAY:                            --

IP6.GATEWAY:                            --

3、启动网桥

[root@localhost ~]# nmcli c up br0

Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/89)

查看下启动后的情况:

[root@localhost ~]# nmcli c show

NAME                  UUID                                  TYPE      DEVICE

eno4                  d855cbac-278b-44c3-8ae6-05b6f9a44a1e  ethernet  eno4

br0                   f5f43513-ba3f-49dc-a6a6-ad96e3b4bfc4  bridge    br0

bridge-slave-ens47f1  7a2a9e70-7a49-4e8f-9f14-e5b4811cb5a5  ethernet  ens47f1

eno1                  9b2dabf2-c1d3-4479-bd7b-9dc56ff426a7  ethernet  --

eno2                  2cb32179-6b65-4876-be77-b43ff9fad039  ethernet  --

eno3                  dbd7996f-a932-4e9c-b5d2-6174653eaf23  ethernet  --

ens47f0               c5f2fd97-78e7-48c0-ad72-3015d542dca0  ethernet  --

ens47f1               8ef8d139-a398-43c8-ab3c-c28a179bba11  ethernet  --

4、相关参数修改

1、修网桥的IP形式为手动;

[root@centos111 ~]# nmcli c modify br0 ipv4.method manual

如果不修改,那么桥会自动取IP,取不到状态将错误,导致网桥无法使用;

2、设置bridge 的IP信息;

[root@centos111 ~]# nmcli c modify br0 ipv4.addresses 192.168.1.111/24

3、设置网桥自动连接;

[root@centos111 ~]# nmcli c modify br0 autoconnect yes

5、虚拟机连接网桥

虚拟机连接网桥直接修改下虚拟机的网卡配置文件即可,网络部分修改如下:

    <interface type='bridge'>

      <mac address='52:54:00:ba:7c:55'/>

      <source bridge='br0'/>

      <model type='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

将内容添加到虚拟机的配置文件中,再启动虚拟机即可;

原文地址:https://www.cnblogs.com/juzib/p/12895896.html