Chinaunix首页 | 论坛 | 博客
  • 博客访问: 387691
  • 博文数量: 165
  • 博客积分: 436
  • 博客等级: 下士
  • 技术积分: 887
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-10 02:49
文章分类

全部博文(165)

文章存档

2012年(95)

2011年(70)

分类:

2012-02-09 22:56:24

通过上节介绍的Isolate-user-VLAN配置同步,来自Secondary VLAN的报文能以不打VLAN标记方式从上行端口发送出去,来自Isolate-user-VLAN的报文也能以不打VLAN标记方式从下行端口发送出去。这些报文是如何找到相应的出端口的呢?那就是通过MAC地址学习。

在没有配置Isolate-user-VLAN前,交换机是通过MAC地址学习功能来学习目的MAC地址的。在如图20-3所示的网络中交换机会生成并维护一张MAC地址表(如表20-3所示)。如果上行的Device设备Host 2发送报文(源MAC地址mac_a,目的MACmac_2),交换机会为报文打上该端口的默认VLAN IDVLAN标记,即5,然后以mac_2+VLAN 5为条件去查询MAC地址表。由于找不到相应的表项,该报文会在VLAN 5内广播,从Eth1/2Eth1/3同时发送出去。

同步前的MAC地址转发表

目的MAC地址

对应VLAN

对应出端口

mac_2

2

Eth1/2

mac_3

3

Eth1/3

mac_a

5

Eth1/5

同理,每次上行和下行的报文都需要广播才能到达目的地。当Secondary VLANIsolate-user-VLAN包含的端口较多时,这样的处理方式会占用大量的带宽资源,而且不安全(广播报文容易被截获和侦听)。通过Isolate-user-VLANMAC地址同步机制可以解决这个问题。Isolate-user-VLANMAC地址同步机制如下(是一种相互复制关系):

l   Secondary VLANIsolate-user-VLAN的同步,即下行端口在Secondary VLAN内学习到的动态MAC地址都会自动同步复制到Isolate-user-VLAN内。

l   Isolate-user-VLANSecondary VLAN的同步,即上行端口在Isolate-user-VLAN内学习到的动态MAC地址会自动同步复制到所有的Secondary VLAN内。

Isolate-user-VLAN下面配置了很多Secondary VLAN时,MAC地址同步复制后可能会导致MAC地址表过于庞大,从而影响设备的转发性能。同时考虑到用户的下行流量要远远大于上行流量,下行流量需要进行单播,上行流量可以进行广播,所以Secondary VLANIsolate-user-VLAN的同步复制在所有产品中都支持,而Isolate-user-VLANSecondary VLAN的同步复制仅部分产品(主要是一些中高端的交换机系列)支持。

在如图20-3所示的网络中,MAC地址同步后各VLAN中的MAC地址表项如表20-4所示。从中可以看出,Isolate-user-VLAN 5中不仅有自己的mac_a表项,还添加了Secondary VLAN 2中的mac_2Secondary VLAN 3中的mac_3这两个表项,包括了整个Isolate-user-VLAN中的所有MAC地址表项;在Secondary VLAN 2中也不仅有自己的mac_2表项,还添加了Isolate-user-VLAN 5中的mac_a表项;在Secondary VLAN 3中也不仅有自己的mac_3表项,也添加了Isolate-user-VLAN 5中的mac_a表项。每个Secondary VLAN中除了包括自己的MAC地址表项外,还将包括所映射的Isolate-user-VLAN中的MAC地址表项。这样一来,在整个Isolate-user-VLAN中不会再需要进行MAC地址广播寻址了,可以直接从自己的MAC地址表中找到对应的MAC地址表项(包括目的MAC地址和对应的出端口),提高了报文发送效率。

同步后的MAC地址转发表

目的MAC地址

对应VLAN

对应出端口

mac_2

2

Eth1/2

mac_2

5

Eth1/2

mac_3

3

Eth1/3

mac_3

5

Eth1/3

mac_a

5

Eth1/5

mac_a

2

Eth1/5

mac_a

3

Eth1/5

下面再通过图20-3Host 2的报文流程来阐述Isolate-user-VLAN的实现机制。

1Host 2第一次发出单播上行报文,报文为不打VLAN标记的,源MAC地址为mac_2,目的MAC地址为mac_a

2Switch通过下行端口Ethernet1/2收到报文后会给报文打上端口默认VLAN的标记2(因为Ethernet1/2是属于VLAN 2Access端口,并学习报文中的源MAC地址(mac_2)及相关信息,形成MAC地址表项(mac_2+VLAN2+Eth1/2)(此时的mac_2是作为该端口将来转发报文的目的MAC地址VLAN 2表示mac_2主机在VLAN 2中,出接口为Ethernet1/2)。

3)根据MAC地址同步原则,该MAC地址同时同步学习到VLAN 5内,设备同时记录MAC地址表项(mac_2+VLAN5+Eth1/2)

4)由于Switch当前没有报文中目的MAC地址mac_aMAC表项,因此设备会在VLAN 2内广播该报文。

5)由于配置了配置同步功能,交换机的上行Ethernet1/5端口允许VLAN 2的报文以不打VLAN标记方式通过,所以报文去掉VLAN标记后通过Ethernet1/5发送出去。

6Device 收到报文后,比较发现自己的MAC地址正是广播报文中的目的mac_a,于是进行响应。交换机通过其上行端口Ethernet1/5收到响应报文,给报文打上该端口默认VLAN的标记5,并学习报文中的源MAC地址,记录MAC地址表项(mac_a+VLAN5+Eth1/5)。通过MAC地址同步功能,又在两个Secondary VLAN中生成两条MAC地址表项(mac_a+VLAN2+Eth1/5)(mac_a+VLAN3+Eth1/5)

7Switch以“mac_2+VLAN 5为条件(因为原来的广播报文中的源MAC地址为mac_a)去查询MAC地址表,找到出接口Ethernet1/2,并将报文去VLAN标记后发送给Host 2。这样就实现了Host 2Device之间的报文交互。

阅读(1181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~