Linux网桥简介、入门与配置

news2024/12/29 9:54:45

开始之前先得介绍一下什么是网桥,这里我们假设大家已经知道了物理的交换机是工作在链路层的。交换机的主要任务是在链路层查找转发表(mac地址与端口对应关系表),按照数据帧的目标mac地址,转发数据帧到相应的端口。那么什么是网桥呢,网桥是个远古的概念的,它是交换机出来前区别于工作在物理层的集线器(多端口中继器)的能将二个小的局域网在链路层连接成一个大的局域网,但又分成二个独立的冲突域的设备。有兴趣的可以自行考古(中继器,集线器,网桥,交换机的历史与区别)。简单的说我们可以将网桥理解为一个二口交换机。而Linux网桥,我们可以简单的把它理解为可以把一台多网卡的Linux主机设置成一台软件交换机来使用的软件。

1、通常的局域网络结构

  1. 以下为一个典型的交换机构成的网络:

在这里插入图片描述

  1. Linux网桥构建的网络(本文不讨论虚拟主机下的 Linux网桥的功能):
    在物理世界中,如果你有一台多网卡的主机,那么你就可以让其中一台主机替代交换机的功能,你可以在这台多网卡主机上创建一个Linux网桥,把部分或者全部所有网卡都加入到网桥里。再把其它主机连接到这台多网卡的主机上,那就形成了一个标准的局域网络。如下图。
    在这里插入图片描述

2、Linux网桥的功能

所以Linux网桥和交换机一样,有二大功能:

  1. MAC学习:学习MAC地址,它会关心每个收到或者发送的数据,关心数据包的来源MAC是从自己的哪个端口来的,然后慢慢的建立地址-端口的对照表(转发表)。

  2. 报文转发:每个发送一个数据包,它都会提取其目的MAC地址,从自己的地址-端口对照表(转发表)中查找应该由哪个端口把数据包发送出去,然后转发数据。

除了上述功能外,Linux网桥还会产生一个虚拟的网络接口,这个接口可以和普通的网卡一样,配置IP地址(静态或者DHCP),建立了Linux网桥的这台主机,以及所有连接在这个网桥上的设备,可以通过这个接口与外界进行IP网络层的通信(如上图中接收路由器分配的IP地址,通过路由器的上网)。

3、在ubuntu下如何使用netplan配置一个网桥

这是一台有4张网卡的主机,分别是enp2s0、enp3s0、 enp4s0、 eno1

ifconfig -a | grep mtu
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
enp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

我们准备把这4张网卡加入同一个网桥br0, 关闭所有网卡的DHCP请求功能,并开启这个网桥通过DHCP自动获取IP地址的功能。我们可以通过在/etc/netplan目录下增加一个br0.yaml文件,用于描述这个网桥,及关闭各个网卡的dhcp获取IP地址功能来实现Linux网桥。

xxx@xxx-HP-PC:~$ ls -l /etc/netplan/
总计 8
-rw-r--r-- 1 root root 104  89  2022 01-network-manager-all.yaml
-rw-r--r-- 1 root root 594  421 21:43 br0.yaml
  1. 用vi打开这个文件,
vi /etc/netplan/br0.yaml
  1. 把以下内容加入到这个文件中。
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
meihualing@xx-HP-PC:~$ cat /etc/netplan/br0.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      dhcp4: no
      dhcp6: no
    enp2s0:
      dhcp4: no 
      dhcp6: no 
    enp3s0:
      dhcp4: no 
      dhcp6: no 
    enp4s0:
      dhcp4: no 
      dhcp6: no 
  bridges:
    br0:
      interfaces:
        - enp2s0
        - enp3s0
        - enp4s0
        - eno1
      dhcp4: yes 
      dhcp6: yes 
      #addresses:
      #  - 192.168.3.166/24
      #routes:
      #  - to: default
      #    via: 192.168.3.1
      #nameservers:
      #  addresses: [192.168.3.1, 8.8.8.8]
      parameters:
        stp: false
  1. 使用netplan apply命令让网桥生效
sudo netplan apply

  1. 生效后,通过ip addr show和brctl show可以看到以下网络配置结果
  • 生成了一个br0网桥
  • 4个网卡都加入了br0网桥
  • 网桥接口br0通过DHCP请求,从上游 DHCP SERVER请求到了IP地址192.168.3.122
xxx@xxx-HP-PC:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:98:45 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:95:be brd ff:ff:ff:ff:ff:ff
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether a0:36:9f:57:18:d2 brd ff:ff:ff:ff:ff:ff
5: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 8c:dc:d4:41:8b:ac brd ff:ff:ff:ff:ff:ff
    altname enp0s25
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 82:61:84:35:97:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.112/24 brd 192.168.3.255 scope global dynamic noprefixroute br0
       valid_lft 604763sec preferred_lft 604763sec
    inet6 fe80::8061:84ff:fe35:97fb/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

xxx@xxx-HP-PC:~$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.8261843597fb	no		eno1
							enp2s0
							enp3s0
							enp4s0

4、最后构建出如下网络:

注意,任何一个网卡都可以做为和路由去去连接的物理网卡,这个网卡会负责起br0接口上的报文收发的工作。

                                         +- 网桥服务器---+
                                     +---+192.168.3.112|          +--电脑3-------+
                                     |   |       enp2s0+----------+ eth0        |
                                     |   |       enp3s0+----      |192.168.3.115|
                                     |   |  Bridge br0 |    |     +-------------+
                                     |   +-------------+    |       
                 +- 路由器 -----+     |                      | 
                 | Firewall    |     |   +--电脑1-------+    |     +--电脑4------+
(外网)----WAN-----+ DHCP server +-LAN +---+ 10.10.0.3   |    + ----+ eth0        |
                 | 192.168.3.1 |     |   +-------------+    |     |192.168.3.116|
                 +-------------+     |                            +-------------+
                                     |   +--电脑2-------+
                                     +---+ 10.10.0.4   |
                                         +-------------+

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

半导体存储电路

半导体存储电路 SR锁存器和触发器寄存器存储器存储器分类RAMSRAMDRAM ROMMROMPROMEPROMEEPROMFLASH原理发现者应用工作原理存储单元 磁盘硬盘机械硬盘&#xff08;HDD&#xff09;固态硬盘&#xff08;SSD&#xff09; SR锁存器和触发器 SR锁存器用于记忆1位二进制信号&#x…

C语言之二分查找

目录 一、二分查找算法 二、分支语句中应注意的小点 一、二分查找算法 所谓二分查找&#xff0c;就是要在一组有序的数列中&#xff0c;查找给定的数是否在此数列中。 最主要的步骤有三个&#xff1a; 1.确定被查找的范围的左右下标left、right 2.根据left和right&#xff…

工业品6大采购痛点,维度云ERP帮您解决

行业现状 近年来&#xff0c;中国采购市场竞争加剧&#xff0c;市场规模不断扩大&#xff0c;利润总额持续增长&#xff0c;但在整体采购市场环境上升的情况下&#xff0c;企业生产成本上升&#xff0c;产品售价下降&#xff0c;行业利润却持续减少&#xff0c;产品大量过剩&am…

家用洗地机到底好不好用?好用的洗地机分享

洗地机是一种非常实用的清洁设备&#xff0c;它与传统的拖把或清洗粉相比&#xff0c;洗地机能够更全面、更彻底地清洁地面&#xff0c;除去污渍和灰尘之余&#xff0c;还能去除有害物质如细菌、病毒等&#xff0c;保证地面的卫生环境。洗地机的自动清洗和吸污功能能够大幅缩短…

Java文件字符流和字节流中的实战

文件输入输出流 文件内容操作与实战字符流ReaderWriter 字节流inputStreamOutputStream实战&#x1f4aa; 文件内容操作与实战 文件的分类上一篇文章&#xff08;文件对象处理&#xff09;已经和大家讲解过了。本章主要文件主要针对于对文件内容的操作展开讲解&#xff0c;文件…

【golang学习笔记】——(一)安装golang

当前为了方便后续的编译和使用&#xff0c;在windows下进行go的安装。 一、msi安装 官网下载地址&#xff1a;https://golang.google.cn/ 进入Download选择Windows的msi文件下载即可 下载后进行默认或者自定义安装即可&#xff0c;golang无特殊配置&#xff0c;可按照默认安装…

算法篇——二叉树大集合上篇(js版)

222.完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在…

AutoGPT的出现,会让程序员失业吗?

最近&#xff0c;一个叫AutoGPT的模型火了&#xff0c;在GitHub上线数周Star数就直线飙升。截至目前&#xff0c;AutoGPT的Star数已经达到87k&#xff0c;马上接近90k&#xff0c;超过了PyTorch的65k。 根据AutoGPT的命名&#xff0c;就可以发现其神奇之处在于“auto”&#x…

从申请到调用:全国快递物流查询 API 使用教程

引言 面对越来越多的快递需求和快递公司的日益增多&#xff0c;手动查询快递状态的工作变得愈发繁琐。此时&#xff0c;一个全国快递物流查询 API 的出现能够极大地提高查询的效率和准确性&#xff0c;解决人工查询的问题&#xff0c;为用户提供更加便捷的服务体验。全国快递物…

ASEMI代理ADG1408YRUZ-REEL7原装ADI车规级ADG1408YRUZ-REEL7

编辑&#xff1a;ll ASEMI代理ADG1408YRUZ-REEL7原装ADI车规级ADG1408YRUZ-REEL7 型号&#xff1a;ADG1408YRUZ-REEL7 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;TSSOP-16 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;16 类型&#…

tftp+Filezilla文件双向传输(1)-centos(VMware)-win10(host)

目录 1.下载安装vsftpdtftptftp-server 2.配置服务 2.1 配置服务 修改文件 /etc/vsftpd.conf 2.2 配置服务 守护进程 /etc/xinetd.d/tftp 2.3 配置服务 tftp服务器 2.4 配置登录用户 2.4.1 修改selinux 2.4.2 匿名用户登录 2.4.3 新建账户&#xff0c;不能登陆系…

使用API Monitor巧妙探测C++程序中监听2620端口的模块

目录 1、问题说明 2、API Monitor工具介绍 2.1、API Monitor主要用途 2.2、如何使用API Monitor工具 3、使用API Monitor监测程序对bind函数的调用&#xff0c;定位启用2620端口的模块 3.1、为啥要监控socket API函数bind 3.2、编写演示代码进行说明 3.3、使用API Moni…

[SpringBoot框架]如何使用SpringBoot框架

SpringBoot框架的好处 如果不使用SpringBoot框架创建工程&#xff0c;而是创建一个Maven空工程,&#xff0c;在工程里面引入其它框架的时候&#xff0c;比如SSM&#xff0c;需要在pom.xml配置文件中添加框架相关的依赖&#xff0c;并且个别的框架还需要配置文件&#xff0c;在配…

nodejs+vue+elementui钢琴乐器培训课程报名管理系统

1绪论 5 1.1项目研究的背景 5 1.2开发意义 5 1.3项目研究内容 5 2开发技术介绍 6 2.1 B/S架构 6 前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&…

TCP协议在IM场景中涉及核心问题以及解决方案梳理

1. TCP协议是一种可靠的协议&#xff0c;但是在实际应用中&#xff0c;仍然需要应用程序来处理一些细节&#xff0c;以确保数据能够按照预期的方式传输。一些业务可能需要在TCP层面之上实现自己的可靠性机制&#xff0c;例如在应用层实现消息确认机制&#xff0c;以确保每个消息…

Seata强一致性事务模式XA的设计理念

承接上文分布式事务Seata-AT模式 XA规范是什么? 是分布式事务处理DTP&#xff08;Distributed Transaction Processing&#xff09;的标准。是描述全局的事务管理器和局部的资源管理器之间的接口规范。允许多个资源&#xff08;如数据库、应用服务、消息队列&#xff09;在同…

WPF教程(七)--依赖属性(3)--附加属性

一、 只读依赖属性 以前在对于非WPF的功能来说&#xff0c;对于类的属性的封装中&#xff0c;经常会对那些希望暴露给外界只读操作的字段封装成只读属性&#xff0c;同样在WPF中也提供了只读属性的概念&#xff0c;如一些 WPF控件的依赖属性是只读的&#xff0c;它们经常用于报…

jsp+springboot基于ssm的人才招聘求职网站推荐模拟考试系统java idea

登录需要随机数字验证码 管理员&#xff1a; 招聘管理 求职信息管理 &#xff0c; 招聘信息管理 人员管理 管理注册的用户进行审核操作 公告管理 发布公告新闻 &#xff08;公告我想不到啥意思&#xff0c;可修改或增加别的&#xff09; 个人信息 修改个人信息 招聘者&am…

【沐风老师】3dMax填充地形网格插件使用方法详解

3dMax填充地形网格插件使用方法 3dMax填充地形网格插件&#xff0c;它从等高线或现有网格创建和优化地形曲面。基于四边形的输出允许更容易的后期重构&#xff0c;例如使用推/拉绘制。常规的面大小可以减少渲染问题&#xff08;GI、置换&#xff09;&#xff0c;并且可以在其上…

如何实现Windows RDP 远程桌面异地跨网连接

Windows RDP远程桌面的应用非常广泛。远程桌面协议(RDP)是一个多通道(multi-channel)的协议&#xff0c;让使用者(所在计算机称为用户端或本地计算机)连上提供微软终端机服务的计算机(称为服务端或远程计算机)。大部分的Windows版本都有用户端所需软件&#xff0c;有些其他操作…