Linux中KVM桥接的配置

   2023-02-10 学习力0
核心提示:1. 原理1.1 说明在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法:1.在光盘安装的时候安装好虚拟化包或者PXE服务器上配置好虚拟化包2.手动在没有安装虚拟化组件的系统中安装虚拟化组件1.2 目的 如果我们搭建的环境是必须使

1. 原理

1.1 说明

在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法:

1.在光盘安装的时候安装好虚拟化包或者PXE服务器上配置好虚拟化包

2.手动在没有安装虚拟化组件的系统中安装虚拟化组件

1.2 目的 

如果我们搭建的环境是必须使用虚拟化的,或者说虚拟化是我们搭建这套环境的主要目的之一,那么我们在进行系统安装的时候将所有的虚拟化组件全部安装上,避免后期出现安装不全或者某些服务依赖关系没有解决好,这样排错的时间远远高于安装时候多装几个包的时间。

  在我们安装好虚拟化组件(RHEL6.0之后,系统自带的均是KVM,已经没有XEN虚拟化的支持了),会自动生成一个virbr0这样的桥接设备

1.3 查看桥接情况

[root@clovemzone ~]# brctl  show

bridge name    bridge id        STP enabled    interfaces

virbr0      8000.5254007543ce    yes          virbr0-nic
按照这篇文中所说:http://www.linuxidc.com/Linux/2013-08/88720.htm ,virbr0默认使用的是NAT方式跟虚拟机网卡进行通讯,在实际生产环境中我们多数情况下面使用桥接Bridge的方式进行物理机跟虚拟机的通讯,删除这个virbr0的方法在上面给出的链接中已经说明,这篇文章主要讲述Bridge的简单实现原理以及实际配置方法。

2. 相关阅读:

RHEL6 KVM虚拟化创建桥接网卡-网桥 http://www.linuxidc.com/Linux/2013-08/88517.htm

RedHat Linux KVM虚拟机桥接 http://www.linuxidc.com/Linux/2013-02/79934.htm

CentOS 5.6下KVM的安装/桥接设置/虚拟机创建及运行 http://www.linuxidc.com/Linux/2012-12/76883.htm

3. 网桥

假设我们的物理机上有一块有线网卡,在系统中显示为eth0,我们搭建将其配置成桥接设备br0

  我们经常所说的Bridge设备其实就是网桥设备,也就相当于想在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备eth0配置成br0,此时br0就成为了所谓的交换机设备,我们物理机的eth0也是连接在上面的。

[root@clovemzone ~]# brctl  show

bridge name      bridge id    STP enabled  interfaces

br0          8000.0025903afe42    no      eth0

4. 查看桥接设备

我们创建两个虚拟机之后,所有的虚拟机网卡均连接br0,此时查看br0上面连接的设备

Linux中KVM桥接的配置
[root@clovemzone ~]# brctl  show

bridge name      bridge id    STP enabled  interfaces

br0          8000.0025903afe42    no      eth0

                                            vnet0

                                            vnet1
Linux中KVM桥接的配置

为了让大家了解的更加透彻,可以通过下图并结合实际操作进行简单分析

5. 查看物理机网卡设备信息 图1所示

Linux中KVM桥接的配置
[root@master ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

    inet 192.168.3.176/24 brd 192.168.3.255 scope global eth0

    inet6 fe80::5054:ff:fea7:b756/64 scope link

      valid_lft forever preferred_lft forever
Linux中KVM桥接的配置

6. 配置桥接设备br0

Linux中KVM桥接的配置
[root@master ~]# rpm -q bridge-utils    //查看桥接软件是否安装

bridge-utils-1.2-9.el6.x86_64

[root@master ~]# brctl  show

bridge name    bridge id    STP enabled    interfaces
Linux中KVM桥接的配置

6.1 手动添加

Linux中KVM桥接的配置
[root@master ~]# brctl  addbr br0

[root@master ~]# brctl  show

bridge name    bridge id    STP enabled    interfaces

br0            8000.000000000000        no

[root@master ~]# brctl  addif br0 eth0

[root@master ~]# brctl  show

bridge name  bridge id        STP enabled  interfaces

br0        8000.000000000000        no        eth0
Linux中KVM桥接的配置

删除eth0上面的ip地址,将br0上面添加上固定ip地址

[root@master ~]# ip addr del dev eth0 192.168.3.176/24        //删除eth0上的IP地址

[root@master ~]# ifconfig  br0 192.168.3.176/24 up              //配置br0的IP地址并启动设备

[root@master ~]# route add default gw 192.168.3.1              //重新加入默认网关

6.1 查看配置是否生效

Linux中KVM桥接的配置
[root@master ~]# route      //查看默认网关

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.3.0    *              255.255.255.0  U    0      0        0 br0

default        192.168.3.1    0.0.0.0        UG    0      0        0 br0
Linux中KVM桥接的配置

 

6.3 查看网卡信息

Linux中KVM桥接的配置
[root@master ~]# ip addr show    //查看eth0跟br0的IP信息

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

    inet6 fe80::5054:ff:fea7:b756/64 scope link

      valid_lft forever preferred_lft forever

3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

    inet 192.168.3.176/24 brd 192.168.3.255 scope global br0

    inet6 fe80::5054:ff:fea7:b756/64 scope link

      valid_lft forever preferred_lft forever
Linux中KVM桥接的配置

 

6.4 测试同一网段连接是否成功

Linux中KVM桥接的配置
[root@master ~]# ping 192.168.3.1 -w2        //测试同一网段连接是否成功,判断网卡IP是否绑定正确

PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.

64 bytes from 192.168.3.1: icmp_seq=1 ttl=255 time=3.45 ms

64 bytes from 192.168.3.1: icmp_seq=2 ttl=255 time=4.20 ms

--- 192.168.3.1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 3.457/3.832/4.208/0.380 ms
Linux中KVM桥接的配置

 

6.5 测试不同网段连接是否成功

Linux中KVM桥接的配置
[root@master ~]# ping 192.168.1.1 -w2  //测试不同网段连接是否成功,判断网关是否添加成功

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=2.38 ms

64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=7.64 ms

--- 192.168.1.1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 2.381/5.011/7.642/2.631 ms
Linux中KVM桥接的配置

上面是通过命令进行的手动配置方法,但是大家都清楚,这些命令配置的结果在服务器重启之后就不能生效了,要想使得所有配置永久生效,我们还是需要通过配置文件进行配置,然后重启网卡设备,让系统帮我们配置,然后重启之后也是生效的。

通过上面的手动配置方法,大家可以清楚得看到一个桥接设备的配置流程,这个在你写到配置文件里面,然后让系统帮你配置的时候是看不到的 :) ,那么下面我们将所有的配置还原,通过配置文件进行相关自动化配置吧。

7. 还原原始配置

7.1 删除网关

Linux中KVM桥接的配置
[root@master ~]# route delete default            //删除默认网关

[root@master ~]# route -n

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.3.0    0.0.0.0        255.255.255.0  U    0      0        0 br0
Linux中KVM桥接的配置

 

7.2 查看桥接情况

[root@master ~]# brctl show

bridge name        bridge id                STP enabled        interfaces

br0                8000.525400a7b756        no                            eth0

 

7.3 删除br0上的eth0设备

[root@master ~]# brctl  delif  br0    eth0    //断开/删除br0上的eth0设备

 

7.4 让br0停止活动

[root@master ~]#ifconfig br0 down        //让br0设备停止活动

 

7.5 删除br0

[root@master ~]#brctl delbr  br0          //删除br0

 

7.6 查看br0是否依然存在

root@master ~]# brctl show                    //查看br0是否依然存在

bridge name        bridge id                STP enabled        interfaces

 

7.7 重新给eth0分配IP地址

[root@master ~]# ifconfig  eth0 192.168.3.176/24    //重新给eth0分配IP地址

 

7.8 重新加入默认网关

[root@master ~]# route add default gw 192.168.3.1  //重新加入默认网关

 

7.9 查看网卡

Linux中KVM桥接的配置
1234567891011 [root@master ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

    inet 192.168.3.176/24 brd 192.168.3.255 scope global eth0

    inet6 fe80::5054:ff:fea7:b756/64 scope link

      valid_lft forever preferred_lft forever
Linux中KVM桥接的配置

--------------------------------------------------------------------------------

8. 通过配置文件配置桥接设备

配置文件请自行备份

8.1 查看eth0文件

Linux中KVM桥接的配置
[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BRIDGE=br0
Linux中KVM桥接的配置

 

8.2 查看br0文件

Linux中KVM桥接的配置
[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.3.176

NETMASK=255.255.255.0

GATEWAY=192.168.3.1
Linux中KVM桥接的配置

 

9. 网卡文件参数详解:

9.1 ifcfg-eth0

Linux中KVM桥接的配置
Device              指定网卡设备名

TYPE                指定网卡的类型为以太网卡

ONBOOT        指定网卡是否开机启动,切记要设置为yes

BRIDGE            指定桥接设备,此处指定为br0设备

建议:以上变量(非变量值)均为大写。
Linux中KVM桥接的配置

 

9.2 ifcfg-br0

Linux中KVM桥接的配置
Device              指定网卡设备名

TYPE                指定网卡的类型为桥接

ONBOOT        指定网卡是否开机启动,切记要设置为yes

BOOTPROTO 指定网卡启动如何获取IP地址,设置静态

IPADDR          设置br0绑定的IP地址

NETMASK      设置子网掩码地址

GATEWAY      设置网关
Linux中KVM桥接的配置

建议: TYPE变量的变量值按照第一个字母大写,其余字母小写的原则,如Ethernet,Bridge

配置完成之后,重启网络服务

如担心干扰,建议停止NetworkManager 服务,这个服务挺讨厌

9.3 停止NetworkManager

[root@master ~]# service    NetworkManager stop

[root@master ~]#chkconfig NetworkManager off

[root@master ~]# service network restart

 

9.4 查看网卡

Linux中KVM桥接的配置
[root@master ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN

    link/ether 52:54:00:a7:b7:56 brd ff:ff:ff:ff:ff:ff

    inet 192.168.3.176/24 brd 192.168.3.255 scope global br0

    inet6 fe80::5054:ff:fea7:b756/64 scope link

      valid_lft forever preferred_lft forever
Linux中KVM桥接的配置

 

10. 查看桥接设备信息

[root@master ~]# brctl  show

bridge name  bridge id    STP enabled  interfaces

br0        8000.525400a7b756    no        eth0

 

11. 查看路由

Linux中KVM桥接的配置
[root@master ~]# route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.3.0    *              255.255.255.0  U    0      0        0 br0

link-local      *              255.255.0.0    U    1004  0        0 br0

default        192.168.3.1    0.0.0.0        UG    0      0        0 br0
Linux中KVM桥接的配置
  1. 由此,桥接设备br0已经配置成功,当创建虚拟机的时候选择虚拟网卡接口的时候选择br0即可

Linux中KVM桥接的配置

 

12. 进行虚拟机安装

开始安装虚拟机,此时查看桥接设备br0上面的网卡连接情况:

Linux中KVM桥接的配置
[root@master ~]# brctl  show

bridge name      bridge id    STP enabled  interfaces

br0          8000.0025903afe42    no      eth0

                                            vnet0
Linux中KVM桥接的配置

 

-----------------------------------------要克服生活的焦虑和沮丧,得先学会做自己的主人-----------------------------------------
 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 云计算中的OpenStack和KVM到底是什么
    云计算中的OpenStack和KVM到底是什么
    OpenStack是一个开放源代码云计算平台 openstack是云管理平台,其本身并不提供虚拟化功能,真正的虚拟化能力是由底层的hypervisor(如KVM、Qemu、Xen等)提供。 以下内容真的的背了一遍又一遍的内容,openstart组件介绍Nova:Nova是OpenStack的主要计算引擎,
    03-08
  • KVM 虚拟机联网方式:NAT 和 Bridge
    KVM 客户机网络连接有两种方式:用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些
    03-08
  • 如何在 CentOS 7 / RHEL 7 终端服务器上安装 KVM
    如何在 CentOS 7 / RHEL 7 终端服务器上安装 KV
    如何在 CnetOS 7 或 RHEL 7(Red Hat 企业版 Linux)服务器上安装和配置 KVM(基于内核的虚拟机)?如何在 CentOS 7 上设置 KVM 并使用云镜像 / cloud-init 来安装客户虚拟机?基于内核的虚拟机(KVM)是 CentOS 或 RHEL 7 的虚拟化软件。KVM 可以将你的服务
    03-08
  • kvm虚拟机扩容系统盘 虚拟机扩容c盘
    kvm虚拟机扩容系统盘 虚拟机扩容c盘
     一,宿主机扩容虚拟机系统盘环境文件系统CentOS 7XFS1.1查看虚拟机(以下操作在宿主机上)[root@office-prd-kvm-01 ~]# virsh list 4 office-com-ldap-01 running1.2查看虚拟机系统盘[root@office-prd-kvm-01 ~]# virsh domblklist office-com-ldap-01 目标 源
    03-08
  • kvm虚拟化介绍 kvm开源虚拟化系统
  • kvm学习笔记(一,基础概念) kvm 原理
    kvm学习笔记(一,基础概念) kvm 原理
    前言   阿里云的云主机,采用的kvm,今天就花了点时间研究了下。一、安装官方文档参考:http://www.linux-kvm.org/page/HOWTO二、快速建立一个基于vnc的虚拟机安装 桥接网卡命令创建虚拟机 virt-install \#--network bridge:br0如果主机网卡不是桥接模式
    02-10
  • KVM 内存虚拟化
    KVM 内存虚拟化
    内存虚拟化的概念    除了 CPU 虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机。虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存地址空间,这个地址空间无需和下面的物理机器内存直
    02-10
  • 在Ubuntu1804中通过KVM创建bridge型的网络虚拟机
    在Ubuntu1804中通过KVM创建bridge型的网络虚拟
    桥接网络可以运行在宿主机上的虚拟机使用和宿主机同网段的IP,并且可以从外部直接访问到虚拟机。目前企业中大部分场景都是使用桥接网络第一步:首先在宿主机上创建桥接网卡,如下:Ubuntu1804创建桥接网卡 1 # cat/etc/netplan/01-netcfg.yaml 23 # This file
    02-10
  • 通过python-libvirt管理KVM虚拟机 代码实现
    初步代码 [python] view plain copy span style="font-size:18px;"''''' Work with virtual machines managed by libvirt     :depends: libvirt Python module '''  # Special Thanks to Michael Dehann, many of the conce
    02-10
  • kvm初体验之八:调整vm的vcpu, memory, disk大
    TD P { margin-bottom: 0 }P { margin-bottom: 0.08in }假设host上创建的vm的名字为vm1。1. 查看vm1的domain information[root@tang*** thm]# virsh dominfo vm1 Id: 10Name: vm1UUID: e2597379-5cc5-4ffa-0531-a073a81c5811OS Type: hvmState: runningCPU(s)
    02-10
点击排行