二层交换机的主要功能
维护MAC地址表,MAC寻址
数据帧的转发及过滤
二层环路避免及冗余性支持(网状拓扑)
二层交换特点
1、交换不改变数据帧(透传)
2、二层交换只会根据数据帧头部的MAC地址表进行寻址
3、使用MAC地址表
MAC地址
1、硬件地址
2、MAC地址有四十八位,通常被表示为点分十六进制数
3、MAC地址全球唯一,由IEEE对这些地址进行管理和分配
4、每个地址由两部分组成,分别是供应商代码和序列号。其中前24位二进制代表该供应商代码。剩下的24位由厂商自己分配。
交换机寻址
初始情况下,交换机的MAC表是空的
1、pc1要发送一个数据帧给pc2
2、交换机收到这个数据帧,将数据帧的源MAC学习到MAC地址表
3、交换机在MAC地址表中查询数据帧的目的MAC地址
4、发现无匹配项,于是将数据帧进行泛洪(Flooding)
5、网络中的pc都会收到这个数据帧的拷贝,网络中除pc2的pc在收到数据帧后读取MAC,发现目的MAC并非自己,因此丢弃数据帧。
6、pc2收到并处理这个数据帧,现在pc2要发送回应流量
7、交换机收到这个数据帧,将源MAC地址学习到MAC表,同时在MAC表中查询目的MAC地址
8、在MAC表中查询到匹配项,于是交换机将数据帧从与目的MAC地址绑定的端口转发出去
为什么需要VLAN
整台交换机的所有端口均属于同一个广播域
网络中的设备可能被大量的广播损耗资源
无法根据业务需求灵活的划分网络结构
VLAN(Virtual LAN)可以解决上述问题
通过将交换机的端口划入特定的VLAN,可以起到隔离广播域的作用
不同的VLAN是不同的广播域,是不同的网段
可根据业务需求灵活的进行VLAN的规划
不同的VLAN之间无法进行二层互访
VLAN的概念
1、一个VLAN中所有的设备都是在同一广播域内,不同的VLAN为不同的广播域
2、VLAN之间互相隔离,广播不能跨越VLAN传播,因此不同的VLAN之间的设备一般无法互访,不同VLAN间需要通过三层设备实现互相通信
3、一个VLAN一般为一个逻辑子网,由被配置为此VLAN成员的设备组成
4、VLAN中成员多基于交换机的端口分配,划分VLAN就是对交换机的接口划分
5、VLAN工作域OSI参考模型的第二层
6、VLAN是二层交换机的一个非常根本的工作机制
Access的概念
Access接口通常用于直连终端,他们被配置为Access类型
Access接口常用于连接PC、服务器或其他终端,或路由器等设备
Access接口只能加入一个VLAN,一旦加入特定VLAN后,该接口所连的设备也就加入了该VLAN
Trunk的概念
当一条链路,需要承载多VLAN信息的时候需要Trunk来实现
Trunk两端的交换机需采用相同的干道协议
一般用于交换机之间或交换机与路由器之间
802.1Q
Original Frame | Dest | Src | Len/EType | Date | Fcs | |
Tagged Frame | Dest | Src | Tag | Len/EType | Date | Fcs |
EtherType(0x8100) | PRI | Token Ring Encapsulation Flag | VLAN ID |
| 16bits | 3bits | 1bits | 12bits |
端口的缺省ID(PVID)
每个Access、Trunk、Hybrid、QinQ类型的端口都可以配置一个缺省VLAN(PVID:Port Default VLAN ID),表示端口所属的VLAN。
对于Access类型端口,PVID的数值表示当前端口所属的VLAN
对于Trunk、Hybird类型端口,由于Hybrid类型端口和Trunk类型端口允许多个VLAN数据帧通过,也可理解为这两种类型的端口属于多个VLAN,所以需要配置PVID
PVID,在缺省的情况下为VLAN 1
VLAN的基本配置
在交换机上创建VLAN并加入VLAN视图
[1]vlan 10
[1]valn bat 10 20 30 (批量)
(可选)在特定的vlan视图下修改vlan的名字
[1-vlan10]name TechVLAN
为特定的vlan添加接口
[1-vlan10]port GigabitEthernet0/0/1
将特定的接口配置为access类型并加入vlan
[1]interface gigabitEthernet0/0/1
[1-gigabitEthernet0/0/1]port link-type access
[1-gigabitEthernet0/0/1]port default vlan 10
Trunk的基本配置
将特定接口配置为trunk类型
[1]interface gigabitEthernet0/0/24
[1-interface gigabitEthernet0/0/24]port link-trunk
在该trunk接口上放行特定VLAN
[1-gigabitEthernet0/0/24]port trunk allow-pass vlan 10 20 99
配置trunk接口的pvid,这个vlan的流量从trunk接口转发不会打标签,默认是vlan1
[1-gigabitEthernet0/0/24]port trunk pvid vlan 99
Access Port
Access端口收到帧
如果该帧不带tag,接受帧并打上端口的pvid;
如果该帧携带tag,则当vlanID与缺省vlanID相同时,接收该报文,否则丢弃。
Access端口发送帧
剥离802.1Q tag header 发出的帧为普通以太帧。
Trunk port
Trunk端口收到帧
若数据帧不带tag,打上接口pvid,若pvid在允许通过的vlanID列表里,则接收该报文,若pvid不在允许通过的vlanID列表里,则丢弃该报文
若数据帧带tag,且vlanID在接口允许通过的vlanID列表里,则接收该报文。否则丢弃该报文。
Trunk端口发送帧
若vlanID与接口pvid相同,且该vlan在allow-pass vlan列表中,则去掉Tag,发送数据帧。
若vlanID与接口pbid不同,且该vlan在allow-pass vlan列表中,则保持原有Tag,发送带该tag的数据帧。