Eth-trunk
- 链路聚合,定义出一个逻辑聚合口,把物理接口和逻辑接口关联,此时在STP中,会把多个物理接口看成一个逻辑接口,此时不会出现环路。
接口负载分担(逐包|逐流)
- 基于IP的散列算法能保证包顺序,但不能保证带宽利用率。
- 基于包的散列算法能保证带宽利用率,但不能保证包的顺序。
- 逐包发送
-
- 一个数据,分成多个数据包,会从0,1,2编号依次轮询发送。优势:公平,负载分担均匀,缺点就是如果有一条线有一点点卡,那么就可能会出现数据包的顺序不一样,出现乱序。
- 逐流发送
-
- 流一般由五元组定义(源MAC,目的MAC,源IP,目的IP,协议)
- 对数据流进行哈希计算得到一个数,用这个数字除以物理链路的数量,看余数,如果余数为0,则走0号链路,余数为1,则走1号链路,余数为2,则走2号链路。实现了不同数据流走不同链路。
- 好处:弥补了逐包的问题,不会出现乱序,但是不会做到绝对的公平负载分担。
- 如果一直是两台设备之间相同服务,不建议使用逐流,因为MAC地址IP都相同,所以会一直走一条路。
链路聚合模式(手工负载|LACP)
手工负载分担模式
- 当两台设备中至少有一台不支持LACP协议时,可使用手工负载分担模式的Eth-Trunk来增加设备间的带宽及可靠性。
- 在手工负载分担模式下,加入Eth-Trunk的链路都进行数据的转发。
LACP模式
- LACP模式也称为M:N模式,其中M条链路处于活动状态转发数据,N条链路处于非活动状态作为备份链路。
- 设置的活跃链路数为2,即2条链路处于转发状态,1条链路处于备份状态,不转发数据,只有当活跃的链路出现故障时,备份链路才进行转发。
LCAP模式活动链路选举
LCAP模式链路抢占机制
- LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态,这就是抢占延时。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
-
- 主链路故障,肯定会启用备用链路,但是如果主链路恢复,可以切回:一般主链路的带宽比备用链路的带宽大,所以为了通信质量,要切回带宽大的主线路。不可以切换:如果主链路与备链路带宽相同,不建议切换,因为切换的时候会产生丢包,备链路启用后,主链路会开始备用。
配置
[Huawei]int Eth-Trunk 0 创建Eth-trunk接口0
[Huawei-Eth-Trunk0]mode manual load-balance|lacp-static 采用手动配置|LACP模式
[Huawei-Eth-Trunk0]lacp preempt enable 开启活跃端口枪占
[Huawei-Eth-Trunk0]load-balance dst-mac 基于什么来定义逐流
[Huawei-Eth-Trunk0]int g0/0/1 进入接口
[Huawei-GigabitEthernet0/0/1]eth-trunk 0 将接口加入到eth-trunk 0
[Huawei-Eth-Trunk0]int g0/0/2
[Huawei-GigabitEthernet0/0/2]eth-trunk 0
[Huawei]display eth-trunk 0
[Huawei]load-balance flow|packet 逐包|逐流(逐流需要在局部模式下配置逐流的定义)
Eth-Trunk0's state information is:
WorkingMode: NORMAL Hash arithmetic: According to SIP-XOR-DIP
Least Active-linknumber: 1 Max Bandwidth-affected-linknumber: 8
Operate status: up Number Of Up Port In Trunk: 2
--------------------------------------------------------------------------------
PortName Status Weight
GigabitEthernet0/0/1 Up 1
GigabitEthernet0/0/2 Up 1
VLAN聚合
- 节约网关IP地址,解决相同网段,不同VLAN,能够互访;既能做到二层广播隔离,也能做到三层可以互访。
- 主VLAN中不可以有接口,从VLAN不可以有VLANIF
VLAN聚合的应用
传统VLAN方式每一个VLAN需要划分不同的IP地址网段,在本例中需要耗费4个IP网段和产生4条路由条目;Super-VLAN方式只需要分配一个IP地址网段。下属二层VLAN共用同一个IP地址网段,共用同一个三层网关,同时VLAN之间保持二层隔离。
相同Sub-VLAN内部通信
- 当Sub-VLAN与其他设备进行二层通信时,与普通的VLAN内二层通信无区别。
- 由于Super-VLAN不属于任何物理接口,即不会处理任何携带Super-VLAN标签的报文。
- Sub-VLAN二层通信过程举例:
-
- 从PC1进入SW1的报文会被打上VLAN10的Tag。在SW1中这个Tag不会因为VLAN10是VLAN100的Sub-VLAN而变为VLAN100的Tag。
- 当报文从SW1的GE0/0/0出去时,依然携带VLAN10的Tag。也就是说,SW1本身不会发出VLAN100的报文。就算其他设备有VLAN100的报文发送到该设备上,这些报文也会因为SW1上没有VLAN100应的物理接口而被丢弃。
- 对于其他设备而言,有效的VLAN只有Sub-VLAN10,20和30, 所有的报文都是在这些VLAN中交互的。因此,SW1上虽然配置了VLAN聚合,但与其他设备的二层通信,不会涉及到Super-VLAN,与正常的二层通信流程一样。
- 当Sub-VLAN内的PC需要与其他网络进行三层通信时,首先将数据发往默认网关,即Super-VLAN对应的VLANIF,再进行路由。
不同Sub-VLAN之间通信
- 不同Sub-VLAN之间进行通信,IP地址属于相同网段,因此主机会发送ARP请求,但是实际不同Sub-VLAN之间属于不同的广播域,因而ARP报文无法传递到其他Sub-VLAN,ARP请求得不到响应,设备无法学习到对端MAC地址,从而无法完成Sub-VLAN之间通信。
- 要实现Sub-VLAN之间的通信,需要在Super-VLAN 的VLANIF中开启ARP代理功能。
- PC1发现PC2与自己在同一网段,且自己ARP表无PC2对应表项,则直接发送ARP广播请求PC2的MAC地址。
- 作为网关的Super-VLAN对应的VLANIF 100收到PC1的ARP请求,由于网关上使能Sub-VLAN间的ARP代理功能,则向Super-VLAN 100的所有Sub-VLAN接口发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把自己的MAC地址回应给PC1,PC1之后要发给PC2的报文都先发送给网关,由网关做三层转发。
二层和三层转发
- 二层转发,直接请求目的ip的arp,三层转发,交给网关来进行转发。
- 分别用自己的ip地址和对方的ip地址与自己的掩码进行与运算得到网络号,网络号若相同,则使用二层转发,不同,则使用三层转发。
- 因为网段相同,所以A访问B时采用的是二层转发,会直接广播向B请求ARP,此时广播最远可以传到网关;又因为网关开启了arp代理,他将会重新产生一个ARP,欺骗别人,自己是IP是A,MAC还是自己的;B收到后回复消息给网关,网关得到了B的MAC信息,再次去欺骗A,我是B,MAC地址是网关的MAC,这样A就会学到B的MAC,B学到了A的MAC,MAC地址都是网关的MAC。这样AB再次互访是,数据都会发给网关,网关查看MAC是自己的就开始解封装,但是ip地址不是自己的,就开始查路由表,实现了三层转发。
配置
vlan batch 10 20 30
#
vlan 10
aggregate-vlan 设置为Super vlan
access-vlan 20 30 将20 30设置为Sub vlan
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 30
MUX VLAN
- 任何一个从VLAN与主VLAN之间都可以互访;从VLAN之间无法互访。
- 主VLAN中可以有接口,真机上可以开VLANIF,可以做arp代理。
基本概念
- MUX VLAN分为Principal VLAN(主VLAN)和Subordinate VLAN(从VLAN),Subordinate VLAN又分为Separate VLAN(隔离型从VLAN)和Group VLAN(互通型从VLAN)。
配置
vlan batch 10 20 30 100
vlan 100
mux-vlan 设置为主VLAN
subordinate separate 30 隔离型
subordinate group 10 20 互通型
#
interface Gigabitethernet0/0/1
port link-type access
port default vlan 10
port mux-vlan enable 接口开启MUX VLAN功能,发现此vlan在主vlan里面后,就会把标签脱掉
#
interface Gigabitethernet0/0/2
port link-type access
port default vlan 20
port mux-vlan enable
#
interface Gigabitethernet0/0/3
port link-type access
port default vlan 30
port mux-vlan enable
QinQ
- 用户报文在公网上传递时携带了两层Tag,内层是私网Tag,外层是公网Tag。
QinQ的封装结构
- QinQ封装报文是在无标签的以太网数据帧的源MAC地址字段后面加上两个VLAN标签构成。
- TPID(Tag Protocol Identifier,标签协议标识)表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- CFI (Canonical Format Indicator,标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。
基本QinQ
- 基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省VLAN 的VLAN Tag。如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是不带VLAN Tag的报文,该报文就成为带有端口缺省VLAN Tag的报文。
- 基于端口的QinQ的缺点是外层VLAN Tag封装方式固定,不能根据业务种类选择外层VLAN Tag封装的方式,从而很难有效支持多业务的灵活运营。
- SW1收到VLAN ID为10和20的报文,将该报文发给SW2。
- SW2收到该报文后,在该报文原有Tag的外侧再添加一层VLAN ID 为100的外层Tag。
- 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发。
- SW3收到VLAN100的报文后,剥离报文的外层Tag(VLAN ID 为100)。将报文发送给SW4,此时报文只有一层Tag(VLAN ID 为10或20)。
- SW4收到该报文,根据VLAN ID和目的MAC地址进行相应的转发。
灵活QinQ
- 对进入二层QinQ接口的帧,可以根据不同的内层Tag而加上不同的外层Tag,对于用户VLAN的划分更加细致
- SW1收到VLAN ID为10和20的报文,将该报文转发给SW2。
- SW2收到VLAN ID为10的报文后,添加一层VLAN ID 为100 的外层Tag;SW2收到VLAN ID为20的报文后,添加一层VLAN ID为200的外层Tag。
- 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发。
- SW3收到报文后,剥离报文的外层Tag(VLAN ID 为100或200)。将报文发送给SW4,此时报文只有一层Tag(VLAN ID 为10或20)。
- SW4收到报文,根据VLAN ID和目的MAC地址进行相应的转发。
配置
port link-type dot1q-tunel 在这个接口进入打上Tag,从这个接口发出剥离Tag
qinq protocol 9100 告诉trunk链路,这是一个双层Tag,9100是固定值