3
如不是, 则将此帧直接发出
三、 link type - Hybrid
Hybrid port可以用于交换机之间连接,也可以用于连接用户的计算机, 相对于其它两种类型, 其实际应用较少。此类型的交换机端口可属于多个 VLAN 的 tag port, 也可属于多个 VLAN 的 untagged port, 但需要并仅能属于一个默认 VLAN (native VLAN, untagged port) (一)
1
Hybrid 端口接收报文的规则: (与 trunk port 的接收规则相同) 收到 tagged frame
1.1 首先判断此 802.1q 帧的 VLAN ID 是多少 1.2 然后判断端口是否属于此 VLAN
1.3 如属于(允许)该VLAN, 此将此帧进行二层转发, 否则直接丢弃 2
收到 untagged frame
2.1 首先进行 802.1q 封装, VLAN ID 为此端口所属 native VLAN 2.2 然后, 将此封装后的帧转发此 VLAN 内的其它端口 (二层交换)
(二)
1
2 3
Hybrid 端口发送报文的规则:
分析要转发的 802.1q 帧, 判断其 VLAN 是否是 untagged VLAN 如是 untagged VLAN, 则将此帧进行解封后发出 如不是, 则将此帧直接发出
2.1.4. 配置Trunk port
一、 Trunk 口基本配置
在特权模式下,可以将一个接口配置成一个Trunk 口。 命令 SWITCH(config-if)#switchport mode trunk 作用 定义该接口的类型为二层Trunk 口 如果想把一个Trunk 口的所有Trunk 相关属性都复位成缺省值,请使用no switchport mode 接口配置命令。
二、 定义Trunk 口的许可VLAN 列表
一个Trunk 口缺省可以传输本设备支持的所有VLAN(1-4094)的流量。但是,您也可以通过设置Trunk 口的许可VLAN 列表来限制某些VLAN 的流量不能通过这个Trunk 口。 在特权模式下,可以修改一个Trunk 口的许可VLAN 列表。 命令 作用 SWITCH(config-if)#switchport trunk (可选)配置这个Trunk 口的许可VLAN列表。参
allowed vlan {all |[add|remove|except] } vlan-list 数vlan-list可以是一个VLAN,也可以是一系列VLAN,以小的VLANID 开头,以大的VLAN ID 结尾,中间用-号连接。如:10–20。 all 的含义是许可VLAN 列表包含所有支持的VLAN; add 表示将指定VLAN 列表加入许可VLAN 列表; remove 表示将指定VLAN 列表从许可VLAN 列表中删除; except 表示将除列出的VLAN列表外的所有VLAN加入许可VLAN 列表; 如果想把Trunk 的许可VLAN 列表改为缺省的许可所有VLAN 的状态,请使用no switchport trunk allowed vlan 接口配置命令。 下面是一个把VLAN 2 从端口 1/15 中移出的例子: SWITCH(config)# interface fastethernet 1/15 SWITCH(config-if)# switchport trunk allowed vlan remove 2 SWITCH(config-if)# end
SWITCH# show interfaces fastethernet 1/15 switchport
Interface Switchport Mode Access Native Protected VLAN lists --------- ---------- ---- ------ ------ -------- ---------- Gi0/15 enabled TRUNK 1 1 Disabled 1,3-4094
三、 配置Native VLAN
一个Trunk 口能够收发TAG 或者UNTAG 的802.1Q 帧。其中UNTAG 帧用来传输Native VLAN 的流量。缺省的Native VLAN 是VLAN 1。
在特权模式下,可以为一个Trunk 口配置Native VLAN。
命令 SWITCH(config-if)# switchport trunk native vlan vlan-id 配置Native VLAN 作用 如果想把Trunk 的Native VLAN 列表改回缺省的VLAN 1,请使用no switchport trunk native vlan 接口配置命令。
如果一个帧带有Native VLAN 的VLAN ID,在通过这个Trunk 口转发时,会自动被剥去TAG。
当把一个接口的Native VLAN 设置为一个不存在的VLAN 时,设备不会自动创建此VLAN。此外,一个接口的Native VLAN 可以不在接口的许可VLAN 列表中。此时,Native VLAN 的流量不能通过该接口。
四、 显示VLAN
在特权模式下,才可以查看VLAN 的信息。显示的信息包括VLAN VID、VLAN 状态、VLAN 成员端口以及VLAN 配置信息。以下罗列了相关的显示命令: 命令 show vlan [id vlan-id] 下面是一个显示VLAN 的例子:
作用 显示所有或指定VLAN 的参数
SWITCH#show vlan
VLAN Name Status Ports
---- -------- -------- -------------------------------
1 VLAN0001 STATIC Gi0/1, Gi0/5, Gi0/6, Gi0/7Gi0/8, Gi0/9, Gi0/10, Gi0/11
Gi0/12, Gi0/13, Gi0/14, Gi0/15 Gi0/16, Gi0/17, Gi0/18, Gi0/19 Gi0/20, Gi0/21, Gi0/22, Gi0/23,Gi0/24
10 VLAN0010 STATIC Gi0/2, Gi0/3
20 VLAN0020 STATIC Gi0/2, Gi0/3, Gi0/4
3. 地址学习
3.1. 技术知识
3.1.1. 基本概念
交换机之所以能够直接对目的节点发送数据包,而不是像集线器一样以广播方式对所有节点发送数据包,最关键的技术就是交换机可以识别连在网络上的节点的网卡MAC地址,并把它们放到一个叫做MAC地址表的地方。这个MAC地址表存放于交换机的缓存中,这样当需要向目的地址发送数据时,交换机就可在MAC地址表中查找这个MAC地址的节点位置,然后直接向这个位置的节点发送。
根据自身特点和配置方式等的不同,MAC地址表项可以分为两类:
1. 静态MAC地址表项:也称为“永久地址”,由用户手工添加和删除,不会随着时间老化。
对于一个设备变动较小的网络,手工添加静态地址表项可以减少网络中的广播流量。 2. 动态MAC地址表项:指可以按照用户配置的老化时间而老化掉的MAC地址表项,交换机
可以通过MAC地址学习机制或通过用户手工建立的方式添加动态MAC地址表项。 所谓MAC地址数量(或MAC表容量)是指交换机的MAC地址表中可以最多存储的MAC地址数量,不同档次的交换机每个端口所能够支持的MAC数量不同。在交换机的每个端口,都需要足够的缓存来记忆这些MAC地址,所以Buffer(缓存)容量的大小就决定了相应交换机所能记忆的MAC地址数多少。
交换机中各端口具有自动学习地址的功能,通过端口发送和接收的帧的源地址(源MAC地址、交换机端口号)将存储到地址表中。MAC老化时间是定时器,它代表了动态学习的MAC地址在没有收到更新的情况下的最大存活时间。从一个MAC地址记录加入地址表以后开始计时,如果在老化时间内各端口未收到源地址为该MAC地址的帧,那么,这些地址将从动态转发地址表(由源MAC地址、目的MAC地址和它们相对应的交换机的端口号)中被删除。静态MAC地址表不受地址老化时间影响。
3.1.2. MAC地址动态学习
MAC 地址动态学习(MAC 地址表的维护)的具体实现过程: (SVL 模式) 1.
如在交换机端口 PORT1 收到以太帧后,首先会检查帧的有效性,如长度是否有效?FCS是否正确? 2. 3. 4. 5.
如帧是无效的就直接丢弃
如帧是有效的,则提出其源MAC地址为 MAC1 查找MAC地址表,有否有 MAC1 的项
如果没有,交换机将记录该MAC地址和接收该数据帧的端口 (MAC1+PORT1),并将此表项的存活时间设为 MAC老化时间 6.
如找到相关表项, 交换机将更新此表项, 将 MAC1 的端口更新为 PORT1,并将此表项的存活时间设为 MAC老化时间 7.
交换机会随时间变化, 自动减少地址表中每个表项的的存活时间, 如时间为0, 则此项被清除
3.1.3. IVL & SVL
交换机内Mac表存在的两种方式(IEEE 802.1Q定义)。 1. IVL: Independent Vlan Learning 独立Vlan学习
IVL模式时,Vlan Id + MAC 地址是 MAC 表的主键,即每个Vlan Id 加 MAC 的组合在表中可以唯一标示一个表项,MAC表中可以包括多个Mac相同但 VLAN ID 不同的表项
2. SVL: Shared Vlan Learning 共享式Vlan学习。
IVL模式时,MAC 地址是 MAC 表的主键,即每个 MAC 在表中可以唯一标示一个表项,MAC表中不会包括VLAN ID内容。
当前常用的交换机都是IVL模式(或可支持 IVL 配置)。
3.1.4. MAC 地址表管理
一、 设置地址老化时间 命令 作用 SWITCH(config)#mac-address-table 设置一个地址被学习后将保留在动态地 aging-time [0 |10-1000000] 址表中的时间长度,单位是秒,范围是 10-1000000 秒,缺省为300 秒。当你 设置这个值为0 时,地址老化功能将被关 闭,学习到的地址将不会被老化。 您可以在全局配置模式下通过命令no mac-address-table aging-time 来将地址老化时间恢复为缺省值。
二、 删除动态地址表项
在特权模式下,您可以使用命令clear mac-address-table dynamic 删除设备上所有的动态地址;您可以使用命令clear mac-address-table dynamic address mac-address 删除一个特定MAC 地址;您可以使用命令clear mac-addresstable dynamic interface interface-id 删除一个特定物理端口或Aggregate Port 上的所有动态地址;您也可以使用命令clear mac-address-table dynamic vlan vlan-id 删除指定VLAN 上的所有动态地址。
您可以使用特权模式下的命令show mac-address-table dynamic 来验证相应的动态地址是否已经被删除。
三、 增加和删除静态地址表项
如果您要增加一个静态地址,您需要指定MAC 地址(包的目的地址),VLAN(这个静态地址将加入哪个VLAN 的地址表中),接口(目的地址为指定MAC 地址的包将被转发到的接口)。
添加一个静态地址:
命令 作用 SWITCH(config)#mac-address-table mac-addr:指定表项对应的目的MAC 地址 static mac-add vlan vlan-id interface vlan-id:指定该地址所属的VLAN interface-id interface-id:包将转发到的接口(可以是物理端口 或Aggregate Port) 当设备在vlan-id 指定的VLAN 上接收到以mac-addr 指定的地址为目的地址的包时,这个包将被转发到interface-id 指定的接口上。 您可以在全局配置模式下通过命令no mac-address-table static mac-addr vlan
vlan-id interface interface-id 来删除一个静态地址表项。
下面的例子说明了如何配置一个静态地址00d0.f800.073c,当在VLAN 4 中接受到目的地址为这个地址的包时,这个包将被转发到指定的接口Gigabitethernet 1/3 上。