MAC地址
MAC(Media Access Control,介质访问掌握)地址是网络设备的硬件标识,具有唯一性。MAC地址也称为物理地址或硬件地址,由网络设备制造商生产时烧入NIC(网络接口掌握器)中。MAC地址长48比特,分成块ID和设备ID两部分,前24位是OUI(Organizationally unique identifier,机构唯一标识符),后24位由厂商自行分配。MAC地址采取点分十六进制表示,如图1所示。
MAC地址格式

MAC地址常日分为:
单播MAC地址:单播MAC地址唯一标识以太网上的一个终端,该地址固化在硬件(如网卡)内部。
组播MAC地址:首字节末了一位为1(常日以0x01开头)的MAC地址,标志一组设备。
广播MAC地址:48位全1的MAC地址,标志本网段内所有设备。
网络中按照大字节序传输报文(即先传输高字节),而字节内先传输低位比特。因此,若发送的首位比特为0便是单播,否则为组播或广播。
MAC地址按生存期也可分为:
动态MAC地址:交流机在网络中通过数据帧学习到,有老化韶光,MAC地址和端口的对应关系会随着设备所连的交流机的端口的变革而变革。交流机关电重启后会消逝,需重新学习。
静态MAC地址:通过配置产生,不会被老化,MAC地址和端口的对应关系始终不变,但交流机关电重启后也会消逝,需重新配置。
永久MAC地址:通过配置产生,不会被老化,MAC地址和端口的对应关系始终不变,且交流机关电重启后也不会消逝。
冲突域和广播域
冲突域(物理层):不同主机或设备同时发出的帧可能会相互冲突的网络区域。一条导线上所有事情站的凑集,或一个物理网段上所有节点的凑集,或以太网上竞争同一带宽的节点的凑集都是一个冲突域。当冲突发生时,传送的帧可能遭到毁坏或滋扰,发生冲突的主机将根据802.3以太网的CSMA/CD规则在一段随机的韶光内停滞发送后续帧。其缺陷是每台主机得到的可用带宽很低,当冲突域内主机设备数量增加时,网络冲突将成倍增加,信息传输安全得不到担保。集线器连接的各设备便是一个范例冲突域,如图2所示。
范例的HUB构成的冲突域
广播域(数据链路层):网络中能吸收任一设备发出的广播帧的所有设备凑集。所有须要吸收其他广播的节点被划分为同一广播域或逻辑网段。连接在HUB和传统交流机端口上的所有节点构成一个广播域。当交流机收到广播帧时,它将该帧转发到自己除吸收该帧的端口外的每一个端口,每个连接设备都会吸收并处理该帧。
随着网络规模的扩大,广播域中广播报文相遇的次数也随之增加。所有这些广播报文会严重影响网络性能,若管理不当,乃至会导致全体网络的崩溃。
集线器、交流机、路由器
集线器
以太网集线器(HUB)从任一端口收到以太网数据帧后,都会将该帧广播到其它所有端口。集线器对应物理层,不同端口所连接的设备同时传数据时会引起冲突,故其冲突域和广播域是所有端口,既不能隔离冲突域也不能隔离广播域。非交流式HUB不能划分物理网段,由于它没有划分冲突域。
网桥和交流机
网桥和交流机位于数据链路层,基于MAC地址进行数据转发。网桥和交流机的每个物理端口属于一个冲突域,所有端口在一个广播域。两者均能隔离冲突域,但不能隔离广播域,不能阻挡广播并对网络进行逻辑分段。
网桥与交流机有以下不同之处:
网桥只有少数几个端口;交流机却可有上百个端口。
网桥速率比交流机慢,交流机采取硬件ASIC芯片进行线速转发交流,比网桥速率快。
网桥采纳存储转发的机制,等收到全部数据后再进行转发;而交流机除存储机制外还有直接转发机制,只需帧头到达处理后就可转发,不必等到所有数据都到达,故交换机处理速率比网桥快些。
鉴于网桥的局限性,当代交流LAN中已很少利用网桥。
路由器
路由器位于网络层,可以隔离冲突域和广播域。每个子网(subnet)属于一个广播域,不同子网间不能发送广播。因此,对广播进行掌握就必须利用路由器(或具有路由功能的三层交流机)。利用路由器后,可以路由器上的网络接口(LAN Interface)为单位分割广播域。
一样平常利用路由器和交流机把LAN分段为大量更小的冲突域和广播域。传统交流机对LAN分段的方法如图3所示。
传统LAN的分割
虽然交流机可缩小冲突域的规模(每个端口便是一个冲突域),但连接到交流机的所有端口的主机仍旧处于一个广播域中。传统交流机相连构成的一个广播域内广播帧的转发过程如图4所示。
传统交流机上的广播
图中是一个由5台二层交流机(SW1~5)连接了大量客户主机构成的网络。假设主机PC1要与主机PC2通信。以太网通信中必须在数据帧中指定目标MAC地址才能正常通信,故PC1必须先广播ARP要求信息,来考试测验获取PC2的MAC地址。交流机SW1收到ARP广播帧后,将其转发到除入帧端口外的其他所有端口,于是SW2和SW3收到广播帧,它们也将帧转发到各自的所有端口……终极同一网络中与交流机相连的所有主机(PC2-PC8)都吸收到该ARP要求。可见,本应发往PC2的ARP要求扩散至全体网络,不仅花费了网络整体带宽,而且收到广播帧的主机还要花费一部分CPU韶光对其进行处理。在网络规模较大时,大量广播帧将严重影响网络性能,造成广播风暴问题。此外,由于全体网络在一个广播域,所有用户都能不受掌握地直接访问和影响网络所有部分,进而威胁到网络安全性。
默认情形下,路由器不转发广播流量,因此可用于分割广播域。用路由器创建广播域将减少广播流量,并为单播通讯供应更多的带宽,每个路由器端口都连接到单独的网络,广播流量仅限于发出该广播的LAN网段内。但常日路由器网络接口较少(1~4个旁边),所能分割的广播域个数有限,且路由器相对交流机本钱也较高。而二层交流机一样平常带有多个网络接口,若能用其分割广播域,则会大大提高网络设计的自由度。
VLAN
VLAN(Vitual Local Area Network,虚拟局域网)是将物理网络划分成多个逻辑局域网的技能。一个VLAN便是一个广播域,亦即一个逻辑子网,在其内的站点可位于不同物理LAN上,但站点间像在同一个普通局域网上那样自由通信而不受物理位置的限定。利用VLAN技能,网络管理者可根据实际运用须要,在二层交流机上把同一物理局域网中的用户逻辑划分身分歧广播域,使具有相同需求或业务的用户处于同一广播域,不同需求或业务的用户处于不同的广播域。
在未设置任何Vlan的二层交流机上,任何广播帧都会被转发给除吸收端口外的所有其他端口。配置Vlan后,当交流机属于某Vlan的一个端口收到广播帧后,为担保同属一个Vlan的所有主机都收到该广播帧,交流机必须按照如下原则转发:
1) 发送给本交流机中同一个Vlan中的其它端口;
2) 发送给本交流机的包含该Vlan的所有汇聚链路,以便其它交流机上同一Vlan的端口也发送该帧。
图5给出交流机上创建两个Vlan后,主机发出的广播帧被转发的示例。为便于解释,以红、蓝两色识别不同Vlan(实际利用中以Vlan ID来区分)。个中端口1、2属于赤色Vlan,端口3、4属于蓝色Vlan。
Vlan分割广播域
可见,从PC1发出的广播帧仅被转发给同一Vlan内的其他端口,即同属于赤色Vlan的端口2,而不会再转发给属于蓝色Vlan的端口。就这样,Vlan通过限定广播帧转发的范围分割广播域,进而改进网络效率和安全性。
Vlan可理解为在逻辑年夜将一台交流机分割成数台虚拟交流机,且这些虚拟交流机互不相通。Vlan是广播域,而常日两个广播域间由路由器连接,广播域间来往的数据帧由路由器中继。因此,Vlan间的通信也须要路由器(或三层交流机)供应中继做事,即“Vlan间路由”。在Vlan之间配置路由器,使Vlan内部流量仍通过原来Vlan的内部二层网络进行,从一个Vlan到另一Vlan的通信流量通过路由进行三层转发,转发到目的网络后再通过二层交流网络把数据帧终极发送给目的主机。路由器不转发以太网广播帧,故Vlan间配置的路由器不会改变划分Vlan所达到的隔离广播的目的。
VLAN帧格式
以太网V2 MAC帧格式
以太网MAC帧格式有两种标准,即DIX(DEC,Intel,Xerox) Ethernet V2标准(RFC894)和IEEE 802.3标准。图6所示的是常用的以太网V2的MAC帧格式(事实标准):
以太网V2的MAC帧格式
以太网帧在链路层传输,故源和目的MAC地址又称链路层地址(link layer address),也称L2地址、二层地址或硬件地址。
类型(Type)字段表明上层利用什么协议。常用协议类型值如表1所示:
表1 常用协议类型值
数据(Data)字段为帧承载的数据内容,由一个上层协议的协议数据单元PDU构成。数据长度在46~1500之间,若上层协议数据单元长度少于46 字节,则必须添补该字段的别的部分,以担保MAC帧长度不小于64字节。
可见,一个以太网帧长范围为64~1518字节。
把稳:发包工具如Testcenter设置发包长度时会将CRC考虑在内,即帧长包含CRC的4字节;而抓包工具如Wireshark显示的帧长不包括CRC字段。
带VLAN的以太网帧格式
IEEE 802.1Q(俗称Dot One Q)标准在以太网数据帧中“发送源MAC地址”与“种别域(Type Field)”之间附加4字节的Vlan识别信息(标签),如图7所示:
插入Vlan后的以太网帧格式
TPID(Tag Protocol Identifier,标签协议标识)值规定为0x8100。设备缺省采取协议规定的TPID值,交流机通过TPID来确定数据帧是否附加基于IEEE802.1Q的VLAN信息。
TCI(Tag Control Information,标签掌握信息)字段分为Pri、CFI和VLAN三部分。Pri表示报文优先级(也称1p优先级、COS或1q优先级),CFI(Canonical Format Indicator)标识MAC地址在不同传输介质中是否以标准格式进行封装,常日为0(标准格式)。Vlan ID标识该报文所属的VLAN编号,取值范围为 0~4095,一样平常0和4095保留(复兴设备Vid=0表示priority-tagged帧)。
在交流网络环境中,以太网帧有两种格式:有些帧未附加四字节标签,称为未标记帧(ungtagged frame),有些帧附加四字节标签,称为带标记帧(tagged frame)。
在基于端口划分的Vlan中,每个802.1Q端口都会分配一个默认的Vlan ID,称为PVID(Port Vlan ID)或端口默认Vlan ID(default Vid),CISCO称之为native Vlan。端口吸收到的所有untagged帧都认为属于端口默认Vlan ID,并在端口默认Vlan ID内转发。
把稳,插入或剥除Vlan标签时均会对数据帧重新打算CRC。
VLAN链路与端口
VLAN链路类型
Vlan内的链路可分为:
接入链路(Access Link,或称访问链路):将没有也无法识别Vlan标签的设备(如用户主机)连接到配置Vlan的交流机端口。它只能传送不带标签(untagged)的以太网帧,且只与一个Vlan关联。
汇聚链路(Trunk Link,或称干道链路、中继链路) :连接两个能够识别Vlan标签的设备(如交流机),可传输发往多个Vlan的带标签(tagged)帧,可与多个Vlan干系联。
稠浊链路(Hybrid Link):既可传送不带标签的帧,也可传送带标签的帧。但对付一个特定Vlan,传送的所有帧必须类型相同,即对付一个Vlan,传送的帧要么不带标签,要么携带相同标签。
显示三种链路的差异:
Vlan链路类型
方案企业级网络时,很有可能会碰着从属同一部门的用户分散在同一座建筑中不同楼层的情形,此时可能须要考虑如何超过多台交流机设置Vlan。如不才图所示网络中,通过汇聚链路将不同楼层的四台主机设置为同一Vlan。
汇聚链路
如图所示,PC1发送的数据帧从SW1经由汇聚链路到达SW2时,帧内附加了表示属于赤色Vlan的标签。SW2收到数据帧后,检讨Vlan标签创造该帧属于赤色Vlan,故剥除标签后根据须要(单播、广播或组播)将复原的数据帧转发给其他属于赤色Vlan的端口。
若不该用汇聚链路,则需在两台交流机上各设一个红、蓝Vlan专用接口并用网线互联(接入链路)。但建筑楼层间的纵向布线比较麻烦,一样平常不能由基层管理职员随意进行。而且,VLAN越多,楼层间(严格地说是交流机间)互联所需的端口越多,端口利用率低,也限定网络的扩展。
汇聚链路承载多个Vlan的数据,负载较重,故汇聚链路必须支持100Mbps以上的传输速率。
默认情形下,汇聚链路会转发交流机上所有Vlan的数据,亦即汇聚链路同时属于交流机上所有的Vlan。实际运用中可能并不须要转发所有Vlan数据,因此为减轻交流机负载并减少带宽摧残浪费蹂躏,用户可设定限定能经由汇聚链路互联的Vlan。
VLAN端口类型
根据对Vlan帧的识别情形,交流机端口的类型(模式)分为Access端口、Trunk端口及Hybrid端口。
Access端口:交流机上连接用户主机的端口,只能连接接入链路。Access端口只属于一个Vlan,且仅向该Vlan转发数据帧。该Vlan的Vid = 端口PVid,故Vlan内所有端口都处于untagged状态。Access端口在从主机吸收帧时,给帧加上Tag标签;在向主机发送帧时,将帧中的Tag标签剥掉。
Trunk端口:交流机上与其他交流机或路由器连接的端口,只能连接汇聚链路。Trunk端口许可多个Vlan的带标签帧通过,在收发帧时保留Tag标签。在它所属的这些Vlan中,对付Vid = 端口PVid的Vlan,它处于Untagged port状态;对付Vid ≠ 端口PVid的Vlan,它处于Tagged port状态。
Hybrid端口:交流机上既可连接用户主机又可连接其他交流机的端口,它既可连接接入链路又可连接汇聚链路。Hybrid 端口许可多个Vlan的帧通过,并可在出端口方向将某些Vlan帧的Tag标签剥掉。
把稳,Access、Trunk和Hybrid端口是厂家对某种端口的称谓,并非IEEE802.1Q协议标准定义。
Access端口只属于一个Vlan,PVid便是其所在Vlan,故不用设置;Trunk和Hybrid端口属于多个Vlan,故须要设置PVid(缺省为1)。若设置端口PVid,则当端口收到不带Vlan Tag的数据帧时,对该帧加上Tag标记(Vid设置为端口所属的默认Vlan编号)并转发到属于PVid的端口;当端口发送Vlan Tag的数据帧时,若收帧的Vlan Tag和端口PVid相同,剥除Vlan Tag后再发送该帧。
Hybrid端口与Trunk端口在吸收数据时处理方法相同,差异在于发送数据时:Hybrid端口许可多个Vlan的数据帧发送时不带标签,而Trunk端口只许可默认Vlan的数据帧发送时不带标签。在同一交流机上Hybrid端口和Trunk端口不能并存,实际利用中可用Hybrid代替Trunk。
本Hybrid端口的PVid和相连的对端交流机Hybrid端口的PVid必须同等。
由于端口类型不同,交流机对帧的处理过程也不同。下表根据不同的端口类型分别先容。
表2 不同端口类型的Vlan帧处理办法
VLAN端口状态
交流机端口可配置为属于某个或某几个Vlan。端口状态指其在某个Vlan中的状态,该状态决定端口吸收到tagged或untagged帧时对该帧的处理办法。针对每个Vlan,端口有两种状态,即Tagged port和Untagged port。同一端口可根据不同Vlan ID设置Tagged或Untagged。
当为该端口配置其所属的Vlan时,若该Vlan的Vid = 端口PVid时,则端口在此Vlan中处于Untagged port状态;若Vid ≠ 端口PVid,则端口在此Vlan中处于Tagged port状态。
PVid只与报文的入口方向有关,对付进入交流机的无标签帧会打上进入端口的PVid标签;交流机内每个数据帧都带标签。Tagged/Untagged只与帧的出口方向有关,对付出端口为Untagged port的,转发帧时要剥除帧中的标签,否则保留标签。
VLAN划分办法
接入链路可事先设定,称为“静态Vlan”;也可根据所连主机而动态设定,称为“动态Vlan”。
静态VLAN
静态Vlan又称基于端口的Vlan (Port Based Vlan),即明确指定各端口属于哪个Vlan,如下图所示。
基于端口划分Vlan
根据端口划分Vlan因其大略而最为常用。但由于须要逐个端口地指定Vlan,因此当网络中主机数目较多时,操作就变得非常烦杂。并且,主机每次变更所连端口时,必须同时变动该端口所属Vlan的设定——这显然不适宜那些须要频繁改变拓扑构造的网络。
动态VLAN
动态Vlan紧张有:
基于MAC地址的Vlan (MAC Based Vlan)
基于子网的Vlan (Subnet Based Vlan)
基于用户的Vlan(User Based Vlan)
……
其差异紧张在于根据OSI参照模型哪一层的信息决定端口所属的Vlan。决定端口所属Vlan时利用的信息在OSI中的层面越高,就越适于构建灵巧多变的网络。
网络设备厂商可能利用私有协议实现基于子网和基于用户的Vlan,因此不同厂商的设备间互联时可能涌现兼容性问题。
基于MAC地址的VLAN
基于MAC地址的Vlan,便是通过查询并记录端口所连主机网卡的MAC地址来决定端口所属Vlan。假定MAC-A地址被交流机设定为属于Vlan10,则不论MAC-A地址的主机连在交流机哪个端口,该端口都会被划分到Vlan10内,如下图所示。
基于MAC地址划分Vlan
基于MAC地址划分Vlan,在初始设定时必须调查所连接的所有主机MAC地址并加以记录,事情量很大。而且这种划分方法会降落交流机实行效率,由于交流机每个端口都可能存在很多个Vlan组的成员,这样就无法限定广播包。此外,若主机(如条记本电脑)常常改换网卡,则不得不常常变动Vlan设定。
基于子网的VLAN
基于子网的Vlan,便是通过所连主机的IP地址来决定端口所属Vlan。同一子网的所有数据帧属于同一Vlan,从而将同一子网内的用户划分在一个Vlan内(与路由器相似)。纵然主机MAC地址改变,只要其IP地址不变,就仍可加入原来设定的Vlan,如下图所示。
基于子网划分Vlan
基于IP子网划分Vlan可按传输协议划分网段,有利于针对详细运用的做事来组织用户。再者,用户可在网络内部自由移动而不用重新配置主机,尤其是利用TCP/IP的用户。
这种方法的缺陷是效率,由于检讨每个数据包的网络层地址比较费时。同时由于一个端口也可能存在多个Vlan的成员,对广播报文也无法有效抑制。
基于用户的VLAN
基于用户的Vlan,则是根据交流机各端口所连的主机上当前登录的用户,来决定该端口属于哪个Vlan。用户识别信息一样平常是主机操作系统登录的用户,如Windows域中利用的用户名。
基于协议的VLAN
基于协议的Vlan将物理网络划分为基于协议的逻辑Vlan。在端口吸收帧时,它的Vlan由帧中的协议类型决定。例如,IP、IPX和Appletalk可能有各自独立的Vlan,IP 广播帧只被送到IP Vlan中的所有端口。
基于组播地址的VLAN
基于组播地址的Vlan由组播分组动态创建的。如每个组播分组对应一个不同Vlan,担保组播数据帧只被那些连接到相应组播分组成员的端口吸收到。这种划分办法效率不高,不适宜局域网。但因其将Vlan扩大至广域网,故灵巧性更高,且易于通过路由器进行扩展。
基于策略的VLAN
基于策略的Vlan是Vlan的最基本的定义。每个输入(无标签)帧都在策略数据库查看,该数据库决定该帧所属的Vlan。如建立公司管理职员之间往来电子邮件的特殊Vlan策略,以便不在其他地方被瞥见。
这种划分办法最为灵巧,具有自动配置能力,能够把干系用户连成一体,在逻辑划分上称为“关系网络”。网络管理员只需在网管软件中确定划分Vlan的规则(或属性),则站点加入网络时将会被“感知”,并被自动包含进精确的Vlan中。同时,也可自动识别和跟踪站点的移动和改变。
基于VLAN的转发与路由
Vlan内通信的主机同属一个广播域,主机之间的流量通过二层网络直接转发;Vlan间通信的主机位于不同广播域,主机无法直接通过ARP广播要求到对方的地址,此时必须借助三层路由器来完成通信。
路由器可视为各个Vlan的网关,因此通过路由器来相互通信的主机必须知道路由器的存在及其在本Vlan上的接口地址(默认网关)。在主机上配置默认网关后,对付跨Vlan的通信,主机会自动探求默认网关,并把报文交给默认网关转发而不是直接发给目的主机。
可见,当报文的目的MAC地址是网关地址(路由器或三层交流机MAC地址)时,该报文为三层报文。
二层转发
基于Vlan的二层转发流程紧张包括:确定和查找Vlan、查找和学习源MAC、查找目的MAC并转发数据帧。
1) 确定和查找Vlan:交流机端口吸收到一个数据帧时,首先通过TPID值判断该帧是否带标签[1]。
若是tagged帧,且Vid≠0,则在端口所属的Vlan表中查找该帧标签中的Vid是否存在,若存在,则进入下一步,否则丢弃该帧(或提交CPU处理);
若是tagged帧,且Vid=0(即priority帧[2]),则对该帧附加端口PVid使之成为tagged帧;
若是untagged帧,则对该帧附加端口PVid并指定优先级使之成为tagged帧。
注:①为提高处理效率,交流机内部所有数据帧均携带Vlan标签,以统一办法处理。故需对输入交流机的数据帧进行标签检讨并按需加上标签。
②802.1Q Vlan环境下,帧可分为tagged、untagged和priority-tagged三种。Tagged帧根据其携带的标签Vid进行MAC学习转发。Untagged和Priority-tagged帧进入交流机端口后根据PVid进行MAC学习转发。
2) 查找和学习源MAC:交流机在MAC转揭橥(Mac+Vid+Port)中查找收帧Vid对应的源MAC表项,未找到则学习收帧源MAC (将“源MAC+Vid+Port”添加到MAC表中);若找到则更新该表项的老化韶光。
注:MAC地址学习只学习单播地址,对付广播和组播地址不进行学习。组播MAC表项通过CPU配置建立。
3) 查找目的MAC:若目的MAC是广播或组播,则在所属的Vlan中广播或组播;否则在MAC表中查找是否存在Vid对应的目的MAC表项。
4) 转发数据帧:若在MAC表中查找到完备匹配的DMAC+Vid表项,则将该帧转发到表项中的相应端口(若相应端口为收帧端口,则应丢弃该帧);否则向所属Vlan内除收包端口外的其他所有端口洪泛该帧(洪泛广播的是未知单播帧而不是广播帧)。
图所示为二层转发的一样平常流程。
二层转发流程
【例】数据帧从PC1经由一台交流机转发到与另一台交流机相连的PC2并得到相应,如下图所示。
PC1向PC2发送信息
假设两台交流机刚刚开机(此时MAC地址表为空),其详细的转发过程如下:
①PC1发出的数据帧进入交流机SW1的Access端口后,按照端口PVid加上Vid=100的标签。交流机将该帧源MAC地址存入MAC地址表(学习),并将该帧洪泛到Vid=100的所有端口(除入端口外);
②SW1的Trunk端口属于Vid=100的Vlan,故接管这个标记为100的Tagged数据帧;而该端口在Vid=100上为Tagged port,因此在发送数据帧出交流机SW1时,不改变Tagged帧的构造;
③Tagged帧到达交流机SW2的Trunk端口,由于Trunk端口拥有VID=100的Vlan,故接管该帧;该Trunk端口不改变Tagged帧的构造,而是学习源MAC地址后把该数据帧洪泛给所有Vid=100的端口(除入端口外);
④SW2的Access端口吸收到该帧,剥除该帧的Tag标签后发送给PC2。
⑤PC2收到PC1发送的数据帧,并发送相应帧给PC1。
⑥经由与前述过程类似的转发,相应帧到达交流机SW1。交流机创造该帧的目的MAC地址已在MAC地址表中,则仅转发给PC1。
可见,收发双方同属一个Vlan的通信,统统处理均在二层网络内完成。
三层路由
路由器路由
利用路由器进行Vlan间路由时,大致有以下两种:
1) 用多个路由器端口分别与每个Vlan相连接。
2) 单个路由器接口与交流机的Trunk端口相连(称为dot1Q连接),使多个Vlan共享同一条物理连接到路由器。
办法1将交流机上用于和路由器互联的每个端口设为接入链路,再分别用网线与路由器上的独立端口互联。如下图所示,交流机上有两个Vlan,需在交流机上预留两个端口用于与路由器互联;路由器上同样须要有两个端口;两者之间用两条网线分别连接。
每个Vlan一个物理连接
如图,每个Vlan都要独占一个交流机端口和一个路由器端口,并需重新布设一条网线。而路由器上常日LAN接口有限,这无疑带来扩展性问题。
办法2将用于连接路由器的交流机端口设为汇聚端口,而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议也必须相同。接着在路由器上定义对应各Vlan的“子接口(Sub Interface)”。只管实际与交流机连接的物理端口只有一个,但在理论上可将其分割为多个虚拟端口。如下图所示。
Vlan Trunking
利用这种Vlan Trunking技能,可使多个Vlan的业务流共享相同的物理连接,通过在汇聚链路上通报带标签的帧来区分各Vlan的流量。常日情形下,Vlan间路由的流量不敷以达到链路的线速率,利用Vlan Trunking的配置,可提高链路的带宽利用率,节省端口资源以及简化管理(网络新增Vlan时只需在路由器上新设一个对应新Vlan的子接口,无需重新布线)
【例】不同Vlan间通信时数据的流程,如下图所示。
不同Vlan间通信流程
主机PC1通过通信目标IP地址(192.168.2.1) 与子网掩码打算比较创造PC2与本机不属于同一网段,不能直接访问。根据IP通信规则,PC1查找本机路由表探求相应的网关。在实际网络中,主机常日只配置默认网关(Default Gateway,GW),故PC1找到默认网关。然后,PC1在本机ARP高速缓存中查找默认网关(即路由器)的MAC地址,若没有则向外广播发送一个ARP要求帧,其目的MAC地址为全1,源MAC地址为本机MAC地址,要求的IP地址为网关192.168.1.100。从路由器返回的ARP单播应答帧中得到路由器MAC地址R后,接下来就按图中所示的步骤向PC2发送数据帧①,其目的MAC地址是路由器地址R、但目的IP地址仍是终极要通信的工具PC2的地址。
交流机在端口1上收到数据帧①后,检索MAC地址表中与端口1同属一个Vlan的表项。汇聚链路被视为属于所有的Vlan,因此端口6也属于检索工具。检索后交流机得知往MAC地址R发送数据帧时,需经由端口6转发。
从汇聚端口6发送数据帧时,会附加Vlan识别信息。图中数据帧②被加上原属的赤色Vlan标签后,进入汇聚链路。路由器收到数据帧②后,确认其Vlan标签,交由卖力赤色Vlan的子接口吸收。
接着,根据路由器内部的路由表,判断该向哪里转发。由于目标网络192.168.2.0/24属于蓝色Vlan,且该网络通过子接口与路由器直连,因此只需从卖力蓝色Vlan的子接口转发即可。此时数据帧的目的MAC地址被改成PC2的MAC地址;由于须要经由汇聚链路转发,故附加属于蓝色Vlan的识别信息(数据帧③)。
交流机收到数据帧③后,根据Vlan标签从MAC地址表中检索属于蓝色Vlan的表项。由于通信目标PC2连接在端口3上且该端口为接入端口,因此交流机剥除数据帧的Vlan标签后(数据帧④)转发给端口3,终极PC2成功收到PC1发来的数据帧。
可见,Vlan间通信时,纵然双方都连接在同一台交流机上,也必须经由“发送方→交流机→路由器→交流机→吸收方”这样一个流程。在进行三层路由转发时,数据包IP地址保持不变,MAC地址则在每个节点都会改变。
三层交流机路由
利用VLAN Trunking后,用传统路由器进行Vlan间路由在性能上存在一定的不敷:由于路由器采取通用CPU,转发完备依赖软件处理,同时支持各种通信接口,给软件带来较大包袱。软件要处理包括报文吸收、校验、查找路由、选项处理、报文分片等,导致性能不可能很高。就Vlan间路由而言,流量汇合中到路由器和交流机互联的汇聚链路部分,该部分随意马虎成为速率瓶颈。
由于Vlan间通信比较大略,只需查下路由表,以是可将交流机集成查路由表的专用芯片(ASIC),实现二层交流和三层路由的功能集成,即三层交流机(Layer 3 Switch)。
三层交流机的设计基于对IP路由的仔细剖析,提取出IP路由中每个报文都必经的简化过程:
IP路由中绝大多数报文不包含IP选项,因此多数情形下无需处理报文IP选项;
不同的网络报文长度不同,为支持各种异构网络的互连,IP实现了报文分片功能,但在全以太网环境中,数据帧(报文)长度固定,因此可裁减报文分片功能;
三层交流机采取与路由器最长地址掩码匹配不同的方法,利用精确地址匹配的办法处理,有利于硬件实现快速查找;
三层交流机采取Cache方法,将最近常常利用的主机路由放入硬件查找表。只有在该Cache中无法匹配到的条项才通过软件转发。这样,只有每个流的第一个报文通过软件转发,其后的大量数据流则在硬件中得以完成,极大提升转发性能。
三层交流机的内部构造可参照下面的简图。
三层交流机内部构造简图
如图,内置的路由模块与交流模块相同,利用ASIC硬件处理路由。因此,与传统的路由器比较,可实现高速路由。并且,路由与交流模块由内部汇聚链路连接,可确保相称大的带宽。
对应到IP网络模型中,每个Vlan对应一个IP网段,三层交流机中的三层转发引擎在各网段(Vlan)间转发报文,实现Vlan之间的互通,因此三层交流机的路由功能常日叫做Vlan间路由(Inter-VLAN Routing)。
利用路由器连接时,一样平常须要在LAN接口上设置对应各Vlan的子接口;三层交流机则是在内部天生“VLAN接口(VLAN Interface)”,用于各Vlan收发数据。在Cisco的Catalyst系列交流机上,VLAN接口被称为SVI(Switched Virtual Interface,交流虚拟接口)。三层交流机每创建一个Vlan就会自动天生一个SVI。在SVI接口设置默认网关后,并将主机网关配置成与交流机SVI相同,即可实现不同Vlan间的路由。
利用三层交流机进行Vlan间路由与利用汇聚链路连接路由器与交流机相似,即需经由“发送方→交流模块→路由模块→交流模块→吸收方”的流程。
【例】假设网络按图19连接好后,所有设备均为初始状态,也未向外发送过任何报文。若PC1已知PC2的IP地址,则可通过ping命令发送ICMP报文来获知PC1能否到达PC2。以下剖析该过程。
ping流程网络拓扑
⑴ PC1将自身IP和子网掩码255.255.255.0相与得到网络号1.1.1.0,将PC2的IP与子网掩码相与得到网络号2.2.2.0,得知PC2与自己不在同一网段。于是PC1检索路由表得到默认网关。PC1欲向网关通报信息,但此时PC1中ARP表为空,以是向默认网关(交流机三层接口)发出ARP要求帧,要求网关MAC地址。该帧目的MAC地址为全1,源MAC地址为本机MAC地址,要求的IP地址为网关1.1.1.1;
⑵ SW收到ARP要求帧,对其附加端口PVid(10)的标签;
⑶ SW用ARP要求帧的Mac1和Vid10查找MAC转揭橥,创造没有该项,则进行学习,即在表中添加“Mac1—Vid10—Port1”的记录;并将源IP和MAC的对应关系(“1.1.1.2—Mac1”)记录到ARP表,表明目的IP为1.1.1.2的数据帧转发时目的MAC为Mac1,同时需路由到端口Port1;
⑷ ARP要求的目的地址是广播地址,SW将其洪泛到该Vlan的每个端口(除入端口);同时SW自身截获一份上送CPU(网关),创造是讯问自己的MAC,于是回答ARP单播应答帧,目的MAC为PC1的Mac1,源MAC为网关的MAC地址GwMac1,源IP为1.1.1.1,目的IP为PC1的1.1.1.2;
⑸ PC1收到SW发来的ARP应答帧,得到SW三层网关MAC地址,将“1.1.1.1—GwMac1”记录到ARP表。PC1向SW发送ICMP要求帧,目的IP为PC2的IP(2.2.2.2),目的MAC为网关MAC,源IP和源MAC为PC1的;
⑹ SW收到ICMP要求帧,对其附加端口PVid(10)的标签,然后进行源MAC地址学习,创造二层转揭橥有该条款,更新老化韶光。因该帧目的MAC地址是网关,SW送交三层路由处理。
⑺ 在三层首先检讨IP报文的版本、IP首部考验和TTL是否精确,若禁绝确则标记丢弃并交由CPU处理;精确则在三层主机路由表(又称L3表)中查找目的IP(即PC2的IP 2.2.2.2)。此时L3表中只包含与自己直连的32位地址(包括自身接口)及步骤⑶中ARP表学习后下发的PC1信息,而找不到PC2的信息。进而按最长前缀匹配算法查找子网路由表(又称Longest Prefix Match即LPM表)得到2.2.2.1目的网段的条款,下一跳的IP地址为 2.2.2.1;
⑻ 索引回L3表查找2.2.2.1,得到该条款,创造要提交CPU处理(CPU也须要看作是一个端口);
⑼ CPU没有到PC2的路由,但PC2的目的IP属于自己接口地址2.2.2.1的网段,故向接口Vlan20所包含的所有物理端口广播一个ARP要求帧,源MAC地址为交流机接口的三层MAC地址GwMac2,源IP地址为2.2.2.1,要求IP地址2.2.2.2的MAC地址;
⑽ PC2收到ARP要求,学习“2.2.2.1—GwMac2”加入ARP表;并回答ARP应答帧,目的IP为交流机接口Vlan20的IP地址2.2.2.1,目的MAC为交流机接口Vlan20的MAC地址GwMac2;
⑾ SW收到PC2发送的ARP应答帧,附加端口PVid(20)后在MAC表中查找“Mac2+Vid20”,没找到则学习源地址,在MAC转揭橥中添加PC2干系记录。因该帧目的MAC为网关地址,故提交三层处理;
⑿ 三层首先检讨报文精确性,无误则在L3表中查找目的IP。由于目的IP为本机,故上送CPU处理。CPU对报文处理后得到“2.2.2.2—Mac2”将干系信息加入ARP表(CPU下发给L3表进行记录)。
⒀ PC1向SW发送的第一个ICMP要求帧存储在内存中,此时交由CPU进行IP报文头部修正(TTL减1,FCS重新打算封装)和MAC封装(目的MAC地址改为PC2的MAC地址,源MAC地址改为SW三层MAC地址)并发送给PC2,如果超时则丢弃,CPU发送ICMP超时给PC1;
⒁ PC2收到PC1发来的ICMP要求后,回答ICMP应答帧,目的IP为PC1的IP 1.1.1.2,同样PC2创造该地址和自己不在同一子网,须要网关进行转发。之前PC2已学习到交流机接口Vlan20的ARP,此时根据该ARP将ICMP应答帧目的MAC地址填为网关MAC地址GwMac2发送出去。交流机收到帧后,创造目的MAC地址是网关地址,取出帧中的目的IP地址1.1.1.1查找路由。之前交流机已学习到该IP的路由,以是会查找到主机路由表中相应的路由并将帧目的MAC地址换成Mac1,源MAC地址换成网关MAC地址GwMac2,发送到端口Port1上。终极,PC1就收到PC2的ICMP应答。
⒂ 经由以上流程后,PC1和PC2分别学到各自网关接口的ARP,交流机也有了分别到达PC1和PC2的路由。后续的报文不再通过路由,而直接由L3表中对应的表项进行硬件转发。
把稳,此例步骤解释比较“路由器路由”一节稍为详细,所补充的部分并非差异。
VLAN间通信加速
Vlan间路由时,并非所有数据都须要经由外部路由器或三层交流机的内置路由模块。例如,利用FTP(File Transfer Protocol,文件传输协议)传输容量为数兆字节以上的较大文件时,由于MTU(Maximum Transfer Unit,最大传输单元)的限定,IP协议会将数据分割成小块后传输并在吸收方重新组合。这些被分割的数据具有相同的源/目的IP地址和(TCP/UDP)端口号。这样持续串数据流被称为“流(Flow)”。只要将流最初的数据精确地路由往后,后继数据理应也会被同样地路由,实际上无需路由器处理。
三层交流机进行高速Vlan间路由时,全体流的第一块数据仍旧由交流模块转发→路由模块路由→交流模块转发到目标所连端口。这时,将第一块数据路由结果记录到缓存里保存下来。需记录的信息有源/目的IP地址和(TCP/UDP)端口号、交流机收发轫口号及转发目标MAC地址等。
同一个流的第二块及后续的数据到达交流机后,直接通过查询先前保存在缓存中的信息查出转发轫口号后即可转发给目标所连端口。这样,就无需反复经由内部路由模块中继,而仅凭交流机内部的缓存信息就足以判断该当转发的端口。这时,交流机对数据帧进行由路由器中继时相似的处理,如改写MAC地址、IP包头中的TTL和Check Sum校验码信息等。
若Vlan间路由信息变革,路由模块会发送掌握信息给交流模块,交流机重新建立转发路径,按照常规办法转发。
通过在交流机上缓存路由结果,可实现以缆线速率(Wired Speed)吸收发送方传输来的数据、并且能够全速路由、转发给吸收方。
路由器和交流机合营构建LAN
虽然三层交流性能供应比传统型路由器更为高速的路由处理,但网络中仍有利用路由器的必要性。其必要性紧张表现在以下几个方面:
用于与WAN连接。绝大多数三层交流机只配有LAN(以太网)接口。少数高端交流机上也有用于连接WAN的串行接口或ATM接口,但大多数情形下连接WAN须要用到路由器。
担保网络安全。在三层交流机上,通过数据包过滤也能确保一定程度的网络安全。但利用路由器所供应的各种网络安全功能(数据包过滤、基于IPSec构建VPN、利用RADIUS进行用户认证等),用户可构建更为安全可靠的网络。
支持TCP/IP以外的网络架构。只管TCP/IP已成为当前主流的网络协议架构,但还有不少网络利用Novell Netware下的IPX/SPX或Macintosh下的Appletalk等网络协议。三层交流机中,除部分高端机型外基本上只支持TCP/IP。路由器对付须要其他网络协议的环境必不可少。
注:少数高端交流机也能支持上述路由器的功能。例如Cisco的Catalyst6500系列就可选择与WAN连接的接口模块;还有可选的基于IPSec实现VPN的模块;并且也能支持TCP/IP以外的其他网络协议。
下图是一个路由器和交流机搭配构建LAN的实例。
路由器和交流机搭配构建局域网
利用在各楼层配置的二层交流机定义Vlan,连接TCP/IP客户主机。各楼层间的Vlan间通信利用三层交流机的高速路由加以实现。若网络环境哀求高可靠性,还可考虑冗余配置三层交流机。与WAN的连接,则通过带有各种网络接口的路由器进行,并通过路由器的数据包过滤和VPN等功能实现网络安全。此外,利用路由器还能支持Novell Netware等TCP/IP之外的网络。
通过利用Vlan构建局域网,用户能够不受物理链路的限定而自由地分割广播域。通过路由器与三层交流机供应的Vlan间路由,能够适应灵巧多变的网络构造。但由于利用Vlan随意马虎导致网络繁芜化,因此也会造玉成部网络的组成难以把握。特殊是由于数据流纵横交错,一旦发生故障时,准确定位并打消故障会比较困难。
VLAN扩展
VLAN Translation
Vlan转换又称Vlan翻译或Vlan映射,它许可用于边缘接入的不同以太网交流机的Vlan ID设置相互重叠,通过以太网交流机的Vlan转换功能,将不同交流机的重复Vlan ID修正为不同的Vlan ID,并从上联端口发送出去,从而在二层核心交流机中也实现用户的隔离,以简化边缘接入交流机的设置。
例如PON系统中,通过Vlan转换模式,OLT或ONU设备将上行以太网帧中用户自行添加的Vlan标签(Vid可能不是其独用的,可能在同一个别系内有其他用户利用相同的Vid)转换为唯一的网络侧Vlan标签;并不才行方向实行相反的操作。
QinQ
随着以太网技能在运营商网络中的大量支配(城域以太网),利用IEEE 802.1Q Vlan对用户进行隔离和标识受到很大限定。由于802.1Q定义的Vlan标签域仅能表示4096个Vlan(12比特),对付城域网中须要标识的大量用户捉襟见肘,于是QinQ技能应运而生。
QinQ(也称Stacked Vlan即Vlan堆叠或Double Vlan)技能出自IEEE 802.1ad标准,是对基于IEEE 802.1Q封装的隧道协议的形象称呼。QinQ实现在原有802.1Q Vlan标签(内层标签,也称Customer Vlan,CVlan)之外再增加一个Vlan标签(外层标签,也称Service Provider Vlan,SVlan),外层公网标签将内层用户私网标签屏蔽起来,使报文携带两层Vlan标签穿越运营商骨干网络(公网),到达用户另一端网络边缘交流机时再剥除外层公网Vlan标签,还原出内层用户标签便于用户进行下一步的通信。可见,QinQ技能不仅可有效拓展Vlan的数量空间(多达4096×4096个),而且可供应大略的二层VPN(虚拟专用网)隧道,特殊适宜以三层交流机为骨干的小型企业网或小型局域网。
QinQ报文格式
QinQ报文封装格式如下图所示。公网传输时内层Vlan标签为用户私网Vlan标签,外层Vlan标签由运营商分配给用户。私网Vlan标签被透明传输,故不同的用户Vlan标签可重复利用,只需外层Vlan标签在公网上唯一即可。
QinQ报文封装格式
某些厂商将QinQ报文外层标签的TPID值设置为0x9100或其他数值。为和这些设备互通,用户应可自行配置TPID值,使发送到公网中的QinQ帧携带的TPID值与其他厂商相同。由于TPID字段在以太网帧中所处位置与不带Vlan标签的帧中协议类型(Type)字段所处位置相同,为避免造成网络中数据帧转发和吸收混乱,不许可用户将TPID值配置为常用协议类型值。
QinQ封装办法
QinQ封装是指如何把单层Q报文转换为双层Q报文, 封装紧张发生在城域网面向用户的UPE设备,一样平常在交流式的端口上进行。根据不同的封装依据,QinQ可分为基于端口的QinQ、基于流的QinQ和路由子接口上进行的分外QinQ封装。
基于端口的QinQ封装
基于端口封装指进入一个端口的所有流量全部封装一个外层Vlan。当端口收到报文时,无论报文是否带有Vlan标签,交流机都会为该报文附加本端口缺省Vlan的标签。若吸收报文已带标签,则该报文成为双标签报文;若吸收报文不带标签(untagged),则该报文将携带本端口缺省Vlan标签。基于端口的QinQ封装随意马虎实现,故业界主流厂家的三层交流机都支持。其缺陷是外层Vlan标签封装办法去世板,当多个不同用户或用户网络以不同的Vlan接入到同一个端口时无法区分用户,即无法在一个端口上根据业务种类选择多个外层标签,从而很难有效支持单端口多业务的灵巧运营。
此外,基于端口封装需增加链路,组网繁芜,不利于扩展掩护。
基于流的QinQ封装
基于流的QinQ封装先对进入端口的数据进行流分类,然后对付不同的数据流选择是否插入外层标签以及插入何种外层标签,因此也称灵巧QinQ(Smart QinQ或Selective QinQ)。当一些数据流(如组播)出口不添加外层标签,或单个端口根据内层Vlan添加不同的外层标签时,就须要用到灵巧QinQ。
灵巧QinQ根据流分类方法又可细分如下:
1) 根据报文中的Vlan区间分流
当同一用户的不同业务利用不同Vlan时,可根据Vlan区间进行分流,如PC上网Vlan范围是101~200,IPTV的Vlan范围是201~300,VoIP的Vlan范围是301~400。面向用户的设备收到用户数据后,根据Vlan范围,对上网业务插入100的外层标签,对IPTV插入300的外层标签,对VoIP插入500的外层标签。
2) 根据报文中的Vid+Priority分流
不同业务有不同优先级,当同一用户的多种业务利用相同Vlan时,可根据不同业务的优先级进行区分,然后插入不同的外层标签。
3) 根据报文的目的IP地址分流
当同一台PC既包括上网业务又包括语音业务时,不同业务目的IP不同,可利用ACL对目的IP地址进行分流,然后插入不同的外层标签。
4) 根据ETYPE进行QinQ封装
当同一用户既包括PPPOE的上网业务,又包括IPOE的IPTV业务时,这些终端都通过一个Vlan上行,可根据PPPoE(0x8863/8864)和IPoE(0x0800)报文不同的ETYPE协议号作为QinQ的分流依据。
当前灵巧QinQ紧张运用于运营商接入网络。在运营商网络中给接入用户分配一个Vlan,以便于追踪问题和防止不同用户间互访,用外层标签区分用户运用;或在接入环境中用外层标签区分不同的接入地点,用内外两层标签唯一标识一个接入用户。
路由子接口QinQ封装
QinQ封装一样平常在交流式端口上直接进行,但分外情形下QinQ也可在路由子接口上进行封装。
当核心网采取VLL/PWE3透传用户数据时,NPE设备上的路由子接口可根据用户Vlan ID封装外层Vlan,通过外层Vlan接入VLL/PWE3。可通过一个QinQ Stacking子接口来透传多个标识用户的Vlan ID。
该办法也是基于流的QinQ封装,但QinQ Stacking子接口只能与L2VPN(PWE3/VLL/VPLS)结合起来才故意义,不支持三层转发功能。
QinQ报文转发
三层交流机连接用户网络的端口称为Customer端口,连接骨干网的端口称为Uplink端口,骨干网的边缘接入设备称为PE(Provider Edge)。一样平常用户侧网络通过Trunk办法接入骨干边缘交流机,骨干网络内Uplink端口通过Trunk办法对称连接。
在通过QinQ实现大略二层VPN的过程中,报文按如下办法转发:
QinQ报文转发过程
当报文从用户侧网络1到达运营商骨干网边缘交流机Switch A的Customer端口时,无论该报文是否携带标签,Switch A都基于端口PVid对其强行插入外层标签(Vid=10)。在骨干网络内部,报文沿着Vlan10的Trunk端口传播,用户私网标签在骨干网络中保持透明状态,直至到达边缘交流机Switch B。
Switch B创造与用户网络2相连的端口为Customer端口,按照传统的802.1Q协议剥离外层标签,规复成用户的原始报文,转发到用户侧网络2,从而实现一个大略二层VPN功能。PE接入点用外层SVlan隔离,安全且节省Vlan。对用户的管理可基于外层SVlan和内层CVlan唯一定位。
易知,若Vlan映射为C→S+C,则为Vlan堆叠;若Vlan映射为C→S,则为Vlan转换。
把稳,MAC地址学习、天生树等均基于外层SVlan。
QinQ优缺陷
利用QinQ供应接入业务时具有以下优点:
Ÿ可办理日益紧缺的公网Vlan资源问题;
Ÿ用户可方案自己的私网Vlan ID,不会与公网Vlan ID冲突;
Ÿ供应一种较为大略的二层VPN办理方案;
Ÿ利用户网络具有较高的独立性,在做事供应商升级网络时,用户网络不必变动原有配置;
Ÿ可按不同层次的Vlan ID区分不同的业务,以差异供应不同的管道、QoS策略;
ŸQinQ技能上可多层嵌套,仅受以太网帧长度的限定,具有很好的扩充性。
但随着用户数量的增加,QinQ模型也会带来可扩展性问题。某些用户可能希望在分支机构间传输数据时可携带自己的Vlan ID,这就使采取QinQ技能的管理做事供应商面临以下两个问题:第一个客户的Vlan标识可能与其他客户冲突;做事供应商将受到客户可利用标识数量的严重限定。若许可用户按他们自己的办法利用各自的Vlan ID空间,则核心网络仍存在4096个Vlan的限定。
PVlan(Cisco)
PVLAN(Private VLAN,私有VLAN)即所有事情站在同一个子网中,但事情站只能与自己的默认网关通信。PVlan采取两层Vlan隔离技能,只有上层Vlan全局可见,下层Vlan相互隔离。若将交流机的每个端口划为一个(下层)Vlan,则实现所有端口的隔离。
每个Private Vlan包含两种Vlan:主Vlan(Primary Vlan)和赞助Vlan(Secondary Vlan),后者又分为隔离Vlan(Isolated Vlan)和团体Vlan(Community Vlan)。
PVlan通信范围:
主Vlan可与所有与之关联的隔离Vlan、团体Vlan通信。不同主Vlan之间的任何端口都不能相互通信(此处“相互通信”指二层连通性)。
团体Vlan可与处于相同团体Vlan内的团体端口通信,也可与PVlan中的殽杂端口通信。 每个PVlan可有多个团体Vlan。
隔离Vlan不可与处于相同隔离Vlan内的其它隔离端口通信,只可与殽杂端口通信。每个PVlan中只能有一个隔离Vlan。
相应地,交流机物理端口有三种类型:
隔离端口(Isolated port),与用户相连,属于隔离Vlan。只可与殽杂端口通信,彼此不能通信。
团体端口(Community port),属于团体Vlan。不仅可与殽杂端口通信,也可与同一团体中的其它物理端口进行通信。
殽杂端口(Promiscuous port),与路由器或三层交流机接口相连,属于主Vlan。它收到的流量可发往隔离端口和团体端口。
PVlan端口类型
如图,port1、port2和port3三者之间相互隔离,不许可通信,只能与port6通信;port4和port5间可以通信,也可以与port6通信。所有端口只需分配共享一个IP地址。
PVlan的运用对付担保接入网络的数据通信安全性非常有效。所有用户都接入PVlan,每个用户一个Vlan,用户间二层相互隔离。用户只需与自己的默认网相干接,一个PVlan不须要多个Vlan和IP子网就可供应具备二层数据通信安全性的连接。PVlan功能可担保同一个Vlan中的各个端口相互之间不能通信,但可穿过Trunk端口。这样纵然同一Vlan中的用户,相互之间也不会受到广播的影响。
对付上层交流机来说,可认为下层交流机中只有几个主Vlan,而不必关心主Vlan 中的端口实际所属的Vlan,从而简化配置并节省Vlan 资源。一个主Vlan中包含的所有Private Vlan处于同一个子网中,可节省子网数目和IP 地址资源。
PVlan常日用于企业内部网,用来阻断连接到某些接口或接口组的网络设备间的相互通信,但却许可与默认网关进行通信。只管各设备处于不同的PVlan中,但可利用相同的IP子网。
SuperVlan
不同Vlan间通信须要通过三层路由进行转发,而每个子网(Vlan)都须要设置一个路由地址。每分配一个子网,就有三个IP地址(子网的网络号、广播地址和默认网关)被占用。同时,这种地址分配的固有约束也严重降落编址的灵巧性,使许多闲置地址被摧残浪费蹂躏。为提高IP地址的利用率,Super VLAN超网应运而生。
SuperVlan(又称VLAN Aggregation,即Vlan聚合)把多个子Vlan(SubVlan)聚合成一个SuperVlan,这些SubVlan共同利用一个IP子网和默认网关。通过VLAN聚合可使所有在同一子网上的终端用户通过统一的路由(同一子网网段地址)而利用不同的广播域。
利用SuperVlan技能,只需为SuperVlan分配一个子网地址,并为每个用户或子网建立一个SubVlan。所有SubVlan可灵巧分配SuperVlan子网中的IP地址,利用SuperVlan的默认网关。每个SubVlan都是一个独立的广播域,担保不同用户之间的隔离;SubVlan间通信须要通过SuperVlan进行路由。由于各个SubVlan不须要真正的子网网段,可有效提高IP利用率。这样的子网可分配足够小且扩展方便,无需重新定义子网大小。
SuperVlan内的主机利用同一个网段的地址,共用同一个上行网关。纵然是属于不同SubVlan的主机,由于其地址同属一个子网,设备会认为它们是二层互通的,会做二层转发,而不会送网关进行三层转发。而实际上SubVlan间在二层相互隔离,因此须要采取ARP代理(Proxy)来实现SubVlan间的互通。Subvlan之间以及和外部通信通过ARP代理,所有Subvlan内主机发送的ARP要求都由SuperVlan的MAC地址作为ARP应答。
把稳,SuperVlan并不包含物理端口,可将其视作逻辑的三层观点——多少SubVlan的凑集。对交流芯片来说SuperVlan是透明的,仍按芯片中的Vlan进行转发。在基于端口的Vlan中,二层通信时,无论收发都不会有针对SuperVlan的报文。即进入SubVlan设备的数据帧会附加该SubVlan的标签,从Trunk端口发出时也不会改为SuperVlan的标签。
ARP Proxy事理
一个物理网络子网(Subnet)中的源主机向另一个物理网络子网中的目的主机发送ARP request要求,和源主机直连的网关用自己接口的MAC地址代替目的主机回答ARP reply应答,该过程称为ARP代理。
ARP代理的基本过程如下:
源主机向另一物理网络的子网中的目的主机发ARP要求;
与源主机网络相连的网关已使能ARP代理功能,若存在到达目的主机的正常路由,则代替目的主机应答自己接口的MAC地址;
源主机向目的主机发送的IP报文都发给路由器;
路由器对报文做正常的IP路由转发;
发往目的主机的IP报文通过网络,终极到达目的主机。
SubVlan间的三层互通
【例】SuperVlan 2包含SubVlan 21和SubVlan 22,剖析PC1与PC2的互通过程(假设PC1的ARP表中无PC2对应表项)。IP地址和MAC地址如下图所示。
用ARP代理实现不同SubVlan间的三层互通
PC1要发送报文给PC2,则将PC2的IP地址(1.1.1.3)与自己所在网段1.1.1.0 /24进行比较。由于SubVlan 21和SubVlan 22同属一个SuperVlan所在子网,于是发广播ARP要求PC2的MAC地址;而PC2并不在SubVlan 21的广播域内,无法吸收到该ARP要求。当PC1在二层发出的ARP要求在其广播域内没有回合时,交流机网关运行ARP代理,查找路由表并创造下一跳为直连路由接口(SubVlan 22),则在该接口发送一个ARP要求PC2的MAC地址;得到PC2回应后,就把网关自己的MAC地址GwMac当作PC2的MAC地址(实际是Mac2 )回给PC1 (不同设备实现略有不同)。之后,主机PC1要发给PC2的报文都发给交流机,由三层交流机做正常的三层转发。
PC2回送给PC1的报文转发过程和上述的PC1到PC2的报文流程类似。
SuperVlan与外部的三层通信
【例】交流机1上配置SuperVlan 2、SubVlan 21和22,并有一个正常的Vlan 10。交流机2上配置两个正常的Vlan 10和20。假设SuperVlan 2下SubVlan 21中的PC1想访问交流机2下连的PC3,剖析其高下行报文的转发流程。
Super VLAN与外部的三层通信图例
报文上行流程
PC1 (1.1.1.2/24)要访问PC3(1.1.3.2/24),由于IP地址不在一个网段,故PC1发送ARP要求给自己的网关,要求网关的MAC地址。SubVlan21收到ARP报文后,将其上送CPU。CPU查找SubVlan和SuperVlan的对应关系,知道应回应SuperVlan2的MAC地址(不同设备实现可能略有不同),且知道回应报文应从SubVlan21发送给PC1。
PC1学到网关MAC地址后,开始发送目的MAC为SuperVlan2、目的IP为1.1.3.2的报文。SubVlan21收到报文后,检测目的MAC后得知应进行三层转发,于是查找转发路由表,创造下一跳地址为1.1.2.2,出接口为Vlan10,并通过ARP表项和MAC表项确定出端口,把报文发送给交流机2,交流机2根据正常的转发流程把报文发送给PC3。
报文下行流程
PC3回应的报文,在交流机2上按正常的转发流程到达交流机1,此时交流机1查找转发路由表表项,创造目的地址为PC1(1.1.1.2),对应的出接口为SuperVlan2。但SuperVlan2未包含任何端口,那么如何确定报文的出端口呢?
仔细查看可创造,只管转发路由表中1.1.1.2/24网段的出接口为SuperVlan2,但在ARP表中IP地址1.1.1.2对应的出接口却为SubVlan 21。而芯片真正用来构建转揭橥时所用的出接口应是ARP表中对应的SubVlan接口,通过在SubVlan下查找目的MAC地址即可找到精确的出端口。于是,PC3的回应报文就可正常到达PC1。
把稳,若位于一个SuperVlan内的打算机运行基于广播或组播的高层运用,则这些运用被限定在SubVlan内。因此,应仔细剖析高层运用,在没有基于组播或广播的运用时才可利用SuperVlan。