Linux Bridge VLAN

一、Linux Bridge VLAN

(1)是什么?

Bridge 是什么

VLAN 是什么

LINUX BRIDGE VLAN又是什么?------>

(2)解决什么问题?【应用场景】

应用背景

已一个实际问题引出

【应用场景】:

【网络扩展】

随着企业的发展,其网络需求也在不断增长,可能需要将多个物理网络连接起来以扩展网络的规模和容量。

·解决方案:VLAN可以通过跨多个交换机或路由器的VLAN trunking技术来连接不同的物理网络,使它们在逻辑上形成一个统一的网络。这样,不同地理位置的设备可以被分配到同一个VLAN中,实现资源共享和统一管理,同时保持网络的逻辑隔离。

网络虚拟化背景:overlay

二、结合linux 内核特性对Linux Bridge 协议栈的介绍

(1)VLAN

【概念】

【背景】

Vlan最初的概念是应用与交换机中,并且由硬件来划分vlan。

【分类】

·单交换机实现VLAN------基于port的vlan

基于Port的VLAN属于静态VLAN,它是划分网络最简单,最有效和最常用的方法,下面将在单台交换机上配置静态VLAN,来实现两个网段的数据隔离,以下实验是一种网络拓扑中最简单的拓扑结构图,适合于小型办公网络,其实验拓扑图如下.

·基于Port VLAN:最传统的方法是基于port的vlan,即每个vlan虚拟网由一个vlan_id标示,并由一个vlan_mask来标示哪些port和它同处于一个vlan虚拟网。硬件支持,可以不需要vlan_head就能完成vlan功能。

·跨交换机实现VLAN------trunk口

在实际的工作环境中,只在一台交换机上实现VLAN是远远不够的,通常需要跨越多台交换机实现VLAN划分网段,思科交换机通过使用Trunk干道端口的方式实现多台交换机数据共享,并实现跨交换机上的同一个VLAN之间的数据通信,其拓扑结构图如下:

·承载多个vlan的port称为trunk口,它上面收发的数据包必须含有vlan_head,以识别该包是属于哪个vlan。

【缺点】

由前面Linux中vlan的实现可知,发往vlan设备的数据包都被打上vlan_head,而vlan设备接收到的数据包都默认为有vlan_head,并将其去除。这是符合trunk口的定义的。

总之Linux下的VLAN模型,是一套虚拟化的架构,它为了虚拟出vlan端口,做得比较臃肿。如果把上图中下方的switch设备用Linux来驱动,该怎么模型化这个设备,还要充分利用硬件的特性,实现高效的vlan。

【协议】-IEEE802.1Q标准

VLAN的工作原理是基于IEEE 802.1Q标准。该标准规定了VLAN的标识符(VLAN ID),它是一个16位的数字,范围从0到4095。每个VLAN都有一个唯一的VLAN ID,用于标识不同的VLAN。

【实现】

当一个数据包需要被发送到VLAN时,交换机(Switch)【交换机是基于linux的,linux中的802.1q模块就是支持VLAN的】会将该数据包加上VLAN标识符(VLAN ID)。然后,该数据包会被发送到指定的VLAN。只有具有相同VLAN ID的设备才能接收该数据包。

【优势】

VLAN 的主要优点是能提高网络的灵活性和安全性。

·通过使用 VLAN,网络管理员可以根据需要来划分网络,而不是受到物理布局的限制。

·此外,VLAN 可以防止不必要的广播流量,提高网络的效率。

【借鉴材料】

https://lpoyx.blog.csdn.net/article/details/138918775?spm=1001.2101.3001.6650.2\&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-2-138918775-blog-137021517.235^v43^pc_blog_bottom_relevance_base4\&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-2-138918775-blog-137021517.235^v43^pc_blog_bottom_relevance_base4\&utm_relevant_index=3

(2)Linux 网络设备

网络设备有3类:

·传统的网络设备,它们不需要依赖于其它设备而独自存在,如eth0、loopback等;

·VLAN网络设备,它需要依赖于一个宿主设备,若宿主设备没了,它是不能工作的;

vlan_dev的硬件地址必须和real_dev相同,这样,发往vlan_dev的数据包才能被实际的硬件设备接收到。

【发送流程】

发送流程会直接调用hard_dev_start_xmit()函数,该函数首先对skb作一系列检查,包括vlan的检查,然后调用skb->dev->ops->ndo_start_xmit()发送。

首先来看对vlan的检查,参见dev.c中的hard_dev_start_xmit(skb)函数,其实很简单,检查skb中的vlan标志,若有,则插入vlan_tag,并修改skb->proto=802.1q,最后去除skb中的vlan标志。skb中为什么会有vlan标志,因为上层选择vlan_dev后,根据它的priv_flags(见上一节)可知道它是一个vlan设备,因此给它打上一个vlan标志。

·Bridge网络设备,它也是虚拟的,它依赖于从设备。(有了从设备才构成了一座桥)

(3)Bridge

【vlan与vxlan的区别】
区别

  1. 范围

    • VLAN:局限于本地交换机或同一交换机上,通常用于小范围的网络隔离。
    • VXLAN:可以跨越多个交换机或数据中心,扩展到更大的网络环境中。
  2. 封装

    • VLAN:直接在以太网帧中使用802.1Q标记。
    • VXLAN:使用UDP封装,将以太网帧封装在IP包中,通常使用UDP端口4789。
  3. 网络标识

    • VLAN:使用12位的VLAN ID,支持最多4096个VLAN。
    • VXLAN:使用24位的VNI(VXLAN Network Identifier),支持超过1600万个VXLAN网络。
  4. 弹性

    • VLAN:适合小规模和单个数据中心的网络。
    • VXLAN:适合大规模和跨数据中心的网络,提供更好的扩展性。

联系

  1. 网络分隔:两者都用于网络隔离和虚拟化,允许在同一物理网络中创建多个虚拟网络。

  2. 互补:VXLAN可以在VLAN的基础上扩展,利用VXLAN在更广泛的网络范围内实施VLAN的逻辑分隔。

(4)Linux Bridge VLAN (虚拟交换机)

【应用场景】虚拟交换机主要使用在云环境中,在虚拟机之间、虚拟机和外部网络之间实现网络的连通。

【发送流程】

因此只有当br0设置IP地址时,Bridge才有可能将数据包发往上层协议栈。

【涉及到的实际产品】

硬件产品

企业网络设备
1.交换机和路由器:

网络交换机: 一些企业级网络交换机基于 Linux 开发,使用 Linux bridge 和 VLAN 技术来提供高性能的 VLAN 支持。这些设备可以通过 Linux bridge 配置 VLAN 以满足不同部门或业务单元的网络隔离需求。

软件路由器: 如 VyOS、pfsense(在 Linux 环境下),利用 Linux bridge VLAN 功能实现复杂的网络拓扑、流量管理和 VLAN 隔离。

2.家庭路由器:

一些基于 Linux 的家用路由器(如 OpenWrt、DD-WRT)使用 Linux bridge 和 VLAN 技术来实现多 VLAN 配置,以便将不同类型的设备(如 IoT 设备、工作设备)隔离到不同的网络中。

软件产品

防火墙和网络安全设备:

防火墙: 一些基于 Linux 的防火墙产品(如 iptables-based firewall)使用 Linux bridge VLAN 来管理流量分隔、VLAN 过滤和流量控制,提供增强的网络安全功能。

数据中心和云计算

**a. 数据中心网络管理:

网络分段: 在数据中心环境中,Linux bridge VLAN 用于实现网络分段,以提供不同客户或应用的网络隔离。通过 VLAN,可以在物理服务器上实现虚拟网络结构。

虚拟网络功能(NFV): 网络功能虚拟化(NFV)中,Linux bridge VLAN 技术用于创建虚拟网络设备(如虚拟交换机、虚拟路由器)来支持灵活的网络配置。

私有云解决方案:

OpenStack: 在 OpenStack 环境中,网络服务(Neutron)可以利用 Linux bridge 和 VLAN 技术来配置和管理虚拟网络,为云中的虚拟机提供隔离的网络环境。

这些应用展示了 Linux bridge VLAN 技术在实际环境中的广泛使用,涵盖了从虚拟化、企业网络设备到数据中心和家庭网络的各种场景。通过灵活配置 VLAN 和网络桥接,用户可以实现网络流量隔离、管理和优化,以满足不同的网络需求。

以下是几种常见的企业网络设备,它们使用了 Linux bridge 和 VLAN 技术。这个表格包括了这些设备的名称、主要功能和特点、VLAN 支持的特性以及适用的场景。

设备名称 主要功能 特点 VLAN 支持特性 适用场景
VyOS 开源网络操作系统 基于 Linux 的虚拟路由器,支持丰富的网络功能 支持 VLAN 标签管理和桥接功能 中小型企业、网络虚拟化环境
pfSense 开源防火墙和路由器 提供防火墙、路由、VPN 等功能 支持 VLAN 标签配置和流量隔离 企业防火墙、网络管理
OpenWrt 开源路由器固件 高度可配置的路由器固件,支持多种网络功能 支持 VLAN 配置和桥接 家庭路由器、小型办公室
Cisco C8800 系列 企业级交换机 高性能、多层交换机,支持各种网络协议 支持 VLAN 标签管理、VLAN 路由和桥接 大型企业、数据中心
Juniper EX 系列 企业级交换机 高吞吐量、高可靠性 支持 VLAN 配置、桥接功能和跨 VLAN 路由 大型企业、数据中心
Arista 7280R 系列 数据中心交换机 高密度、高性能 支持 VLAN 标签管理、桥接和高级流量管理 数据中心、高性能计算环境
MikroTik CRS 系列 可编程交换机 多层交换机,支持网络编程和自动化 支持 VLAN 配置和桥接 小型到中型企业、教育机构
Ubiquiti EdgeSwitch 企业级交换机 支持多种管理功能和高性能 支持 VLAN 配置、管理和桥接 中小型企业、教育机构
Netgear ProSafe 系列 小型企业交换机 经济实惠,适合小型企业使用 支持基本的 VLAN 配置和管理 小型企业、办公室网络

设备特点说明:

  • VyOS: 作为一个全面的开源网络操作系统,VyOS 提供了完整的路由、VPN、防火墙等功能,适用于中小型企业和网络虚拟化环境。

  • pfSense: 提供强大的防火墙和路由功能,适用于企业级网络安全管理,支持复杂的 VLAN 配置。

  • OpenWrt: 一个灵活的路由器固件,适用于家庭和小型办公室的网络配置。

  • Cisco C8800 系列: 高性能企业交换机,适用于大型企业和数据中心环境,提供丰富的 VLAN 配置和管理功能。

  • Juniper EX 系列: 可靠的企业级交换机,适用于需要高吞吐量和多层交换功能的大型企业和数据中心。

  • Arista 7280R 系列: 数据中心专用的高性能交换机,支持高密度 VLAN 配置和流量管理。

  • MikroTik CRS 系列: 提供高度可编程的交换机功能,适合需要灵活配置的中小型企业和教育机构。

  • Ubiquiti EdgeSwitch: 性价比高的企业级交换机,适用于中小型企业和教育机构,支持基本的 VLAN 管理功能。

  • Netgear ProSafe 系列: 适合预算有限的小型企业,提供基本的 VLAN 支持和管理功能。

这些设备的选择和配置将根据企业的网络需求、预算以及对性能的要求来决定。

三、LINUX BRIDGE VLAN 竞品介绍

华为:

AR500, AR510, AR531, AR550, AR1500, and AR2500 V200R010 CLI-based Configuration Guide - Ethernet Switching
H3C

H3C的S5120系列交换机

锐捷:

CISCO:

Arista:

中兴:web配置改为桥接后会激活 CPU 的临时软桥接,是传统的 linux bridge ,此时 hardware offload 不会介入,所有的数据包处理通过 CPU 转发

华硕ASUS:RT-AX53U

相关推荐
Peter_chq33 分钟前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮1 小时前
Linux 使用中的问题
linux·运维
dsywws2 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零3 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge4 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱4 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
小林熬夜学编程5 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克5 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
BPM_宏天低代码5 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化
程思扬5 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节