通过交换机端口的报文Tag和untag
- Tag报文结构是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,普通的PC网卡是不能识别的。
- untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯。
华为交换机的端口模式
- Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
- Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
- Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
华为交换机的缺省VLAN 被称为PVID, 思科交换机则称为Native VLAN.
交换机接口出入数据处理过程:
Access端口的收发
- Access端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
- Access端口发报文:将报文的VLAN信息剥离,直接发送出去
Trunk端口的收发
- trunk端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该
VLAN的数据进入:如果可以则转发,否则丢弃 - trunk端口发报文:比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送
Hybird端口的收发
- hybrid端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用)
- hybrid端口发报文:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag,哪些VLAN是tag)
2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送
端口汇聚
端口汇聚是将多个端口汇聚在一起形成一个汇聚组,以实现出/入负荷在汇聚组中各个成员端口中的分担,同时也提供了更高的连接可靠性。
手工汇聚由用户手工配置,不允许系统自动添加或删除汇聚组中的端口。汇聚组中必须至少包含一个端口。当汇聚组只有一个端口时,只能通过删除汇聚组的方式将该端口从汇聚组中删除。手工汇聚端口的LACP 协议为关闭状态,禁止用户使能手工汇聚端口的LACP 协议。
静态LACP 汇聚由用户手工配置,不允许系统自动添加或删除汇聚组中的端口。汇聚组中必须至少包含一个端口。当汇聚组只有一个端口时,只能通过删除汇聚组的方式将该端口从汇聚组中删除。静态汇聚端口的LACP 协议为使能状态,当一个静态汇聚组被删除时,其成员端口将形成一个或多个动态LACP 汇聚,并保持LACP 使能。禁止用户关闭静态汇聚端口的LACP 协议。
动态LACP 汇聚是一种系统自动创建或删除的汇聚,动态汇聚组内端口的添加和删除是协议自动完成的。只有速率和双工属性相同、连接到同一个设备、有相同基本配置的端口才能被动态汇聚在一起。即使只有一个端口也可以创建动态汇聚,此时为单端口汇聚。动态汇聚中,端口的LACP 协议处于使能状态。
关于端口聚合和Vlan Trunk:
链路聚合或端口聚合:它是一个链路问题,解决的是多个物理链路组成一个逻辑链路,增加带宽和成为冗余备份。这个逻辑链路对于我们来说就是一条链路,它即可以是trunk口,也可以是access口。
vlan端口聚合:一般指将多个VLAN通道合成一个通道,共享一个链路(它可以是一个物理链路,也可是一个逻辑链路聚合或端口聚合的口),即前面说的,这个口成为中继端口。这个口必须是TRUNK类型。
另外对于端口汇聚和Vlan Trunk下面的博客说的很清楚,请参考。
https://blog.51cto.com/xiaoxia/539485
问题举例,对于服务器和交换机的端口绑定问题经常会遇到,下面看看FusionCompute上行链路的绑定问吧:
FusionCompute 绑定网口后网络不通
问题描述
1.现场三台服务器,每台服务器上行接交换机
2.每台服务器两个网口绑定做业务
3.绑定模式选择为“基于源目的IP的LACP”
三台服务器绑定完成后,只有一台服务器业务口网络通,另外两台业务网络均不通。
处理过程
1.登录交换机检查配置,其中
GE0/0/7与GE0/0/8接第一台两个业务网口,配置链路聚合Eth-Trunk 20
GE 0/0/9与GE 0/0/10接第二台服务器业务网口,也使用链路聚合Eth-Trunk 20
根因 每个链路聚合组唯一对应一个逻辑接口,即Eth-Trunk接口。第2、3台服务器也配置Eth-Trunk 20 ,导致只有一台服务器业务网络通。
解决方案
- 为GE0/0/9和GE0/0/10,GE0/0/11和GE0/0/12分别创建Eth-Trunk接口,即Eth-Trunk21,Eth-Trunk22。
Interface Eth-Trunk 21 Mode lacp Load-balance src-dst-ip- 将GE0/0/9和GE0/0/10,GE0/0/11和GE0/0/12端口分别删除Eth-Trunk20配置。以GE0/0/9端口为例,配置脚本如下,
Interface GigabitEthernet 0/0/9 Undo eth-trunk- 成员接口加入聚合组。 Interface GigabitEthernet 0/0/9 Eth-trunk 21
- 配置后,第2、3台服务器业务网络正常。
建议与总结
FusionCompute 服务器网口绑定与交换机对接。
绑定模式 交换机对接模式为主备交换机无需做配置
手工负载分担模式 ,该模式下所有活动链路都参与数据的转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
基于源目的IP和端口负荷分担 src-dst-ip(源IP地址异或目的IP地址)模式:根据源IP异或目的IP地址的结果进行负载分担,可以配置普通负载分担模式,
基于报文的IP地址或MAC地址来分担负载
基于源目的MAC的负荷分担 src-dst-mac(源MAC地址异或目的MAC地址)模式:根据源MAC异或目的MAC地址的结果进行负载分担。
基于源目的MAC的LACP 执行命令mode lacp,
配置Eth-Trunk的工作模式。配置时需要保证本端和对端的聚合模式一致。即如果本端配置为LACP模式,那么对端设备也必须要配置为LACP模式。
基于源目的IP的LACP
关于思科和华为的端口聚合:
cisco配置链路聚合模式的命令为channel-group group_number mode { active | auto | desirable | on | passive },共有五种模式。其中active和passive对应华为交换机LACP模式链路聚合的active和passive模式。on对应华为交换机的手工模式链路聚合。auto和desirable是基于思科私有协议PAgP的链路聚合,华为交换机无对应模式。
Lacp负载均衡的几种策略: