网桥用来连接不同的网段。使不同的网段能够相互通信,看起来很像三层的路由。它能够有多个port,从而能够将数据帧从一个port复制到另一个port。
这里要注意一点,linux下的网桥只能用于以太网。
来看下示意图:
其中一个是bridge,一个是route。
网桥的主要工作是从输入帧学习主机的位置,建立一个地址的表(也就是表明这个主机(mac地址)属于那个网络),然后基于这个表来复制输入帧到正确的位置。
这里虽然bridge只是起一个引导的作用,可是在下面两个情况下,网桥也有可能处理输入帧:
1 将输入帧up到上层协议栈。
比如说这个网桥刚好还是一个router。
2 将帧传递给协议处理handler.
这里主要是在STP(spanning tree protocol)中会用到
接下来来看网桥如何工作:
lan1和lan2中的任意主机发送帧,都会被这两个lan中的所有主机(包括)接收到,当网桥接收到后,将此帧拷贝到它的port上,这里也就是拷贝到另一个lan上。
这里可以看到这里有个问题,那就是假设host a发送一个帧到host b,而此时,这两个lan中的所有host都会接受到这个帧,这引起了极大地资源浪费。
可是网桥还是很聪明的,它有地址学习的功能:
当a第一次传递给b帧之后,网桥将会学习到a是在lan 1上,然后再当b传递数据给a时,网桥就不会传递多余数据给lan 2的主机了。
当网桥收到的地址是链路层广播(FF:FF:FF:FF:FF:FF)时,他就会将这个帧拷贝到其他所有的port.因此多播将不会被学习。
现在还有个问题,那就是局域网的主机是很容易变动的,举个例子,还是上面的情况,可是我把host a搬到lan 2上去了,而此时网桥还认为a在lan 1上,这个时侯数据传递就会出错了。
这里解决方法就是使用定时器来定时更新这个表,当地址第一次被学习到时,定时器开始运行,然后当这个地址(mac地址)被重新学习到时,重启这个定时器。这样,我们通过设置定时器,就可以定时更新学习表了。这里的定时器如果设的太短的话,会有个问题,那就是很容易使网桥不知道如何到达另外一个lan(原因是超时后会删掉这条记录,而此时又回到第一次发包的情况了)。网桥就会赋值帧到所有的port.
看下面的示意图:
网桥回路的产生.
先看下面的网络图:
这里有两个网桥,此时就有可能会产生回路。当主机a发送一个帧之后,网桥 1 和 2 ,我们假设同时收到这个帧(此时学习到a处于 lan 1),并同时发到lan2,此时他们还会给对方发送一个帧,而这个帧刚好是刚才帧的赋值,这个时侯就会使这两个网桥认为a 处于lan 2上。这个时侯更新查找表,然后把包又发给lan 1.这时就形成了回路。
我们用图来表示上面的网桥和lan的关系:
可以看到如果我们要打破这个回路只需要关闭掉网桥1 或网桥2 的一个端口就行了。
打破回路的算法基本所有算法书都有实现,在网络中寻找最佳无环路拓扑结构的算法是Spanning Tree Protocol,也就是如何在多个网桥和lan中实现无回路的网络。
- 大小: 39 KB
- 大小: 37.1 KB
- 大小: 26 KB
- 大小: 20.5 KB
- 大小: 8 KB
分享到:
相关推荐
在大型网络流量环境和中断方式处理的情况下,Linux网桥的系统中断处理开销随之急剧上升。这种情况下网桥的性能就成了网络环境的瓶颈。 本文首先介绍了以太网桥的相关内容,包括其工作方式、端口混杂工作模式、帧...
linux下的网桥原理和配置过程,虽然是2.4内核时代的产物但是命令和原理是相通的。
- **bridge-utils**:包含了创建和管理Linux网桥所需的工具,如`brctl`命令等。 #### 三、安装与配置 以Linux AS4操作系统为例,介绍如何配置透明网桥: 1. **准备环境**:确保系统中已经安装了`sysfsutils-1.2.0...
Linux网桥在OpenStack云计算平台中的应用是一项重要的网络虚拟化技术。在OpenStack中,网桥被用来桥接物理网络接口和虚拟机,或者多个虚拟机之间的网络通信。理解Linux网桥的原理和工作机制对于深入理解OpenStack的...
Linux 实现网桥的知识点 Linux 网桥是一种虚拟网络设备,它可以将多个以太网接口连接起来形成一个虚拟的网络接口,从而提高网络的可扩展性和可靠性。网桥的实现主要涉及到三个方面:查表、网桥数据转发和钩子函数的...
Linux网桥是一种网络设备,它允许在多个网络接口之间转发数据包,起到了连接不同网络段的作用,类似于硬件网桥。本文将深入探讨Linux网桥的实现原理、配置方法以及使用场景,帮助读者全面理解这一强大的功能。 一、...
基于 Linux 的网桥和 NAT 网关集成的实现 一、Linux 操作系统中的网桥和 NAT 网关集成 Linux 操作系统中,网桥和 NAT 网关集成是实现局域网络的关键技术之一。网桥是一种位于 OSI 参考模型数据链路层的设备,能够...
本文主要介绍了如何在Red Hat Enterprise 5.0环境下配置网桥,以便虚拟机可以顺利接入网络。 首先,理解网桥的概念至关重要。在Linux中,网桥是一种网络设备,它允许不同网络接口(如物理网卡eth0和eth1)之间进行...
基于Linux系统实现透明网桥式安全接入点.pdf
基于Linux以太网桥机制的计费系统.pdf
基于Linux的网桥防火墙的应用研究.pdf
例如,Linux网桥提供了一系列的命令行工具(brctl等)用于操作网桥的配置。通过这些工具,网络管理员可以轻松地创建网桥、添加和移除网桥上的端口、配置VLAN过滤和FDB等。 总结来说,Linux下的虚拟交换技术使得网络...
本文主要介绍了基于LINUX网桥实现隔离网闸技术的应用。隔离网闸技术是一种网络安全防护手段,它可以在链路层截获数据,并利用逻辑开关实现单向数据通过和应用层过滤等功能,从而在软件上实现了一个物理隔离网闸的...
基于Linux透明网桥的反垃圾邮件系统设计与实现
为满足中小规模的网络互联要求,本文将介绍应用 Linux 系统实现以太网桥、IP 路由器、IP 代理网关、Squid 代理网关等不同层次的网络互联技术。 一、多网卡安装 在 Linux 系统中,安装多个网卡是实现网络互联的前提...
在Linux内核版本2.6.28.8中,网桥模块是网络连接和通信的重要组成部分,它允许多个网络接口共享一个物理网络连接。网桥功能使得在局域网内部署虚拟机或者构建复杂的网络拓扑变得可能。在这个源码分析中,我们将探讨...
Linux网桥程序,如"bridge-utils-1.4",是Linux操作系统中用于网络设备桥接的重要工具。它允许用户将多个网络接口(如以太网卡)连接在一起,形成一个逻辑上的单一网络接口,从而实现不同网络之间的通信或者创建虚拟...
Linux 中的网桥实现是通过桥接模块来实现的。桥接模块主要包括网桥的配置、网桥的实现、网桥的数据结构和网桥的数据库维护等几个方面。网桥的配置包括网桥的初始化、添加删除端口等操作。网桥的实现包括网桥的数据...