关注IT
关注系统玩家

Trunk and Channel-group详解

1  端口的类型

1.1 Cisco交换机

对Cisco设备来说,交换机的端口分三种:access、trunk、三层口(no switchport)。

1.1.1 access

a) 概念

    一个access端口只能属于一个VLAN,它只能转发这个VLAN的数据,它是一个端口最后的归

宿,即它不能和所连的端口静态或动态地形成trunk,那么它就回归为access。Cisco交换机

3550的端口缺省为dynamic desirable,而3560的端口缺省为dynamic auto。

b) 设置

缺省情况下端口处于此模式。如果要明确设置端口为access,要用静态的方法设置:

SW(config-if)# switchport mode access

1.1.2 trunk

a) 概念

    当一个端口要转发多个VLAN的流量,那么这个端口要属于多个VLAN,对Cisco的设备来说,

这个端口的类型要设置为trunk,也就是当一个端口属于trunk类型,那么它属于任何VLAN。

b) 设置

Trunk可以静态或动态地设置:

静态: SW(config-if)# switchport mode trunk

动态:用DTP(Dynamic Trunking Protocol)自动协商,如果成功 —trunk,如果失败—access

c) 查看trunk的状态

 6786838741

d) 要想精确地允许特定的VLAN要用命令:

4492164920

1.2 System x交换机

IBM交换机的端口分为untagging和tagging端口

1.2.1 untagging端口

a) 概念

相同于Cisco交换机的access口,是端口的缺省模式。

b) 设置

ToR交换机端口缺省为此模式,可用下列命令明确设置:

G8000(config-if)#no tagging

1.2.2 tagging端口

a) 概念

    相当于Cisco交换机的trunk口,不同的是,缺省情况下,trunk口属于所有的VLAN,tagging

口可以属于多个或所有VLAN,但要手工加入。

b) 设置

G8000(config-if)#tagging

G8000(config)#vlan 100

G8000(config-vlan)#member 5

1.2.3 IBM刀片交换机的特殊性

外部端口缺省为untagging端口,内部端口缺省为tagging端口。

1.2.4 IBM NOS Version 7.6以后版本的变化

除继续保留以上的端口特性外,同时完全与Cisco的端口特性相同包括操作命令,如:

7003720377

1856990238

1.3 华为交换机

华为交换机的端口分为access、trunk、hybrid

1.3.1 Access

a) 概念

同Cisco的access

b) 设置

缺省为此模式。可用命令明确设置

[Sysnam] system-view

[Sysnam] interface GigabitEthernet 1/0/1

[Sysnam-GigabitEthernet1/0/1] port link-type access

[Sysnam-GigabitEthernet1/0/1] port access vlan 100

1.3.2 Trunk

a) 概念

    同Cisco的trunk。不同的是缺省情况下,华为的trunk只属于VLAN 1,要想属于哪些VLAN,

要手工加入。

b) 设置

[Sysnam] system-view

[Sysnam] interface GigabitEthernet 1/0/1

[Sysnam-GigabitEthernet1/0/1] port link-type trunk

[Sysnam-GigabitEthernet1/0/1] port trunk permit vlan 100

1.3.3 hybrid

a) 概念

    华为交换机的特殊端口类型,介于access和trunk之间即杂合模式,象trunk一样可以让多个

VLAN通过,但又不象trunk那样,除了PVID的帧外,把其它所有的VLAN都要打上TAG发去,

hybrid端口可对这些非PVID VLAN打TAG或不打TAG。

b) 设置

缺省情况下:hybrid端口只允许VLAN 1的帧以untagged的方式发出。

[Sysnam] system-view

[Sysnam] interface GigabitEthernet 1/0/1

[Sysnam-GigabitEthernet1/0/1] port link-type hybrid

[Sysnam-GigabitEthernet1/0/1] port hybrid pvid  vlan 1

[Sysnam-GigabitEthernet1/0/1] port hybrid vlan 1

[Sysnam-GigabitEthernet1/0/1] port hybrid vlan 100 untagged

[Sysnam-GigabitEthernet1/0/1] port hybrid vlan 100 tagged

2  VLAN TAG详解

2.1 基本术语

a) 交换机端口分为Tagged端口和Untagged端口。当把一个端口的tag属性设置成tagging后,

这个端口为Tagged端口,反之为Untagged端口。

b) 帧分为Tagged帧和Untagged帧。

2.2 交换机处理帧的原则如下:

a) 当一个Tagged帧进入一个Untagged端口,如果端口中的PVID与帧的TAG不同,那么帧被丢弃。

b) 当一个Tagged帧进入一个Tagged端口,如果端口不是帧TAG的成员,那么帧被丢弃。

c) 当一个Untagged帧进入端口时,Untagged帧按照入端口的PVID处理,即被送到入端

口PVID所在的出端口。

d) 一个Untagged帧出Untagged端口时,Untagged帧不变;一个Tagged 帧出 Untagged

端口时,TAG被剥掉。

e) 当一个Untagged帧出Tagged端口时,帧被打上端口PVID的TAG ; 当一个Tagged帧出

Tagged端口时,TAG不变(只有下面除外)。

f) 当一个Tagged帧的TAG与Tagged出端口的PVID相同时,TAG被剥掉,即发出的帧是不带

TAG的,如果在这种情况下,发出的帧要想保留TAG,那么用命令:(config-if)#tag-pvid

2.3 VLAN TAG的实例分析

实例一:理解下述

5564591595

一个untagged的端口收到一个打TAG的帧,如果帧中的TAG与端口的PVID不同,那么这个帧会被丢掉。

实例二:理解下述

8168668008

    什么样的交换机端口需要打TAG,只有这样一些端口才需要:一是连接其它交换机的端口;

二是连接有能力打TAG的终端,如一个服务器的网卡可以打TAG.

    实例三:如何把一个服务器加入到一个VLAN 100?

(1) 如果服务器网卡没带TAG 100,那么设置交换机的接入端口的PVID为  100,但不需要

将置端口为TAG端口,也最好不要,因为如果将此接入端口置成TAG端口,那么当此端口发

送帧时,也会打TAG,有时有可能被一些非TAG网卡把打TAG的帧丢掉;

(2) 如果服务器的网卡带TAG 100,那么交换机的接入端口如果是非TAG口,那必须要求该

端口的PVID为100;如果接入端口是TAG口,那接入端口的PVID不必须为100,只要这个端

口是VLAN100的成员即可。

    实例四:VMware中vSwitch的两个特殊VLAN:VLAN 0和VLAN 4095

    VMware虚机VM的VLAN TAG是打在vSwitch的相应端口组(port-group)上。

(1) VLAN 0是不打TAG,它会丢弃收到的打TAG的帧,所以交换机的接入端口要保证是非TAG

口,如果是TAG口,缺省情况下只有发送PVID VLAN的帧不打TAG,vSwitch可以接收;

(2) VLAN 4095是接收所有打TAG和非TAG的帧,如果不知什么情况不能,那么这个VLAN 4095是万能的。

3  channel-group

3.1 定义

Channel-group是把几个端口绑在一起,形成一个逻辑端口,一般最多可绑定8个端口。

3.2 作用

增加带宽;均衡负载;链路冗余

3.2.1 增加带宽

    由于STP的作用,即便是有多个链路,但只能有一条链路是处于forwarding状态,而其它链

路处于block状态,所以在STP下,多条链路只能起到链路冗余的作用,而不能增加带宽。如果用

channel-group,那么多条链路逻辑上是一条链路。

3.2.2 均衡负载

数据流会按照一定的算法均衡在几条绑定的各个链路上,其算法组合为:

3500910368

缺省为基于源IP(src-dst-ip)。

3.2.3 内在的(build-in)链路冗余功能

    当一条链路失效后,数据会自动调整到当前激活的链路上,且几乎无延迟,而STP层面上的链

路冗余要经过30秒的切换。

3.3 分类:

3.3.1 静态(Etherchannel)

(a)配置命令:

3545622973

(b)注意事项:

    一是要明确把端口的模式置为trunk,二是明确trunk的封装协议,三是在用静态绑定时,两边

的手工操作要在30秒(绑定端口不一致检测timer)完成,否则端口会被自动down 掉(error-

disable),且显示的错误原因是非常怪的unconnected。所以最保险的操作方式是先把端口

shutdown,配置好后再no shut.

(C) IBM交换机的channel-group

    IBM交换机上叫TRUNK,只支持802.1Q,不支持ISL。具体配置如下:

 5356775042

9736583257

4791471865

(d) 优点和缺点

优点:简单配置,不存在不兼容情况;

缺点:不管对方,容易造成网络问题。

(e) 案例分析:

HP GbE2C 上海浦发信用卡中心down网20分钟

    在修改网络配置时,由于单方面关闭了GbE2C 上的端口绑定,而对方CISCO设备6500依然

开启静态端口绑定,造成端口不一致,而由于一些原因,6500没有进行端口不一致检测,所以

也没有对端口30秒后进行error-disable,因此造成环路,形成了广播风暴。注意:此时即便是

开起了STP也无济于事

3.3.2 动态

3.3.2.1 种类

    IEEE的LACP(802.3ad)和Cisco的PAgP。其模式LACP分为:active和passive; PAgP分为desire

和 auto。

3.3.2.2 配置

3.3.2.2.1 Cisco交换机

(a) 的配置命令:

(config)#interface FastEthernet0/21

(config-if)switchport trunk encapsulation dot1q

(config-if)switchport mode trunk

(config)#channel-group 24 mode active

(b) 查看状态

3824090286

1999630784

注意以上pot-channel3的cost值为12

8186230459

3.3.2.2 System x交换机

IBM交换机支持LACP,不支持PAgP,

(a) 配置命令

2626933344

3.3.3 注意事项

    IBM交换机在与CISCO交换机互联时,思科交换机缺省的Trunk封装协议为ISL,所以在配

CISCO的交换机时,一定要明确配置封装协议为DOT1Q IBM交换机在与CISCO交换机互联时,

思科交换机缺省的绑定方式为AUTO,这个方式为PAgP,一定要选为active/passive(这要

取决于对方,但选了active肯定不会出现问题)。

3.3.3 Portchannel扩展: LACP port priority and system priority

    为了提供更进一步的冗余,当绑定端口超过8个时,比如10个端口,那么哪8个端口首先进

行绑定呢?这就要取决于LACP

system priority and LACP port priority.

The switch  with the lowest lacp system-priority makes the

decision about which ports are actively participating in

the etherchannel at any given time.

4  端口绑定的Load Balance算法(HASH)

端口绑定的负载均衡是以session based,不是packet based,

以下是IBM交换机所支持的HASH算法:

1524496719

缺省情况下的HASH算法是:

3695975033

一般情况下,缺省的算法可能与交换机的类型及操作系统的版本不同而不同,但一般为SIP+DIP,

这个缺省算法一般也能够满足IP应用,如果让流量更均衡,还要使能ingress和L4port。

5  练习

5.1 拓朴

 6105698191

5.2 操作步骤

Step 1: 在两个交换机上建VLAN1—VLAN4,并把相应的端口置入相应的VLAN

a)把要做绑定的端口置成taggging

G8000-1(config)interface port 3,4

G8000-1(config-if)#tagging

b)把连接服务器的端口放入相应的VLAN,成为该VLAN的成员

G8000(config)#vlan 2

G8000(config-vlan)#enable

G8000(config-vlan)#member 2,3,4

Step 2: 用Etherchanne实现相同VLAN跨交换机通信。

a) 建EtherChannel

G8000-1(config)interface port 3,4

G8000-1(config-if)#shutdown

G8000-1(config)#portchannel 1 port 3,4

G8000-1(config)#portchannel 1 enable

b) 查看EtherChannel

G8000-1#show portchannel info

c) 在G8000-2上做以上相同的操作

d) 打开端口3、4

G8000-1(config)#interface port 3,4

G8000-1(config-if)#no shutdown

Step 3: 测试连通

Server1与Server3互ping、Server2与Server4互ping

Step 4 :验证负载均衡

a) G8000#show interface port 3 interface-counter

interface-counter

G8000#show interface port 4 interface-counter

interface-counter

b) 用WEB界面看端口3、4的counter

c) 通过端口镜像,用抓包器如Wireshark抓包,例如,在端口5看端口3的流量

G8000-1(config)#port-mirror monitor 5 mirror 3 both

G8000-1(config)#port-mirror enable

Step 5 :验证链路冗余

拔掉任一条两个交换机之间的连线,服务器之间通信继续。

附:如果用LACP做链路聚合,那么用下列命取代step 2

G8000-1(config)#interface port 3,4

G8000-1(config-if)#lacp key 100

G8000-1(config-if)lacp mode active

G8000-1#show lacp info

未经允许不得转载:系统玩家 » Trunk and Channel-group详解

分享到:更多 ()
喜欢 0
rancher

评论 抢沙发

评论前必须登录!