二层交换
交换基础
所谓的二层交换机指的是针对数据的二层头部(以太网帧头)中的MAC地址进行寻址并转发数据的交换设备。二层交换机不具备路由功能,它工作在OSI七层模型的第二层,因此被称为二层交换机。
上图中,PC1、PC2、PC3、PC4连接在同一台交换机上,连接在同一台交换机上的PC属于同一VLAN,也处于同一个广播域。
广播域:指的是一个数据多能泛洪的范围,例如PC1发送一个广播报文,交换机收到这个报文后,会为除了接受该报文的接口之外的其他所有接口都发送出去,接在同一交换机上的所有PC都会收到这个广播报文。
例如:PC1发送一个数据给PC4时,会发生怎样的情况?
- PC1报文头部里源IP为自己的IP地址,目的IP为PC4的IP地址。源MAC为自己的MAC地址,目标MAC为PC4的MAC。
- 这个数据帧被送到交换机上,交换机在做二层交换时依据的是MAC地址表。MAC地址表中包含的表项指示出MAC地址与交换机某个接口的对应关系。在初始情况下,交换机的MAC地址表是空的。当交换机收到PC1发送出来的数据帧时,它首先在MAC地址表中查询该数据帧的目的MAC地址,由于在MAC地址表中并没有该目的MAC的条目,因此交换机会对这个数据帧进行泛洪。
- 接下里,交换机将该数据帧中的源MAC地址学习到MAC地址表中,与接口GE0/0/1关联。
- 由于交换机的泛洪行为,导致连接在该交换机上的其他PC都能收到这个数据帧,除了PC4之外的其他PC在收到这个数据帧之后,将bit流还原成帧并查看帧头部的目的MAC,发现该MAC与本机的MAC并不一致,于是丢弃。而PC4在查看目的MAC与自己的MAC想通之后,会进行CRC校验(校验数据的完整性)。校验成功之后解封装,将内层的IP数据给IP协议栈处理。进一步查看IP头部,发现IP头部中的目的IP为自己的IP,于是将IP头部解封装,将内层的数据交给上层协议处理。PC1-PC4数据传输完成。
- 现在PC4要回送数据到PC1,交换机收到数据后,首先在自己的MAC地址表中查看目的MAC地址(PC1的MAC地址),发现有一个匹配的表项,而且该表项显示这个MAC地址连接在GE0/0/1接口上,于是交换机将这个数据帧从此接口发送出去。同时交换机还会将数据帧的源MAC地址(PC4的MAC地址)记录在自己的MAC地址表中,并与接口GE0’/4/4进行关联。
- PC1收到数据帧。
display mac-address 命令可以进行MAC地址表的查询。
VLAN及Trunk
VLAN(Virtual Lan)
通过VLAN技术,可以在交换机上根据接口等信息进行vlan的划分,从而实现设备的隔离。
如图:
在上图中,用户在交换机上创建了两个VALN,然后将对应的接口添加到指定的VLAN中。可以看出PC1、PC2属于同一LAN、同一广播域内。这些PC只要配置同一个网段的IP地址就可以直接进行互访。而PC3、PC4属于VALN20,为另外一个广播域。不同的VLAN之间,用户是被隔离的(除非借助路由设备,这样的通信称为三层通信)
- 一个vlan中所有设备都在同一广播域,不同的vlan为不同的广播域。
- 一个vlan一般使用一个IP子网。
- vlan中成员多基于交换机的接口分配,此时划分vlan就是将交换机的接口划分到特定的vlan中。
Access接口类型
在交换机上,二层接口类型有:Access、Trunk和hybrid三种。
- Access类型的接口只能加入一个vlan,该vlan又被称为Access接口的缺省vlan。
- Access接口只能发送不带标记的数据帧(untagged帧),通常也只接收untagged帧以及打了缺省vlan的标记帧。
- Access这种类型的接口一般用于连接PC、服务器等终端设备。
acces接口接收帧:
(1)如果该帧是untagged帧,则接收帧并打上接口的PVID(也就是该Access接口的default vlan或缺省vlan)。
(2)如果该帧是tagged帧,则当其vlan-id与接口PVID相同时,接收该帧,否则丢弃。
access接口发送帧:
在发送帧时,剥离其tag,发出的帧是原始以太网帧,也就是untagged帧。
Trunk接口类型
Trunk接口一般用于交换机之间连接的接口。trunk口可以加入多个vlan,可以接收和发送多个vlan的tagged帧。
trunk接口接收帧:
(1)如果收到的帧是untagged帧,则为数据帧打上接口的PVID。如果PVID在接口允许通行(allow-pass)的vlan列表里,则接收该帧,若PVID不在允许通行的vlan列表里,则丢弃。
(2)如果收到的帧是tagged帧,且其vlan-id在接口允许通行的vlan列表里,则接收该帧,否则丢弃。
trunk接口发送帧:
(1)如果该帧与接口PVID相同,且该vlan在允许通行的vlan列表里,则去掉tag,发送数据帧。
(2)如果该帧与接口PVID不同,且该vlan在允许通行的vlan列表里,则保持原有tag发送该帧。如果数据帧的vlan-id不在允许通行的vlan列表里,则禁止从该接口发出。
Hybrid接口类型
hybrid接口接收帧:
(1)如果收到的帧是untagged帧,则为数据帧打上接口的PVID。如果PVID在接口允许通行(allow-pass)的vlan列表里,则接收该帧,若PVID不在允许通行的vlan列表里,则丢弃。
(2)如果收到的帧是tagged帧,且其vlan-id在接口允许通行的vlan列表里,则接收该帧,否则丢弃。
hybrid发送帧:
如果收到的帧是tagged帧,且其vlan-id在接口允许通行的vlan列表里,则接收该帧,否则丢弃。
VLAN相关配置
创建vlan10并进入vlan10视图:
[Quidway] vlan 10
[Quidway-vlan 10]
将指定的接口配置为access类型,并加入特定vlan:
[Quidway] interface gigabitEthernet0/0/1
[Quidway-gigabitEthernet0/0/1] port link-type access
[Quidway-gigabitEthernet0/0/1] port default vlan 10
将特定接口配置为trunk类型,然后配置trunk接口允许通行的vlan:
[Quidway] interface gigabitEthernet0/0/24
[Quidway-gigabitEthernet0/0/24] port link-type trunk
[Quidway-gigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 #将vlan10、20添加到该接口允许通行的vlan列表