一、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 可以防止不必要的广播流量,提高网络的效率。
【借鉴材料】
(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的区别】
区别:
-
范围:
- VLAN:局限于本地交换机或同一交换机上,通常用于小范围的网络隔离。
- VXLAN:可以跨越多个交换机或数据中心,扩展到更大的网络环境中。
-
封装:
- VLAN:直接在以太网帧中使用802.1Q标记。
- VXLAN:使用UDP封装,将以太网帧封装在IP包中,通常使用UDP端口4789。
-
网络标识:
- VLAN:使用12位的VLAN ID,支持最多4096个VLAN。
- VXLAN:使用24位的VNI(VXLAN Network Identifier),支持超过1600万个VXLAN网络。
-
弹性:
- VLAN:适合小规模和单个数据中心的网络。
- VXLAN:适合大规模和跨数据中心的网络,提供更好的扩展性。
联系:
-
网络分隔:两者都用于网络隔离和虚拟化,允许在同一物理网络中创建多个虚拟网络。
-
互补: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