Linux网桥介绍
网桥的功能类似于二层交换机,作用都是划分冲突域,它们之前且一些细微的差别,此处不展开。
Linux网桥作为一个特殊的网桥的实现,有一些自己的特点,因为没有看代码,只能从功能上简单分析一下。个人认为,Linux网桥与二层交换中最大的不同就是网桥对应一个虚拟网络设备,可以直接收发数据包。因为Linux设备本身也是一个主机,可以直接收发数据包,也可以直接接收数据包,这使得Linux网桥的功能有点类似于三层交换机。
Linux的网桥功能由bridge模块实现,在应用层可以使用brctl通过ioctl方式来操作该模块。
要使用网桥,先要创建一个网桥,使用如下命令:
#brctl addbr br0
即可创建一个名为br0的网桥,同时也会创建一个br0的虚拟网络设备。
下一步需要将从设备添加到网桥中,要注意的是,网桥只能绑定以太网设备,使用如下命令:
#brctl addif br0 eth0
#brctl addif br0 eth1
假设还有一个网络设备为eth2,那么现在网络结构如下图所示:

由上图可见,从设备已经不可以直接与网络层协议之间收发数据包,只能通过网桥来中转,所以此时从设备的IP地址已经不再有用。另外,将网络设备添加到网桥后,设备会工作于混杂模式,即接收目的地址为所有MAC地址的数据包,由网桥来判断该数据包要发往何处,因此从设备的MAC地址也不再有意义。网桥会选取它的从设备的MAC地址中最小的作为自己的MAC地址(鸠占鹊巢了)。
可以为网桥对应的虚拟设备添加IP地址,这样就把该设备加入到路由系统,并通过该设备直接收发数据包。
事实上,家用无线路由器一般都是LAN与WLAN(无线)都绑定到网桥上,这样,WLAN与LAN就属于一个局域网,它们都可以通过网桥来访问路由器主机(即路由器内部的Linux主机)的服务,主要也就是DHCP,用于配置路由器的Web Server,Samba Server等由路由器自身提供的服务。因为网桥只能绑定以太网设备,所以无线设备(athx)最终也是通过以太网设备连接到网桥的。
当网桥收到一个数据包时,它会根据自己学习到的MAC地址表决定将数据包发向哪个端口(即从设备),也有可能是直接通过自己的虚拟网络设备传递给上层协议栈。如果是广播包,则向所有端口转发,且复制一份给自己的虚拟网络设备。网桥接收到的每个数据包都是更新它的MAC地址表。
当网桥的虚拟网络设备要发包时,会根据MAC地址表决定要发往哪个端口中或者广播到所有端口。
好像不分析代码也没什么好写的了,那就这与这么多吧。
Linux网桥介绍的更多相关文章
- linux 网桥的配置与实现
==================================================================================from: http://www.i ...
- 01 Linux入门介绍
一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 L ...
- Linux Epoll介绍和程序实例
Linux Epoll介绍和程序实例 1. Epoll是何方神圣? Epoll但是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select类似, ...
- Linux网桥
linux网桥的功能 转发数据包 网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除.网桥对站点所处网段的了解是靠"自学习&q ...
- Linux入门介绍
Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...
- Linux网桥模式配置
Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个brid ...
- linux网桥浅析
linux网桥浅析 原文链接:http://hi.baidu.com/_kouu/item/25787d38efec56637c034bd0 什么是桥接?简单来说,桥接就是把一台机器上的若干个网络接口 ...
- Linux 系统目录介绍
bin : bin 是Binary 二进制的缩写,就是可执行文件了.Bin目录下是用户常用的命令. sbin: 此目录下也是二进制文件 ,不过这里的命令是 超级用户如 root 这样的用户使用的. e ...
- Linux 网桥配置命令:brctl
Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个brid ...
随机推荐
- 我(webabcd)的文章索引
[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...
- HDU2084 数塔 (DP入门题)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- centos curl web站点监控实践
1,监控给定web站点的状态--站点请求返回代码,下载整个web站点页面文本到-o 指定的文本 curl -o /dev/null -s-silent -w--wirte-out "%{ht ...
- 关系型数据库事务处理ACID
ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性 (Isolation).持久性(Durability).一个支持事务( ...
- 虚拟机使用PuTTY、SSH Secure Shell Client前的配置
1 仅主机模式 2 检查子网IP 为192.168.154.0 3 进入虚拟机,检查IP地址 ip addr show 添加IP地址 ip addr add dev eno16777736 192.1 ...
- mac 上配置sublime text3插件
1.安装MAC 版 sublime text 3 安装插件管理器 打开Sublime,按下Control + `(Mac)或者Ctrl + `(Windows),然后粘贴上下面的代码: import ...
- KMP精讲
KMP算法 —— next 数组的应用 --- 前缀中最小循环节,最大重复次数 在大神的基础上添加了一点自己的理解: 从图片中可以看出next数组中存的值就是最近一次最近一次循环节的下标... 在KM ...
- Duanxx的STM32学习:STM32下载方式选择
前几天熟悉了STM32的启动方式.主要由Boot0和Boot1设置 如今须要解决的就是STM32的下载的问题. 一開始的时候,我选择的是SWD下载.这样的下载方式须要Boot0=0.Boot1=0.占 ...
- 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入
1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...
- CSS架构目标
擅长CSS的Web开发人员不仅可以从视觉上复制实物原型,还可以用代码进行完美的呈现.无需使用表格.尽可能少的使用图片.如果你是个名副其实的高手,你可以快速把最新和最伟大的技术应用到你的项目中,比如媒体 ...