IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 虚拟局域网vlan理论 -> 正文阅读

[网络协议]虚拟局域网vlan理论

VLAN (Virtual Local Area Network)即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同LAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。

早期局域网

早期的局域网LAN技术是基于总线型结构的,它存在以下主要问题:

1.若某时刻有多个节点同时试图发送消息,那么它们将产生冲突。

2.从任意节点发出的消息都会被发送到其他节点,形成广播。

3.所有主机共享一条传输通道,无法控制网络中的信息安全。

4.这种网络构成了一个冲突域,网络中计算机数量越多,冲突越严重,网络效率越低。同时,该网络也是一个广播域,当网络中发送信息的计算机数量变多时,广播流量将会耗费大量带宽。因此,传统局域网不仅面临冲突域太大和广播域太大两大难题,而且无法保障传输信息的安全。

5.为了扩展传统LAN,以接入更多计算机,同时避免冲突的恶化,出现了网桥和二层交换机,它们能有效隔离冲突域。网桥和交换机采用交换方式将来自入端口的信息转发到出端口上,克服了共享网络中的冲突问题。但是,采用交换机进行组网时,广播域和信息安全问题依旧存在。

6.在交换网络中,交换机的每一个端口处在一个冲突域中,且终端主机独占端口带宽

7.为限制广播域的范围,减少广播流量,需要在没有二层互访需求的主机之间进行隔离。路由器是基于三层TP地址信息来选择路由和转发数据的,其连接两个网段时可以有效抑制广播报文的转发,但成本较高。因此,人们设想在物理局域网上构建多个逻辑局域网,即VLAN。
?

VLAN技术

vlan技术能够隔离广播域,?

1.VLAN技术可以将一个物理局域网在逻辑上划分成多个广播域,也就是多个VLAN。VLAN技术部署在数据链路层,用于隔离二层流量。同一个VLAN内的主机共享同一个广播域,它们之间可以直接进行二层通信。而VLAN间的主机属于不同的广播域,不能直接实现二层互通。这样,广播报文就被限制在各个相应的VLAN内,同时也提高了网络安全性。

2.本例中,原本属于同一广播域的主机被划分到了两个VLAN中,即,VLAN1和VLAN2。VLAN内部的主机可以直接在二层互相通信,VLAN1和VLAN2之间的主机无法直接实现二层通信。

vlan的帧格式

vlan帧格式有两种一种是携带tag,一种是未携带。tag是一种区分不同vlan接口的表示

1.VLAN标签长4个字节,直接添加在以太网帧头中。


2.TPID: Tag Protocol Identifier,2字节,固定取值,0x8100,是IEEE定义的新类型,表明这是一个携带802.1Q标签的帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。


3.TCI: Tag Control Information,2字节。帧的控制信息,详细说明如下:
????????(1) Priority: 3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。当交换机阻塞时,优先发送优先级高的数据帧。
????????(2) CFT: Canonical Format Indicator,1比特。CFI表示NAc地址是否是经典格式。CFI为e说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
????????(3) VLAN Identifier: VLAN ID,12比特,在华为中,可配置的VLAN ID取值范围为0 ~4095,但是0和4095在协议中规定为保留的VLAN ID,不能给用户使用


4.在现有的交换网络环境中,以太网的帧有两种格式:
没有加上VLAN标记的标准以太网帧(untagged frame);有VLAN标记的以太网帧(tagged frame)。

VLAN中链路的类型

用户主机和交换机之间的链路为接入(access)链路,交换机与交换机之间的链路为干道(trunk)链路。

1.VLAN链路分为两种类型:Access链路和Trunk链路。
2.接入链路(Access Link):连接用户主机和交换机的链路称为接入链路。如本例所示,图中主机和交换机之间的链路都是接入链路。
3.干道链路(Trunk Link):连接交换机和交换机的链路称为干道链路。如本例所示,图中交换机之间的链路都是干道链路。干道链路上通过的帧一般为带Tag的VLAN帧。

PVID

PVID表示端口在缺省情况下所属的VLAN。(port vlan id)缺省情况下,交换机每个端口的PVID都是1。

?直白说 vlan是对于主机之间的形容,而PVID是对于交换机上面的相对应端口的形容,例如vlan1=PVID1? ? ? ? vlan2=PVID2? ? ? ? vlan1≠PVID2? ? ? ? vlan2≠PVID1

端口类型

????????ACCESS类型

?Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同。

Access端口在转发数据前会移除VLAN Tag。

1.Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。

2.Access端口收发数据帧的规则如下:
? ? ? ? (1)如果该端口收到对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID与该端的PVID相同时,接收该报文。当VLAN ID与该端口的PVID不同时,丢弃该报文。
????????(2) Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送。Access端口发往对端设备的以太网帧永远是不带标签的帧。

3.在本示例中,交换机的G0/0/1,G0/0/2,G0/0/3端口分别连接三台主机,都配置为Access端口。主机A把数据帧(未加标签)发送到交换机的G0/0/1端口,再由交换机发往其他目的地。收到数据帧之后,交换机根据端口的PVID给数据帧打上VLAN标签10,然后决定从G0/0/3端口转发数据帧。G0/0/3端口的PVID也是10,与VLAN标签中的VLAM ID相同,交换机移除标签,把数据帧发送到主机C。连接主机B的端口的PVID是2,与VLAN10不属于同一个VLAN,因此此端口不会接收到VLAN10的数据帧。
举个例子:PVID接收数据的时候打上PVID标签,转发的时候解除PVID标签? VLAN=PVID

????????Trunk类型

?????????

????????当Trunk端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。(tag再上面讲过,是vlan主机发送的数据帧)
????????当Trunk端口发送帧时,该帧的VLAN ID在Trunk的允许发送列表中:若与端口的PVID相同时,则剥离Tag发送;若与端口的PVID不同时,则直接发送。

看我们两台主机,设置了两个vlan,A和B是怎么过去的。

主机A要发给C,A发送了一个不带tag的包,到达了Access的PVID1,PVID1发现没偶tag,所以添加一个tag1发送到Trunk端口的PVID1,他们两个的端口不同但PVID是一样的,所以发现是1后拿掉tag1,转发出去,SWB的Trunk端口1看到发过来一个没有tag的包,然后添加tag1,然后发送到PVID1对应的vlan1的主机C就收到了。

主机B要发送给D,B发送一个不带tag的包给PVID20,20看到没有tag,所以添加个tag20发送到Trunk端口的PVID1,1看到PVID是20的,敢看查看这个20能不能通过(Trunk端口的PVID可以通过多个Access端口的PVID),发现可以通过并且保留源tag20,放行,来到SWB的Trunk的PVID1,这个1也要看看我下面有没有这个20的vlan,没有你就是白过的,发现有,保留源tag20直接放行,来到PVID20,剥离PVID20发送D。

1.Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。


2.Trunk端口收发数据帧的规则如下:
(1)当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN
ID列表中,
则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的vLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文。否则丢弃该报文。
(2)端口发送数据帧时,当VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时,保持原有Tag,发送该报文。


3.在本示例中,SA和SWB连接主机的端口为Access端口,PVID如图所示。SWA和SWB互连的端口为Trunk端口,PVID都为1,此Trunk链路允许所有VLAN的流量通过。当SwA转发VLAN1的数据帧时会剥离VLAN标签,然后发送到Trunk链路上。而在转发VLAN20的数据帧时,不剥离VLAN标签直接转发到Trunk链路上。


4.本征(native) vlan/pvid vlan:此类情况下数据帧在通过vlan的时候不携带tag
(1)发送本征vlan的数据帧的时候会去掉tag,以纯净的以太网2类帧发送
(2)接收到不带tag的帧时:增加本征vlan的tag
(3)本征vlan的pvid为1,也就是tag为1
?

????????Hybrid

Hybrid端口既可以连接主机,又可以连接交换机。

Hybrid端口可以以Tagged 或Untagged方式加入VLANR

?1.Access端口发往其他设备的报文,都是Untagged数据帧,而Trunk端口仅在一种特定情况下才能发出untagged数据帧,其它情况发出的都是Tagged数据帧。


2.Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN贞的Tag剥掉。华为设备默认的端口类型是Hybrid。


3.在本示例中,要求主机A和主机B都能访问服务器,但是它们之间不能互相访问。此时交换机连接主机和服务器的端口,以及交换机互连的端口都配置为Hybrid类型。交换机连接主机A的端口的PVID是2,连接主机B的端口的PVID是3,连接服务器的端口的PVID是100。

1.Hybrid端口收发数据帧的规则如下:
????????(1)当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLANID列表中,则接收该报文,否则丢弃该报文。
????????(2)当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。

?

2.Hybrid端口发送数据帧时,将检查该接口是否允许该VLAN数据帧通过。如果允许通过,则可以通过命令配置发送时是否携带Tag。
?

3.配置port hybrid tagged vlan vlan-id命令后,接口发送该vlan-id的数据帧时,不剥离帧中的VLANTag,直接发送。该命令一般配置在连接交换机的端口上。
?

4.配置port hybrid untagged vlan vlan-id命令后,接口在发送vlan-id的数据帧时,会将帧中的VLANTag剥离掉再发送出去。该命令一般配置在连接主机的端口上。
?

5.本例介绍了主机A和主机B发送数据给服务器的情况。在SWA和SWB互连的端口上配置了port hybrid tagged vlan 2 3 100命令后,SWA和SWB之间的链路上传输的都是带Tag标签的数据帧。在SWB连接服务器的端口上配置了port hybrid untagged vlan 2 3,主机A和主机B发送的数据会被剥离VLAN标签后转发到服务器。

就是能够通过配置来自由实现各个交换机和主机之间的通信,我觉得更方便也更麻烦。

vlan划分方法有很多中,但是最常见的大部分人用到都是端口划分方法。

此灵感及资料来自于前锋教育网络,感谢,感谢,感谢哦。

https://www.bilibili.com/video/BV1D44y1b7WW?p=10

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:47:24  更:2022-04-04 12:47:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:41:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码