二层Switch工作原理:

(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
 
  不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
 
泛洪和广播
泛洪操作广播的是普通数据帧而不是广播帧  是二层概念
广播是向同一子网内所有的端口(包括自己的那个端口)发送消息; 泛洪只是在所有的端口中不包括发送消息的(自己的)那个端口发送消息.  是二层,三层概念
 
VLAN:
VLAN是一组由共同需求并与物理位置无关的终端设备组成的逻辑局域网,交换机不能在VLAN之间转发二层广播,但VLAN可以位于这个网络中的任何位置。VLAN是一个单独的广播域。如果需要在VLAN间通信,数据包就要穿越路由器或者三层设备。
一般交换机的一个端口只能承载单个VLAN流量,如果希望一个端口承载多个VLAN流量,需要使用trunk技术,通过封装802.1Q或ISL。trunk就能承载多个VLAN的流量
 
VLAN两种类型:
1.端到端VLAN:经由Trunk链路连接的同一VLAN。
特点:1.同一VLAN遍布整个网络所有位置。2.用户在同一网络中移动时,该用户的VLAN关系不会变化,无论接在哪台交换机。3.VLAN遍布整个网络的所有位置
2.本地VLAN:用户与一组位于相同地址位置的交换机相连。
特点:1.本地VLAN存在接入层和分布层之间。2.本地VLAN发出的流量会被路由到分布层和核心层以到达其他网络的目的地。3.将VTP配置为透明模式,一台接入交换机上的VLAN不应该被通告给网络中其他交换机。4.完全由本地VLAN构成的网络,取代了2层的生成树。
 
交换机VLAN范围:
交换机类型                           VLAN最大数量                    VLAN ID范围
2940                                              4                                    1-1005
2950/2955                                  250                                  1-4094
2960                                            255                                  1-4094
2970/3550/3560/3570               1005                                1-4094
2848G/2980G/4000/4500          4094                                1-4094
6500                                            4094                                1-4094
 
 
VLAN范围              范围     用途                                                                            通过VTP传播
0和4094                保留    供系统使用,用户不能查看和使用                                        ----
1                           正常    Cisco默认VLAN,能够使用,但不能删除                               是
2——1001             正常    用于以太网的VLAN,用户可以创建,使用,删除                   是
1002——1005       正常    用于FDDI和令牌环的Cisco默认VLAN,不能删除                    是
1006——1024       保留    仅系统使用,用户不能查看和使用这些VLAN                         ----
1025——4094       扩展    仅以太网VLAN                                                                    VTP版本1,2不支持,必须为透明模式,且VTP版本3
 
创建VLAN:
Switch(config)# vlan vlan-id
VLAN命名:
Switch(config-vlan)# name vlan-name
 
一旦删除了VLAN,除非将该VLAN所属Access端口移动到其他VLAN,否则,该端口会进入inactive状态。inactive不会再转发流量。
 
删除VLAN:
Switch(config)# no vlan 3
Switch(config)# end
 
将某端口指定为access端口:
Switch(config-if)# switchport mode access   使该端口不再尝试协商trunk
Switch(config-if)# switchport host
 
switchport host将某端口配置为主机设备所连端口。启用该特性,意味着同时对该端口启用生成树PortFast并禁用EtherChannel特性。
 
将某端口放入VLAN,或移除VLAN:
Switch(config-if)#〖no〗 switchport access vlan vlan-id
 
查看信息:
SW1#show interfaces fastEthernet 0/11 switchport 
Name: Fa0/11
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Off
 
SW1#show mac address-table           
          Mac Address Table
-------------------------------------------
 
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 All    000d.29ad.4f00    STATIC      CPU
 All    000d.29ad.4f01    STATIC      CPU
 All    000d.29ad.4f02    STATIC      CPU
 
Trunk:
如果希望让两台交换机之间的switchport端口承载多个VLAN,那么必须将其配置为Trunk。
如果从一个VLAN发来的帧穿越一条Trunk链路。那么在这个帧进入Trunk链路时,就必须给这个帧打上标记,以标识这个帧是从哪个VLAN发送过来的。于是,接收帧的交换机会知道帧来自哪个VLAN,当接收交换机将这个帧转发给与其相对应的Access链路时,会移除掉这个VLAN ID。
 
配置802.1Q Trunk链路时,必须为此链路定义一个 Native VLAN  Trunk链路会为每一个帧打上VLAN ID标记, Native VLAN的作用是让那些没有打上VLAN 标记的帧能穿过Trunk链路进行转发。
 
链路聚集协议:
ISL:

Switch工作原理和VLAN(Virtual Local Area Network)虚拟局域网01_休闲

ISL为CISCO私有协议,将原始数据首尾封装,VLAN ID在ISL包头的26个字节。

 

802.1Q

Switch工作原理和VLAN(Virtual Local Area Network)虚拟局域网01_CCNP_02

关于802.1Q数据的取值:

以太网帧的有效载荷是46-1500,为何,见碰撞间隙,完整的以太网帧,加上12字节的源目MAC,2字节的类型长度,4字节的FCS。完整以太网帧是64-1518

802.1Q,增加了4字节的TAG。变成了68-1522

传统的以太网是共享性局域网,采用载波侦听多路访问/冲突检测CSMA/CD协议。最小帧长必须大于整个网络的最大时延位(最大时延时间内可以传输的数据位)。

 

如果帧长度太小,就可能出现网络上同时有两个帧在传播,就会产生冲突(碰撞)而造成网络无法发送数据。

如果数据帧太长就会出现有的工作长时间不能发送数据,而且可能超出接受端的缓冲区大小,造成缓冲益出。

 

由于多方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。

 

为什么以太网帧的实际数据载荷为46?

有关于碰撞槽时隙:

假设公共总线媒体长度为S,帧在媒体上的传播速度为0.7C(光速),网络的传输率为R(bps),

帧长为L(bps),tPHY为某站的物理层时延;

则有:

碰撞槽时间=2S/0.7C+2tPHY

因为Lmin/R=碰撞槽时间

所以:Lmin =(2S/0.7C+2tPHY )×R

Lmin 称为最小帧长度。

碰撞槽时间在以太网中是一个极为重要的参数,有如下特点:

(1)它是检测一次碰撞所需的最长时间。

(2)要求帧长度有个下限。(即最短帧长)

(3)产生碰撞,就会出现帧碎片。

(4)如发生碰撞,要等待一定的时间。t=rT。(T为碰撞槽时间)

2.下面我们来估计在最坏情况下,检测到冲突所需的时间

(1)A和B是网上相距最远的两个主机,设信号在A和B之间传播时延为τ,假定A在t时

刻开始发送一帧,则这个帧在t+τ时刻到达B,若B在t+τ-ε时刻开始发送一帧,则B在t+τ时就

会检测到冲突,并发出阻塞信号。

(2)阻塞信号将在t+2τ时到达A。所以A必须在t+2τ时仍在发送才可以检测到冲突,所以一帧的

发送时间必须大于2τ。

(3)按照标准,10Mbps以太网采用中继器时,连接最大长度为2500米,最多经过4个中继器,因

此规定对于10Mbps以太网规定一帧的最小发送时间必须为51.2μs。

(3)51.2μs也就是512位数据在10Mbps以太网速率下的传播时间,常称为512位时。这个时间定

义为以太网时隙。512位时=64字节,因此以太网帧的最小长度为512位时=64字节。 

 

除了压缩数据位以外,其他的字段都是不可动的,传统以太网如此,802.1Q也不例外,加入4字节的TAG字段,只有继续压缩数据字段。

 

802.1Q采用了修改原始帧的内部标记机制,它在原始帧的FCS之上打X。并将对包括标记在内的整个帧进行CRC重新计算。再将新的值插入到FCS之中。ISL会对原始帧进行封装,并增加第二个FCS,并不修改原始FCS。 

 

如果没有启用802.1Q的设备或者Access端口收到一个802.1Q帧,那么标记会被忽略,数据则交由二层,还是会被进行转发。如果设备要处理802.1Q的帧,必须要使他的MTU大于1522=6(Dest)+6(Src)+2(TL)+1500(date)+4(FCS)+4(Tag)

 

为中继链路选择封装:

SW1(config-if)#switchport trunk encapsulation ?

  dot1q      Interface uses only 802.1q trunking encapsulation when trunking

  isl        Interface uses only ISL trunking encapsulation when trunking

  negotiate  Device will negotiate trunking encapsulation with peer on

                      interface

 

Native VLAN:

只存在与802.1Q封装中,ISL为每个VLAN都打标记。默认情况下,802.1Q Trunk会为转发未被标记的帧定义Native VLAN, 交换机会从Trunk端口的Native VLAN 转发未打标的二层VLAN。

两台设备之间的Native VLAN配置必须相同。

 

SW1(config-if)#switchport trunk native vlan

 

VLAN典型实验:

Switch工作原理和VLAN(Virtual Local Area Network)虚拟局域网01_休闲_03

两台路由器能否通信?如果VLAN一样,能否通信?

Switch工作原理和VLAN(Virtual Local Area Network)虚拟局域网01_职场_04

能否通信,怎样做?  如果VLAN 都一样,能否通信,怎样做。

 

802.1Q隧道:

802.1Q支持隧道特性,允许服务提供商在其VLAN内部传输用户VLAN,保留单独客户的VLAN分配,而无需要求它们的VLAN分配是唯一的。

 

服务提供商配置:

Sw1(confit-if)#switchport access vlan 30          划入SP的VLAN

Sw1(confit-if)#switchport mode dotlq-tunnel       Q-in-Q

 

客户端配置:

Sw3(config-if)#switchport mode trunk 

Sw3(config-if)#switchport trunk encapsulation [dot1q | isl]

Sw3(config-if)#switchport trunk allowed vlan 1-100,111

 (在此Trunk口上只允许VLAN1-100,111的流量通过)