曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5725|回复: 10
打印 上一主题 下一主题

VLAN 学习总结

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-11-15 17:16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文转载。

什么是 VLAN

VLAN( Virtual LAN),翻译成中文是“虚拟局域网”。 LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN 所指的 LAN 特指使用路由器分割的网络——也就是广播域。

在此让我们先复习一下广播域的概念。 广播域,指的是广播帧(目标 MAC 地址全部为 1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧( Multicast Frame)和目标不明的单播帧( Unknown Unicast Frame)也能在同一个广播域中
畅行无阻。本来,二层交换机只能构建单一的广播域,不过使用 VLAN 功能后,它能够将网络分割成多个广播域。

未分割广播域时……

那么,为什么需要分割广播域呢?那是因为, 如果仅有一个广播域,有可能会影响到网络整体的传输性能。具体原因,请参看附图加深理解。





图中,是一个由 5 台二层交换机(交换机 1~5)连接了大量客户机构成的网络。假设这时,计算机 A 需要与计算机 B 通信。在基于以太网的通信中,必须在数据帧中指定目标 MAC地址才能正常通信,因此计算机 A 必须先广播“ ARP 请求( ARP Request)信息”,来尝试
获取计算机 B 的 MAC 地址。


交换机 1 收到广播帧( ARP 请求)后,会将它转发给除接收端口外的其他所有端口,也就是 Flooding 了。接着,交换机 2 收到广播帧后也会 Flooding。交换机 3、 4、 5 也还会 Flooding。最终 ARP 请求会被转发到同一网络中的所有客户机上,如下图所示:






请大家注意一下,这个 ARP 请求原本是为了获得计算机 B 的 MAC 地址而发出的。也就是说: 只要计算机 B 能收到就万事大吉了。可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到
广播信息的计算机还要消耗一部分 CPU 时间来对它进行处理。 造成了网络带宽和 CPU 运算能力的大量无谓消耗。



广播信息是那么经常发出的吗?


读到这里,您也许会问:广播信息真是那么频繁出现的吗?


答案是:是的! 实际上广播帧会非常频繁地出现。利用 TCP/IP 协议栈通信时,除了前面出现的 ARP 外,还有可能需要发出 DHCP、 RIP 等很多其他类型的广播信息。ARP 广播,是在需要与其他主机通信时发出的。当客户机请求 DHCP 服务器分配 IP 地址时,就必须发出 DHCP 的广播。而使用 RIP 作为路由协议时,每隔 30 秒路由器都会对邻近的其他路由器广播一次路由信息。 RIP 以外的其他路由协议使用多播传输路由信息,这也会被交换机转发( Flooding)。除了 TCP/IP 以外, NetBEUI、 IPX 和 Apple Talk 等协议也经常需
要用到广播。例如在 Windows 下双击打开“网络计算机”时就会发出广播(多播)信息。( Windows XP 除外……)


总之,广播就在我们身边。下面是一些常见的广播通信:

  •  ARP 请求:建立 IP 地址和 MAC 地址的映射关系。
  •  RIP:一种路由协议。
  •  DHCP:用于自动设定 IP 地址的协议。
  •  NetBEUI: Windows 下使用的网络协议。
  •  IPX: Novell Netware 使用的网络协议。
  •  Apple Talk:苹果公司的 Macintosh 计算机使用的网络协议。


如果整个网络只有一个广播域,那么一旦发出广播信息,就会传遍整个网络,并且对网络中的主机带来额外的负担。因此, 在设计 LAN 时,需要注意如何才能有效地分割广播域。



广播域的分割与 VLAN 的必要性


分割广播域时,一般都必须使用到路由器。使用路由器后,可以以路由器上的网络接口( LANInterface)为单位分割广播域。但是, 通常情况下路由器上不会有太多的网络接口,其数目多在 1~4 个左右。随着宽带连接的普及,宽带路由器(或者叫 IP 共享器)变得较为常见,但是需要注意的是,它们上面虽然带着多个(一般为 4 个左右)连接 LAN 一侧的网络接口,但那实际上是路由器内置的交换机,并不能分割广播域。况且使用路由器分割广播域的话,所能分割的个数完全取决于路由器的网络接口个数,使得用户无法自由地根据实际需要分割广播域。与路由器相比, 二层交换机一般带有多个网络接口。因此如果能使用它分割广播域,那么无疑运用上的灵活性会大大提高。用于在二层交换机上分割广播域的技术,就是 VLAN。 通过利用 VLAN,我们可以自由设计广播域的构成,提高网络设计的自由度。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
沙发
 楼主| 发表于 2014-11-15 17:24:36 | 只看该作者

直观地描述 VLAN

直观地描述 VLAN

如果要更为直观地描述 VLAN 的话,我们可以把它理解为将一台交换机在逻辑上分割成了数台交换机。在一台交换机上生成红、蓝两个 VLAN,也可以看作是将一台交换机换做一红一蓝两台虚拟的交换机。如下图所示:

在红、蓝两个 VLAN 之外生成新的 VLAN 时,可以想象成又添加了新的交换机。但是, VLAN 生成的逻辑上的交换机是互不相通的。因此,在交换机上设置 VLAN 后,如果未做其他处理, VLAN 间是无法通信的。明明接在同一台交换机上,但却偏偏无法通信——这个事实也许让人难以接受。但它既是VLAN 方便易用的特征,又是使 VLAN 令人难以理解的原因。


需要 VLAN 间通信时怎么办


那么,当我们需要在不同的 VLAN 间通信时又该如何是好呢?


请大家再次回忆一下: VLAN 是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此, VLAN 间的通信也需要路由器提供中继服务,这被称作“ VLAN 间路由”。


VLAN 间路由,可以使用普通的路由器,也可以使用三层交换机。其中的具体内容,等有机会再细说吧。在这里希望大家先记住不同 VLAN 间互相通信时需要用到路由功能。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
板凳
 楼主| 发表于 2014-11-15 17:34:52 | 只看该作者

VLAN 的访问链接

交换机的端口
交换机的端口,可以分为以下两种:



  • 访问链接( Access Link)
  • 汇聚链接( Trunk Link)


接下来就让我们来依次学习这两种不同端口的特征。这一讲,首先学习“访问链接”。


访问链接


访问链接,指的是“只属于一个 VLAN,且仅向该 VLAN 转发数据帧”的端口。在大多数情况下,访问链接所连的是客户机。


通常设置 VLAN 的顺序是:


  • 生成 VLAN
  • 设定访问链接(决定各端口属于哪一个 VLAN)



设定访问链接的手法,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态 VLAN”、后者自然就是“动态 VLAN”了。

静态 VLAN



静态 VLAN 又被称为基于端口的 VLAN( Port Based VLAN)。顾名思义,就是明确指定各端口属于哪个 VLAN 的设定方法。





由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属 VLAN 的设定——这显然不适合那些需要频繁改变拓补结构的网络。


动态 VLAN


另一方面, 动态 VLAN 则是根据每个端口所连的计算机,随时改变端口所属的 VLAN。这就可以避免上述的更改设定之类的操作。动态 VLAN 可以大致分为 3 类:

  •    基于 MAC 地址的 VLAN( MAC Based VLAN
  • 基于子网的 VLAN( Subnet Based VLAN)
  • 基于用户的 VLAN( User Based VLAN)


其间的差异,主要在于根据 OSI 参照模型哪一层的信息决定端口所属的 VLAN。


基于 MAC 地址的 VLAN,就是通过查询并记录端口所连计算机上网卡的 MAC 地址来决定端口的所属。假定有一个 MAC 地址“A”被交换机设定为属于 VLAN“ 10”,那么不论 MAC地址为“ A”的这台计算机连在交换机哪个端口,该端口都会被划分到 VLAN10 中去。计算机连在端口 1 时,端口 1 属于 VLAN10;而计算机连在端口 2 时,则是端口 2 属于 VLAN10。如下图所示:




由于是基于 MAC 地址决定所属 VLAN 的,因此可以理解为这是一种在 OSI 的第二层设定访问链接的办法。


但是, 基于 MAC 地址的 VLAN,在设定时必须调查所连接的所有计算机的 MAC 地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。


基于子网的 VLAN,则是通过所连计算机的 IP 地址,来决定端口所属 VLAN 的。不像基于 MAC 地址的 VLAN,即使计算机因为交换了网卡或是其他原因导致 MAC 地址改变,只要它的 IP 地址不变,就仍可以加入原先设定的 VLAN。如下图所示:




因此,与基于 MAC 地址的 VLAN 相比,能够更为简便地改变网络结构。 IP 地址是 OSI 参照模型中第三层的信息,所以我们可以理解为基于子网的 VLAN 是一种在 OSI 的第三层设定访问链接的方法。


基于用户的 VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个 VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows 域中使用的用户名。 这些用户名信息,属于 OSI 第四层以上的信息。总的来说,决定端口所属 VLAN 时利用的信息在 OSI 中的层面越高,就越适于构建灵活多变的网络。




访问链接的总结


综上所述,设定访问链接的手法有静态 VLAN 和动态 VLAN 两种,其中动态 VLAN 又可以继续细分成几个小类。


中基于子网的 VLAN 和基于用户的 VLAN 有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。


下表总结了静态 VLAN 和动态 VLAN 的相关信息。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
地板
 楼主| 发表于 2014-11-15 20:58:13 | 只看该作者

VLAN 的汇聚链接

VLAN 的汇聚链接


需要设置跨越多台交换机的 VLAN 时……


到此为止,我们学习的都是使用单台交换机设置 VLAN 时的情况。那么,如果需要设置跨越多台交换机的 VLAN 时又如何呢?


在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置 VLAN 的问题了。假设有如下图所示的网络,且需要将不同楼层的 A、 C 和 B、 D 设置为同一个 VLAN。




这时最关键的就是“交换机 1 和交换机 2 该如何连接才好呢? ”


最简单的方法,自然是在交换机 1 和交换机 2 上各设一个红、蓝 VLAN 专用的接口并互联了。




但是,这个办法从扩展性和管理效率来看都不好。例如,在现有网络基础上再新建 VLAN 时,为了让这个 VLAN 能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且, VLAN 越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。为了避免这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接( Trunk Link)。


何谓汇聚链接?


汇聚链接( Trunk Link)指的是能够转发多个不同 VLAN 的通信的端口。


汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个 VLAN 的特殊信息。


现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。 这时使用的网线还是普通的 UTP线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。


接下来,让我们具体看看汇聚链接是如何实现跨越交换机间的 VLAN 的。


A 发送的数据帧从交换机 1 经过汇聚链路到达交换机 2 时,在数据帧上附加了表示属于红色VLAN 的标记。


交换机 2 收到数据帧后,经过检查 VLAN 标识发现这个数据帧是属于红色 VLAN 的,因此去除标记后根据需要将复原的数据帧只转发给其他属于红色 VLAN 的端口。这时的转送,是指经过确认目标 MAC 地址并与 MAC 地址列表比对后只转发给目标 MAC 地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色 VLAN 的端口。


蓝色 VLAN 发送数据帧时的情形也与此相同。


上述情况如下图所示:




通过汇聚链路时附加的 VLAN 识别信息,有可能支持标准的“ IEEE 802.1Q”协议,也可能是 Cisco 产品独有的“ ISL( Inter Switch Link)”。如果交换机支持这些规格,那么用户就能够高效率地构筑横跨多台交换机的 VLAN。


另外,汇聚链路上流通着多个 VLAN 的数据,自然负载较重。因此, 在设定汇聚链接时,有一个前提就是必须支持 100Mbps 以上的传输速度。


另外,默认条件下,汇聚链接会转发交换机上存在的所有 VLAN 的数据。换一个角度看,可以认为汇聚链接(端口)同时属于交换机上所有的 VLAN。由于实际应用中很可能并不需要转发所有 VLAN 的数据,因此为了减轻交换机的负载、也为了减少对带宽的浪费,我们可以通过用户设定限制能够经由汇聚链路互联的 VLAN。


关于 IEEE802.1Q 和 ISL 的具体内容,将在下一讲中提到。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
5#
 楼主| 发表于 2014-11-15 21:14:54 | 只看该作者

IEEE802.1Q 与 ISL

IEEE802.1Q ISL


汇聚方式
在交换机的汇聚链接上,可以通过对数据帧附加 VLAN 信息,构建跨越多台交换机的 VLAN。


附加 VLAN 信息的方法,最具有代表性的有:


  • IEEE802.1Q
  • ISL


现在就让我们看看这两种协议分别如何对数据帧附加 VLAN 信息。


IEEE802.1Q

IEEE802.1Q,俗称“ Dot One Q”,是经过 IEEE 认证的对数据帧附加 VLAN 识别信息的协议。在此,请大家先回忆一下以太网数据帧的标准格式。


IEEE802.1Q 所附加的 VLAN 识别信息, 位于数据帧中“发送源 MAC 地址”与“类别域( TypeField)”之间。具体内容为 2 字节的 TPID 和 2 字节的 TCI,共计 4 字节。


在数据帧中添加了 4 字节的内容,那么 CRC 值自然也会有所变化。 这时数据帧上的 CRC 是插入 TPID、 TCI 后,对包括它们在内的整个数据帧重新计算后所得的值。






而当数据帧离开汇聚链路时, TPID 和 TCI 会被去除, 这时还会进行一次 CRC 的重新计算。TPID 的值, 固定为 0x8100。交换机通过 TPID,来确定数据帧内附加了基于 IEEE802.1Q 的 VLAN 信息。而实质上的 VLAN ID,是 TCI 中的 12 位元。由于总共有 12 位,因此最多可供识别 4096 个 VLAN。


基于 IEEE802.1Q 附加的 VLAN 信息,就像在传递物品时附加的标签。因此,它也被称作“标签型 VLAN( Tagging VLAN)”。


ISLInter Switch Link


ISL,是 Cisco 产品支持的一种与 IEEE802.1Q 类似的、用于在汇聚链路上附加 VLAN 信息的协议。

使用 ISL 后,每个数据帧头部都会被附加 26 字节的“ ISL 包头( ISL Header)”,并且在帧尾带上通过对包括 ISL 包头在内的整个数据帧进行计算后得到的 4 字节 CRC 值。 换而言之,就是总共增加了 30 字节的信息。在使用 ISL 的环境下,当数据帧离开汇聚链路时,只要简单地去除 ISL 包头和新 CRC 就可以了。由于原先的数据帧及其 CRC 都被完整保留,因此无需重新计算 CRC。






ISL 有如用 ISL 包头和新 CRC 将原数据帧整个包裹起来,因此也被称为“封装型 VLAN( Encapsulated VLAN)”。


需要注意的是, 不论是 IEEE802.1Q 的“ Tagging VLAN”,还是 ISL 的“ Encapsulated VLAN”,都不是很严密的称谓。不同的书籍与参考资料中,上述词语有可能被混合使用,因此需要大家在学习时格外注意。并且由于 ISL 是 Cisco 独有的协议,因此只能用于 Cisco 网络设备之间的互联。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
6#
 楼主| 发表于 2014-11-15 21:30:18 | 只看该作者

VLAN 间路由 1

VLAN 间路由


VLAN 间路由的必要性


根据目前为止学习的知识,我们已经知道两台计算机即使连接在同一台交换机上, 只要所属的 VLAN 不同就无法直接通信。接下来我们将要学习的就是如何在不同的 VLAN 间进行路由,使分属不同 VLAN 的主机能够互相通信。



首先,先来复习一下为什么不同 VLAN 间不通过路由就无法通信。在 LAN 内的通信,必须在数据帧头中指定通信目标的 MAC 地址。而为了获取 MAC 地址, TCP/IP 协议下使用的是 ARP。 ARP 解析 MAC 地址的方法,则是通过广播。也就是说,如果广播报文无法到达,那
么就无从解析 MAC 地址,亦即无法直接通信。



计算机分属不同的 VLAN,也就意味着分属不同的广播域,自然收不到彼此的广播报文。因此,属于不同 VLAN 的计算机之间无法直接互相通信。为了能够在 VLAN 间通信,需要利用 OSI 参照模型中更高一层——网络层的信息( IP 地址)来进行路由。关于路由的具体内
容,以后有机会再详细解说吧。



路由功能,一般主要由路由器提供。但在今天的局域网里,我们也经常利用带有路由功能的交换机——三层交换机( Layer 3 Switch)来实现。接下来就让我们分别看看使用路由器和三层交换机进行 VLAN 间路由时的情况。


使用路由器进行 VLAN 间路由

在使用路由器进行 VLAN 间路由时,与构建横跨多台交换机的 VLAN 时的情况类似,我们还是会遇到“该如何连接路由器与交换机”这个问题。路由器和交换机的接线方式,大致有以下两种:


  • 将路由器与交换机上的每个 VLAN 分别连接
  • 不论 VLAN 有多少个,路由器与交换机都只用一条网线连接


最容易想到的,当然还是“把路由器和交换机以 VLAN 为单位分别用网线连接”了。将交换机上用于和路由器互联的每个端口设为访问链接,然后分别用网线与路由器上的独立端口互联。如下图所示,交换机上有 2 个 VLAN,那么就需要在交换机上预留 2 个端口用于与路由器互联;路由器上同样需要有 2 个端口;两者之间用 2 条网线分别连接。




如果采用这个办法,大家应该不难想象它的扩展性很成问题。每增加一个新的 VLAN,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多 LAN 接口的。新建 VLAN 时,为了对应增加的 VLAN 所需的端口,就必须将路由器升级成带有多个 LAN 接口的高端产品,这部分成本、还有重新布线所带来的开销,都使得这种接线法成为一种不受欢迎的办法。


那么,第二种办法“不论 VLAN 数目多少,都只用一条网线连接路由器与交换机”呢?当使用一条网线连接路由器与交换机、进行 VLAN 间路由时,需要用到汇聚链接。


具体实现过程为:首先将用于连接路由器的交换机端口设为汇聚链接,而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议自然也必须相同。 接着在路由器上定义对应各个 VLAN 的“子接口( Sub Interface)”。尽管实际与交换机连接的物理端口只有一个,但在
理论上我们可以把它分割为多个虚拟端口。



VLAN 将交换机从逻辑上分割成了多台,因而用于 VLAN 间路由的路由器,也必须拥有分别对应各个 VLAN 的虚拟接口。




采用这种方法的话,即使之后在交换机上新建 VLAN,仍只需要一条网线连接交换机和路由器。用户只需要在路由器上新设一个对应新 VLAN 的子接口就可以了。与前面的方法相比,扩展性要强得多,也不用担心需要升级 LAN 接口数不足的路由器或是重新布线。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
7#
 楼主| 发表于 2014-11-15 21:55:45 | 只看该作者

VLAN 间路由 2

VLAN 间路由 2


同一 VLAN 内的通信

接下来,我们继续学习使用汇聚链路连接交换机与路由器时, VLAN 间路由是如何进行的。如下图所示,为各台计算机以及路由器的子接口设定 IP 地址。


红色 VLAN( VLAN ID=1)的网络地址为 192.168.1.0/24,蓝色 VLAN( VLAN ID=2)的网络地址为 192.168.2.0/24。各计算机的 MAC 地址分别为 A/B/C/D,路由器汇聚链接端口的 MAC 地址为 R。交换机通过对各端口所连计算机 MAC 地址的学习,生成如下的 MAC 地址列表。




首先考虑计算机 A 与同一 VLAN 内的计算机 B 之间通信时的情形。计算机 A 发出 ARP 请求信息,请求解析 B 的 MAC 地址。交换机收到数据帧后,检索 MAC地址列表中与收信端口同属一个 VLAN 的表项。结果发现,计算机 B 连接在端口 2 上,于是交换机将数据帧转发给端口 2,最终计算机 B 收到该帧。 收发信双方同属一个 VLAN 之内的通信,一切处理均在交换机内完成。如下图所示:




不同 VLAN 间通信时数据的流程


接下来是这一讲的核心内容,不同 VLAN 间的通信。让我们来考虑一下计算机 A 与计算机 C 之间通信时的情况。






计算机 A 从通信目标的 IP 地址( 192.168.2.1)得出 C 与本机不属于同一个网段。因此会向设定的默认网关( Default Gateway, GW)转发数据帧。在发送数据帧之前,需要先用 ARP 获取路由器的 MAC 地址。


得到路由器的 MAC 地址 R 后,接下来就是按图中所示的步骤发送往 C 去的数据帧。 ①的数据帧中,目标 MAC 地址是路由器的地址 R、但内含的目标 IP 地址仍是最终要通信的对象 C的地址。这一部分的内容,涉及到局域网内经过路由器转发时的通信步骤,有机会再详细解
说吧。



交换机在端口 1 上收到①的数据帧后,检索 MAC 地址列表中与端口 1 同属一个 VLAN 的表项。由于汇聚链路会被看作属于所有的 VLAN,因此这时交换机的端口 6 也属于被参照对象。这样交换机就知道往 MAC 地址 R 发送数据帧,需要经过端口 6 转发。


从端口 6 发送数据帧时,由于它是汇聚链接,因此会被附加上 VLAN 识别信息。由于原先是来自红色 VLAN 的数据帧,因此如图中②所示,会被加上红色 VLAN 的识别信息后进入汇聚链路。路由器收到②的数据帧后, 确认其 VLAN 识别信息,由于它是属于红色 VLAN 的数据帧,因此交由负责红色 VLAN 的子接口接收。

接着,根据路由器内部的路由表,判断该向哪里中继。

由于目标网络 192.168.2.0/24 是蓝色 VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色 VLAN 的子接口转发就可以了。这时,数据帧的目标 MAC 地址被改写成计算机 C 的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色 VLAN 的识别信息。这就是图中③的数据帧。



交换机收到③的数据帧后,根据 VLAN 标识信息从 MAC 地址列表中检索属于蓝色 VLAN 的表项。由于通信目标——计算机 C 连接在端口 3 上、且端口 3 为普通的访问链接,因此交换机会将数据帧除去 VLAN 识别信息后(数据帧④)转发给端口 3,最终计算机 C 才能成功地收到这个数据帧。

进行 VLAN 间通信时,即使通信双方都连接在同一台交换机上,也必须经过:发送方——交换机——路由器——交换机——接收方 这样一个流程。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
8#
 楼主| 发表于 2014-11-15 22:14:18 | 只看该作者

三层交换机

使用路由器进行 VLAN 间路由时的问题


现在,我们知道只要能提供 VLAN 间路由,就能够使分属不同 VLAN 的计算机互相通信。

但是,如果使用路由器进行 VLAN 间路由的话, 随着 VLAN 之间流量的不断增加,很可能导致路由器成为整个网络的瓶颈。




交换机使用被称为 ASIC( Application Specified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现以缆线速度( Wired Speed)交换。而路由器,则基本上是基于软件处理的。即使以缆线速度接收到数据包,也无法在不限速的条件下转发出去,因此会成为速度瓶颈。就 VLAN 间路由而言, 流量会集中到路由器和交换机互联的汇聚链路部分,这一部分尤其特别容易成为速度瓶颈。并且从硬件上看,由于需要分别设置路由器和交换机, 在一些空间狭小的环境里可能连设置的场所都成问题。


三层交换机( Layer 3 Switch

为了解决上述问题,三层交换机应运而生。 三层交换机,本质上就是“带有路由功能的(二层)交换机”。路由属于 OSI 参照模型中第三层网络层的功能,因此带有第三层路由功能的交换机才被称为“三层交换机”。


关于三层交换机的内部结构,可以参照下面的简图。




在一台本体内,分别设置了交换机模块和路由器模块;而内置的路由模块与交换模块相同,使用 ASIC 硬件处理路由。因此,与传统的路由器相比,可以实现高速路由。并且, 路由与交换模块是汇聚链接的,由于是内部连接,可以确保相当大的带宽。


使用三层交换机进行 VLAN 间路由( VLAN 内通信)


在三层交换机内部数据究竟是怎样传播的呢?基本上, 它和使用汇聚链路连接路由器与交换机时的情形相同。


假设有如下图所示的 4 台计算机与三层交换机互联。当使用路由器连接时,一般需要在 LAN接口上设置对应各 VLAN 的子接口;而三层交换机则是在内部生成“ VLAN 接口( VLAN Interface)”。 VLAN 接口,是用于各 VLAN 收发数据的接口。(注:在 Cisco 的 Catalyst 系列交换机上, VLAN Interface 被称为 SVI——Switched Virtual Interface)





为了与使用路由器进行 VLAN 间路由对比,让我们同样来考虑一下计算机 A 与计算机 B 之间通信时的情况。首先是目标地址为 B 的数据帧被发到交换机;通过检索同一 VLAN 的MAC 地址列表发现计算机 B 连在交换机的端口 2 上;因此将数据帧转发给端口 2。


使用三层交换机进行 VLAN 间路由( VLAN 间通信)




根据上图:


接下来设想一下计算机 A 与计算机 C 间通信时的情形。 针对目标 IP 地址,计算机 A 可以判断出通信对象不属于同一个网络,因此向默认网关发送数据( Frame 1)。

交换机通过检索 MAC 地址列表后, 经由内部汇聚链接,将数据帧转发给路由模块。在通过内部汇聚链路时,数据帧被附加了属于红色 VLAN 的 VLAN 识别信息( Frame 2)。


路由模块在收到数据帧时, 先由数据帧附加的 VLAN 识别信息分辨出它属于红色 VLAN,据此判断由红色 VLAN 接口负责接收并进行路由处理。因为目标网络 192.168.2.0/24 是直连路由器的网络、且对应蓝色 VLAN;因此,接下来就会从蓝色 VLAN 接口经由内部汇聚链路转发回交换模块。 在通过汇聚链路时,这次数据帧被附加上属于蓝色 VLAN 的识别信息( Frame 3)。


交换机收到这个帧后, 检索蓝色 VLAN 的 MAC 地址列表,确认需要将它转发给端口 3。由于端口 3 是通常的访问链接,因此转发前会先将 VLAN 识别信息除去( Frame 4)。最终,计算机 C 成功地收到交换机转发来的数据帧。

整体的流程,与使用外部路由器时的情况十分相似——都需要经过发送方→交换模块→路由模块→交换模块→接收方。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
9#
 楼主| 发表于 2014-11-15 22:49:18 | 只看该作者

加速 VLAN 间通信的手段

流( Flow
根据到此为止的学习,我们已经知道 VLAN 间路由,必须经过外部的路由器或是三层交换机的内置路由模块。但是,有时并不是所有的数据都需要经过路由器(或路由模块)。



例如,使用 FTP( File Transfer Protocol)传输容量为数 MB 以上的较大的文件时, 由于 MTU的限制, IP 协议会将数据分割成小块后传输、并在接收方重新组合。这些被分割的数据,“发送的目标”是完全相同的。发送目标相同,也就意味着同样的目标 IP 地址、目标端口号(注:特别强调一下,这里指的是 TCP/UDP 端口)。自然,源 IP 地址、源端口号也应该相同。 这样一连串的数据流被称为“流( Flow)”。


只要将流最初的数据正确地路由以后,后继的数据理应也会被同样地路由。据此, 后继的数据不再需要路由器进行路由处理;通过省略反复进行的路由操作,可以进一步提高 VLAN 间路由的速度。





加速 VLAN 间路由的机制

接下来,让我们具体考虑一下该如何使用三层交换机进行高速 VLAN 间路由。


首先,整个流的第一块数据,照常由交换机转发→路由器路由→再次由交换机转发到目标所连端口。这时, 将第一块数据路由的结果记录到缓存里保存下来。需要记录的信息有:

  •    目标 IP 地址
  • 源 IP 地址
  • 目标 TCP/UDP 端口号
  • 源 TCP/UDP 端口号
  • 接收端口号(交换机)
  • 转发端口号(交换机)
  • 转发目标 MAC 地址
等等。


同一个流的第二块以后的数据到达交换机后,直接通过查询先前保存在缓存中的信息查出“转发端口号”后就可以转发给目标所连端口了。这样一来,就不需要再一次次经由内部路由模块中继,而仅凭交换机内部的缓存信息就足以判断应该转发的端口。这时,交换机会对数据帧进行由路由器中继时相似的处理,例如改写 MAC 地址、 IP 包头中的 TTL 和 Check Sum 校验码信息等,





通过在交换机上缓存路由结果,实现了以缆线速度( Wired Speed)接收发送方传输来数据的数据、并且能够全速路由、转发给接收方。


需要注意的是,类似的加速 VLAN 间路由的手法多由各厂商独有的技术所实现,并且该功能的称谓也因厂商而异。例如,在 Cisco 的 Catalyst 系列交换机上,这种功能被称为“多层交换( Multi Layer Switching)”。另外,除了三层交换机的内部路由模块,外部路由器中的某些机型也支持类似的高速 VLAN 间路由机制。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
10#
 楼主| 发表于 2014-11-15 22:52:29 | 只看该作者

传统型路由器存在的意义

路由器的必要性
三层交换机的价格,在问世之初非常昂贵,但是现在它们的价格已经下降了许多。目前国外一些廉价机型的售价,折合成人民币后仅为一万多元,而且还在继续下降中。

既然三层交换机能够提供比传统型路由器更为高速的路由处理,那么网络中还有使用路由器的必要吗?
答案是:“是”。


使用路由器的必要性,主要表现在以下几个方面:


  • 用于与 WAN 连接
三层交换机终究是“交换机”。也就是说,绝大多数机型只配有 LAN(以太网)接口。在少数高端交换机上也有用于连接 WAN 的串行接口或是 ATM 接口,但在大多数情况下,连接 WAN 还是需要用到路由器。


  • 保证网络安全
在三层交换机上,通过数据包过滤也能确保一定程度的网络安全。但是使用路由器所提供的各种网络安全功能,用户可以构建更为安全可靠的网络。路由器提供的网络安全功能中,除了最基本的数据包过滤功能外,还能基于 IPSec 构建 VPN( Virtual Private Network)、利用 RADIUS 进行用户认证等等。


  • 支持除 TCP/IP 以外的网络架构

尽管 TCP/IP 已经成为当前网络协议架构的主流,但还有不少网络利用 Novell Netware 下的IPX/SPX 或 Macintosh 下的 Appletalk 等网络协议。三层交换机中,除了部分高端机型外基本上还只支持 TCP/IP。因此, 在需要使用除 TCP/IP 之外其他网络协议的环境下,路由器还是必不可少的。


注:在少数高端交换机上,也能支持上述路由器的功能。例如 Cisco 的 Catalyst6500 系列,就可以选择与WAN 连接的接口模块;还有可选的基于 IPSec 实现 VPN 的模块;并且也能支持 TCP/IP 以外的其他网络协议。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-3 19:27 , Processed in 0.080629 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表