linux kvm网桥br简单理解和持久化配置

linux网桥简单理解和持久化配置

文章目录

  • 前言
  • 一、Linux 网桥是什么?
  • 二、网桥主要作用
  • 三、网桥配置命令及安装(CentOS系统)
    • 1 网桥配置命令
    • 2.持久化网桥配置

前言

linux bridge是网络虚拟化中非常重要的一种设备,今天就来学习下linux bridge的相关知识

一、Linux 网桥是什么?

现在的Linux 网桥可以看做是(三层的)虚拟交换机,功能和物理交换机一样,最常用的功能是链接虚拟机和容器–为虚拟机和容器提供一个虚拟交换机。

创建一个bridge后(br0),可以把其他的网络设备(比如eth0)attach到br0上,eth0称作br0的从设备。需要注意的是,eth0 attach到br0上,不是对应的将eth0插接到“交换机”br0上,而是eth0变成了br0的一个端口(网线插口)。那什么什么时候才是插入网线呢?

通常的网桥是二层设备,不需要有IP地址。但是linux网桥是虚拟网络设备,是有ip和mac的(br设备的MAC地址是它所有从设备中最小的MAC地址)。从设备(eth0)被attach到br上之后,它的IP及MAC都不再可用了(退化为一个端口了)且它们被设置为接收任何包(工作在链路层,且是混杂模式,不需要ip),最终由bridge设备来决定数据包的去向:接收到本机、转发、丢弃。

二、网桥主要作用

目前,虚拟网桥最主要的作用是为虚拟机提供一种网络链接的方式,常见的bridge网络结构图如下图所示:

在这里插入图片描述
原理说明:

bridge1设备attach eth0和tap0、tap1,此时bridge1可以视作交换机,eth0\tap0\tap1都是这个交换机的网口。虚拟机通过tap网口链接,虚拟机和主机、外部局域网主机是同一个局域网内的机器,可以设置成同一个网段的IP,虚拟机发出去的数据包先到达br1,然后由br1交给eth0发送出去,数据包都不需要经过host机器的协议栈,效率高.这里比较别扭的就是主机的eth0,退化成网口,bridge1接替它成为主机的上网设备。

这里说明下,主机上每创建一个tap设备(理解为虚拟网卡),则会增加一个vnet网卡设备,默认从vnet0开始,在启动对应的虚拟机后使用ifconfig命令可以看到多了一个vnet0的网卡名称,如下图所示:
在这里插入图片描述
使用brctl show命令可以看出当前网络关系如下:
在这里插入图片描述
vnet0是从属于网桥设备br0。

三、网桥配置命令及安装(CentOS系统)

在linux 中 配置网桥的命令比较多,以下是目前所知道的三种命令

1 网桥配置命令

  • 安装 bridge组件 或者iproute2或者virsh工具实现网桥配置

    方式1:yum -y install bridge-utils
    方式2:yum install -y iproute
    方式3:使用 virsh iface-*命令
    
  • brctl命令说明

    brctl addbr br1 			#创建网桥
    brctl addif br1 enp4s0 		#为网桥添加物理接口
    brctl delbr br1 			#删除网桥
    brctl delif br1 enp4s0 		#删除网桥接口
    brctl show 					#显示网桥列表信息
    brctl show br1 				#显示网桥br1的信息
    brctl showmacs br1 			#显示网桥的MAC地址信息
    brctl showstp br1			#显示网桥的stp信息
    brctl stp br-test on|off	#开|关stp
    
  • ip 命令说明

    ip link add br2 type bridge 			#创建网桥
    ip link set dev enp4s0 master br2		#为网桥添加物理接口
    ip link del br2 type bridge 			#删除网桥
    ip link set dev enp4s0 nomaster			#删除网桥接口
    ip addr show type bridge				#显示网桥列表信息
    ip addr show type bridge br2 			#显示网桥br2的信息
    
  • virsh iface-* 命令

    virsh  iface-begin                    生成当前接口设置快照,可在今后用于提交 (iface-commit) 或者恢复 (iface-rollback)
    virsh  iface-bridge                   生成桥接设备并为其附加一个现有网络设备
    virsh  iface-commit                   提交 iface-begin 后的更改并释放恢复点
    virsh  iface-define                   define an inactive persistent physical host interface or modify an existing persistent one from an XML file
    virsh  iface-destroy                  删除物理主机接口(启用它请执行 "if-down"virsh  iface-dumpxml                  XML 中的接口信息
    virsh  iface-edit                     为物理主机界面编辑 XML 配置
    virsh  iface-list                     物理主机接口列表
    virsh  iface-mac                      将接口名称转换为接口 MAC 地址
    virsh  iface-name                     将接口 MAC 地址转换为接口名称
    virsh  iface-rollback                 恢复到之前保存的使用 iface-begin 生成的更改
    virsh  iface-start                    启动物理主机接口(启用它请执行 "if-up"virsh  iface-unbridge                 分离其辅助设备后取消定义桥接设备
    virsh  iface-undefine                 取消定义物理主机接口(从配置中删除)
    

2.持久化网桥配置

对于centos而言,如果重启网络服务,则所有的配置则会消失,所以我们需要修改配置文件,才能永久保存网桥配置,持久化网桥配置,修改network的指定文件,网卡的配置文件在: /etc/sysconfig/network-scripts/ 下,命名规则: ifcfg-xxxx。 xxx为设备名称。

下面举例说明如何创建br1网桥设备以及将ens37网卡添加到网桥中去。

ifcfg-br1的配置内容:

TYPE=Bridge  #注意,这个地方一点要大写
DEVICE=br1  #指定设备名称,一定要与文件名中ifcfg-br1后的"br1"相同
ONBOOT=yes  #开机启动
IPADDR=192.168.1.1  #配置网桥的地址
NETMASK=255.255.255.0
GATEWAY=192.168.238.1  #指定网关

ifcfg-ens37的配置内容:

TYPE=Ethernet
NAME=ens37
DEVICE=ens37
ONBOOT=yes
BRIDGE=br1  #将该网卡桥接到br1上面去

重启网络,配置生效

systemctl restart network

brctl show查看网桥,此时ens37已经连接在网桥br1上
在这里插入图片描述

参考文章:
1、https://www.cnblogs.com/robotech/p/13770168.html
2、https://developer.aliyun.com/article/799102
3、https://www.cnblogs.com/doscho/p/6225807.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/120256.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android studio cmake生成.a文件(静态库)及调用(c c++)静态库.a

第一步生成静态库.a文件: cmake 语法如何生成静态库,就不介绍了,比较简单,我下文列出的参考资料里面有详细介绍。 add_library(${CMAKE_PROJECT_NAME} STATICsrc/CalculStatic.cpp)这一步有坑,我刚开始的时候&#x…

视频监控/视频汇聚/视频云存储EasyCVR平台HLS流集成在小程序无法播放问题排查

安防视频/视频云存储/视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频…

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS DMIPS(Dhrystone Million Instructions Per Second): DMIPS用于衡量计算机系统的整体指令执行性能,通常关注整数操作。它基于Dhrystone基准测试来计算,该测试主要包含整数运…

centOS下载与安装

1 下载centOS镜像 The CentOS Project 选择阿里云的镜像 2 下载虚拟机 Vmware workstation VMware - Delivering a Digital Foundation For Businesses 1 下载安装 centOs是一个操作系统,操作硬件的。所以需要有机器,可以使用虚拟机。 2 创建新的虚…

cocosCreator2.4.x 打包 ios ,xcode问题记录

Q:Uncaught ReferenceError: CC_PHYSICS_BUILTIN is not defined A:先clean build folder....,然后重新build Q:xcode 使用模拟器预览 报错 In /Library/Developer/Xcode/DerivedData/hello_world-djnvsdcqyfoqvdepilidvunfunto…

Sentinel配置的blockHandler方法不生效

①首先配置流控的资源名跟SentinelResource中的Value配置的一定要一直且唯一 ②其次blockhandler后面的方法一定要跟下面指定的方法名称是一样的 ③也就是我犯下的错误,一定要注意是上面那个才是Sentinel的,下面的是sun公司的…我说呢,一直…

LLM大模型推理加速 vLLM

参考: https://github.com/vllm-project/vllm https://zhuanlan.zhihu.com/p/645732302 https://vllm.readthedocs.io/en/latest/getting_started/quickstart.html ##文档 加速原理: PagedAttention,主要是利用kv缓存 使用: #…

springboot整合elasticsearch

matchAllQuery查询 BeforeEachvoid setUp() {this.client new RestHighLevelClient(RestClient.builder(HttpHost.create("http://43.139.59.28:9200")));}AfterEachvoid tearDown() throws IOException {this.client.close();} Testvoid testMatchAll() throws IOE…

【Yolov5+Deepsort】训练自己的数据集(3)| 目标检测追踪 | 轨迹绘制 | 报错分析解决

📢前言:本篇是关于如何使用YoloV5Deepsort训练自己的数据集,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第三部分内容:数据集的制作、Deepsort模型的训练以及动物运动轨迹的绘制。本文中用到的数…

解决微信小程序recycle-view使用百分比单位控制宽高时出现的内容溢出问题

recycle-view是微信小程序官方推出的一个经过优化的长列表组件,但是在使用百分比单位控制高宽时有个内容溢出问题,虽然它提供了height和width的参数可以设置宽高,但每次写列表都需要去js里获取宽高并设置是较为麻烦的,所以现在来着…

WordPress Page Builder KingComposer 2.9.6 Open Redirection

WordPress Page Builder KingComposer 2.9.6 Open Redirection WordPress 插件 KingComposer 版本2.9.6 以及以前版本受到开放重定向漏洞的影响。该漏洞在packetstorm网站披露于2023年7月24日,除了该漏洞,该版本的插件还存在XSS攻击的漏洞风险 图1.来自…

LeetCode(力扣)77. 组合Python

LeetCode77. 组合 题目链接代码 题目链接 https://leetcode.cn/problems/combinations/description/ 代码 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:result []return self.backtracking(n, k, 1, [], result)def backtracking(self, n, k…

Java Web3J :使用web3j监听、查询、订阅智能合约的事件

前面有文章写如何使用Docker-compose方式部署blockscout浏览器+charts图表,区块链浏览器已经部署成功了,同时我们在链上增加了治理投票流程,如何实时的把治理事件快速同步到浏览器呢?这时就想到了Web3J来监听智能合约的事件,来达到同步事件的效果 目录 Web3J简介功能简介m…

用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\07”目录下,如下图所示: 在计算机的色彩图像中存有三个通道,即 BGR 通道,根据三个颜色通道的亮度值来显示出不同的颜色&…

更健康舒适更科技的照明体验!书客SKY护眼台灯SUKER L1上手体验

低价又好用的护眼台灯是多数人的需求,很多人只追求功能性护眼台灯,显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到,然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯,拥有高品质光源&#xff…

MavenCentral库发布记录

最近发布了 Android 路由库 URouter,支持 AGP8、ActivityResult启动等特性。 把提交到 Maven Central 过程记录一下。 一、注册 Sonatype 账号,新建项目 注册 https://​​issues.sonatype.org 登录后,新建项目: 相关选项&…

[学习笔记] fhq Treap 平衡树

fhq Treap 也叫无旋Treap (好像?我也不知道) 反正我带旋 Treap 是不会滴,其他的平衡树也不会(但是会平板电视) fhq Treap 好写,码量小,缺点是常数比较大 定义 二叉搜索树 二叉搜…

使用QT操作Excel 表格的常用方法

VBA 简介 Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObj…

培训机构如何利用小程序提升服务质量

近年来,小程序成为了许多企业和机构进行线上业务拓展的新方式。对于培训机构来说,构建一个具有吸引力的小程序可以帮助他们更好地与学员进行互动和沟通,并提供更便捷的学习服务。那么,如何使用第三方制作平台来构建一个具有吸引力…

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…