二层交换机那些事
概述
计算机网络是分层的,我们通常所说的以太网是数据链路层的网络,这是因为以太是数据链路层面上的一种协议,其所对应的设备就是二层交换机,接下来看一下二层交换机的通信原理
以太网二层交换机通信原理
二层交换机在接收到主机发送的报文的时候会学习报文中的源mac地址,并在交换机上面的mac地址表中查找对应的目的mac地址所对应的端口,如果找不到就直接广播该报文。这其中包含了两个对象:主机、交换机。
- 主机:会缓存arp表项(ip和mac地址的对应关系),可以使用arp -a来查看,通常情况下arp表项是动态的。
- 二层交换机:会缓存mac地址信息和端口的对应情况,不过其中不会包含对应的arp表项,因为arp表项是ip和mac地址的对应关系,很明显交换机并不具备ip信息。
上面我们知道主机会缓存ip对应的mac信息,不过这些信息并不是从一开始就存在的,而是动态生成的,并且具有老化时间。arp表项的生成依赖于arp协议,这是从主机发送的广播报文(对应的目的mac为全f)。
上面的这种方式存在以下两种问题:
- 当同一个子网内包含了较多的主机的时候,将会形成广播风暴
- 没有对单播的数据报文进行访问控制
上述问题的解决依赖于以太网的vlan技术
以太网vlan技术
以太网的vlan技术是通过配置交换机的端口实现了同一个子网的不同组的划分,这样可以保证数据的交换只会发生在特定的区间内(并不一定是同组,跟端口类型有关系),从而减少了广播风暴,并且实现了单播报文的控制。
实现原理
以太网的vlan是通过在目的mac和源mac地址后面增加一定的字节用来标识该报文所属的vlan,交换机的端口将会处理和其相关的报文。这里有两个主体:报文、交换机端口,我们将会从交换机的端口出发,来深入了解一下端口对于报文的处理的逻辑:
access口:
- 接收报文处理规则:接收无tag的报文,此时会加上端口的pvid,接收的数据包含tag的时候只允许tag和pvid相等的情况
- 发送报文处理规则:只能够发送包含的tag和该接口对应的pvid相同的数据帧
- 配置端口命令:
- 默认进入用户管理界面
- 使用
system-view进入系统视图 - 创建
全局的vlan,vlan batch 3 to 4,其中如果vlan不连续可以直接使用空格来表征(也可以vlan 4创建一个vlan) - 配置端口vlan,需要先进入对应的端口,指定其对应的接口类型和pvid:
interface Gb 0/0/1(指定端口)port link-type access(指定端口类型)port default vlan 3(配置端口pvid)diaplay this可以查看配置是否生效,最后可以quit退出
- 使用场景:通常使用在交换机和终端的链接的地方
trunk口:
接收报文处理规则:接收无tag的报文,此时会加上端口对应的pvid,接收的数据帧中包含的tag需要在该接口的
vlan-list(起到了pvid的作用,不过范围更广了)中才接收,这一点和a口类似,只不过a口允许的是pvid,这里允许的是一个list发送报文处理规则:判断数据帧的tag是否在vlan-list中,如果在才处理,并且
和pvid相等,则去掉tag并转发,如果和pvid不同则透传,这个是增强的A口的功能(A口不具备透传非pvid的情况)配置端口命令:
- 默认进入用户管理界面
- 使用
system-view进入系统视图 - 配置端口vlan,需要先进入对应的端口,指定其对应的接口类型和pvid:
- 进入端口:
interface Eth-trunk 1 - 配置端口类型:
port link-type trunk - 配置vlan-list:
port trunk allow-pass vlan 4(允许pvid为4的数据通过)
- 进入端口:
值得注意的是这里并没有配置trunk的pvid,而是使用了系统默认的pvid,其实是可以的
使用场景:通常用在交换机之间的数据交换,当vlan-list和pvid一致的时候trunk实现的就是access接口
hybrid口:
- 接收报文处理规则:如果数据报文是untag的报文就直接加上pvid,否则判断vlan-list中是否包含了该tag,是则接受,否则丢弃,可以看到这和trunk端口类似。
- 发送报文处理规则:接口发送报文的时候判断数据报文是否在vlan-list中,是才处理,否则不处理,对于是的情况如果数据帧中对应的vlanid在untag vlan-list中则剥去标签并转发,否则直接透传,可以看到这里增强了Trunk口的剥去pvid的规则
- 配置端口命令:
- 默认进入用户管理界面
- 使用
system-view进入系统视图 - 配置端口vlan,需要先进入对应的端口,指定其对应的接口类型和pvid:
interface xxx进入接口undo port default vlan(解除vlan其他类型的限制,初始化可以不用作)port link-type hybrid,指定端口类型port hybrid pvid vlan 3,指定端口的pvidport hybrid untagged vlan 3 to 5,指定端口能处理的untag vlan-list
- 使用场景:一般是在A口和trunk都不满足的情况下使用,更一般的是用来实现不同vlan之间的通信(通过vlan的untag vlan-list实现,毕竟是要去不同vlan对应的标签的),而且通常应该是在主机侧,并不在交换机之间
以太网端口聚集技术
以太网端口聚集技术用来实现端口的负载均衡、并可以实现链路的备份。
具体做法
- 默认进入用户管理界面
- 使用
system-view进入系统视图 sysname xxx重命名设备interface Eth-Trunk 1,创建eth-trunk端口trunkport GigabitEthernet 0/0/9将指定接口添加到对应的eth-trunk中interface Eth-Trunk 1进入eth-trunk端口port link-type trunk,配置ethtrunk类型并指定其vlan-list:port trunk allow-pass vlan 4或者port trunk allow-pass vlan 3 5添加也可以
以太网堆叠技术
TODO 省略
其他命令
display mac-address display this save