04.01 何为 L3 交换机
L3交换机是一种在L2 交换机的基础上增加了路由选择功能的网络硬件,能够通过基于ASIC 和 FPGA 的硬件处理高速实现网络功能和转发分组。L2 是指 OSI 参考模型中的L2, 也就是数据链路层。L2 交换机能够基于该层主要编址的 MAC 地址,进行数据帧或VLAN(VirtualLan)的传输工作。L3 交换机能够基于位于网络层(L3) 的 IP 首部信息,实现路由选择以及分组过滤等功能。
L2 交换机可以通过使用VLAN 分割广播域,但终端之间的数据帧交换必须位于同一VLAN 范围内。对位于不同VLAN 上的终端如有通信需求时,则必须使用路由功能,因此需要在网络上额外添加路由器(图4-1)。L2 交换机与路由器相组合才能完成跨VLAN 的通信,但使用L3 交换机则无需其他硬件设备,能够直接完成 VLAN 配置和 VLAN 之间的通信过程。
现在,越来越多组织的内部网络核心交换机采用L3 交换机。L3 交换机多用于在由以太网构筑的 Intranet 内部转发分组,而路由器则大多作为连接互联网和 Intranet 内网之间的网关来使用。
04.01.01 L3 交换机与路由器的不同
现在市场上主流的 L3 交换机产品一般仅支持以太网的数据链路层协议和 IP 网络的网络层协议。
路由器的物理层以及数据链路层除了IEEE 802 标准以外,还需支持其他各种协议,其中包 括ATM、帧中继、SDH 、串口等。网络层和传输层也同样需要支持TCP/IP 协议簇以外的协 议簇,如 IPX 、AppleTalk 等。这些处理一般都由运行在CPU 上的软件来完成,与L3 交换机 相比,速度会慢不少,但类似远程接入、安全功能这样必须由路由器CPU 来处理的功能也很多 (表4-1)。
L3 交换机的架构
传统路由器的路由选择功能、分组转发以及管理功能等均由 CPU 处理,管理功能负载的增加,就 会带来分组转发能力的下降。L3 交换机改善了这一缺点,将硬件设备内部分离成两个区域,即以路由选择、管理功能为主的控制平面和以数据转发功能为主的数据平面,从而实现了能够高速转发分组的系统架构。
04.04 L3 交换机搭载的特殊功能
04.04.01 L3 交换机功能的分类
04.04.02 VLAN
由**1台或者多台交换集线器所组成的1个广播域可以称为是一个扁平网络(flat network)。 该网络只由L2组成,相互连接的硬件会接收所有网络发来的广播帧。因此,随着连接硬件数量的增加,广播数量也会增加,网络状况也就越发混杂。这种情况下就需要采用能够将整个扁平网络进行逻辑分段的VLAN(Virtual LAN)技术。各个VLAN均使用同1个广播域,因此能够控制该域内广播通信的规模。(图4-14)
交换机通过设置(configuration) 能够轻易更改物理端口的属性,使该物理端口附加到某个VLAN 之中,因此当连接交换机的用户终端发生变化时,也无需更改所对应的物理配线。VLAN 之间的通信需要使用路由选择,不借助路由器就无法与不同VLAN 的终端进行通信,
因此安全性也有了保障。VLAN 在1998年的 IEEE 802.1Q 中完成了标准化。
基于端口的 VLAN
基于端口的 VLAN(Port VLAN)是指在1台交换机上完成 VLAN 构建的功能。
基于端口的VLAN 是在交换机的端口上设置VLAN ID信息,将拥有相同VLAN ID的多个 端口构成一个 VLAN 。 符合IEEE 802.1Q标准的交换机在初始状态时所有端口默认VLANID=1 (即 VLAN1), 但是使用者能够对任意一个端口进行VLANID=2 的设置,从而使该端口归属VLAN 2。
个人理解:
广播分为链路层广播,IP层广播。
链路层广播指的是采用链路层MAC地址通过接口发出帧,链路上所有接口均可接收此帧。
集线器无法隔离链路层广播,交换机可以。
IP层广播指的是采用IP的网络广播地址(对应的MAC地址也是特殊的广播地址,此帧到达链路上交换机,交换机会向自身其他端口转发,进而达到网络内广播,引入VLAN后,对于广播MAC地址,交换机依然可以获取帧中VLAN,来向指定端口转发,实现广播隔离)通过接口发出帧,子网内所有接口均可接收此帧。
交换机无法隔离IP层广播。路由器可以。L3交换机可以。引入VLAN的L2交换机也可以。
标签 VLAN(IEEE 802.1Q)
当需要跨越多个交换机创建 VLAN 时, 一般会用到使用中继端口(trunk port)的标签 VLAN (tag VLAN)。标 签VLAN 通过中继端口完成以太网数据帧的收发,其中以太网数据帧上需添加4字节IEEE 802.1Q所定义的首部(即 VLAN 标签信息)(图4-15)。为以太网数据帧添加标签的过程称为 tagging 。当 tagging 完成后,以太网数据帧的最大长度将从1518字节变为1522字节,因为其中还包含了12bit 的 VLAN ID信息,因此最多可以支持的VLAN 数也达到了4096个。
在以太网中, TPID 的值为0x8100。如果发送源地址后面的值不是0x8100,那么该域则不表 示 TPID 信息,而是作为“长度/类型”数据域被识别。顺便一提,当“长度/类型”数据域的值 在0x05DC(10 进制数为1500)以下时,表示该以太网数据帧的长度;在0x0600 以上时,则表示 该以太网数据帧的类型。表示以太网数据帧类型的值分别是:IPv4 为 0x0800,ARP 为 0x0806、IPv6为 0x86DD 等。
一些不支持IEEE 802.1Q的交换机由于无法识别TPID,会将0x8100的值视作以太网帧类型,但是由于不存在0x8100类型的数据帧,因此交换机会将其作为错误帧直接丢弃。IEEE802.1Q 标准中定义的首部还存在一个数据域——TCI, 该数据域可以进一步分成3个子数据域(表4-12)。
本 征 VLAN
VLAN 编号为1的 VLAN 通常被称为本征 VLAN(Native VLAN)或管理员 VLAN, 一般用 于管理 VLAN, 也作为初始值分配给交换机的各个端口。本征 VLAN 的指定或变更是可以自定 义的,但基本所有厂商的交换机都默认使用VLAN ID为 1 的VLAN 作为本征VLAN。 在定义新 VLAN 时如果设定VLAN ID=1,则有可能会发生同预期端口无法通信的情况,因此最好使用2以上的数值作为新建 VLAN 的 ID。
中继端口
使用标签 VLAN 向其他交换机传递VLAN 编号时,首先需要设置中继端口(trunk port )。中 继端口也被称为“附带标签的端口”,能够属于多个VLAN, 与其他交换机进行多个VLAN 的数据帧收发通信。两台交换机中继端口之间的链路则称为中继链路(trunk link)。与中继端口和中继链路相对应的还有接入端口(access port) 和接入链路(access link)这 两个概念。接入端口只属于1个VLAN, 接入链路也仅传输1个VLAN 数据帧(图4-18)。
04.04.03 VLAN 环境中的数据流向
假设现在主机A 要和属于同一VLAN 的主机F 通过运行 ping 命令通信。
主机A 的用户在命令行提示符处输入了主机 FIP 地址或主机名(域名)的 ping 命令,如果输入的是主机名,则需要通过DNS 进行主机名解析,然后才能获取主机F 的 IP 地址。
由于主机A 同主机F 位于同一网段(相同广播域),因此主机 A需要知道主机F 的 MAC 地址,这时主机 A 会向主机 F 发送 ARP 请求的广播。交换机1接收到来自主机A 的 ARP 请求消息后,在MAC 地址表中记录下主机A 的信息, 由于ARP 请求的目的地MAC 地址为广播地址,因此交换机1会向除接收端口之外的所有端口 复制该数据帧并进行扩散 (flooding),但 在VLAN 环境下,只有和主机A 同属一个 VLAN 的端口会被扩散到。交换机2接收到来自主机A 的 ARP 请求后,在MAC 地址表中记录下主机 A 的信息。之后 与交换机1一样,交换机2也会向除接收端口之外的、所有同属一个 VLAN 的端口复制该数据帧并进行扩散(flooding)。主机F 接收到 ARP 的请求后,向主机 A 回复ARP 的响应消息。这时交换机2将习得主机 F 的 MAC 地址信息,因为之前已经从ARP 请求中习得了主机 A的 MAC 地址信息,因此ARP 响应消息将直接转发到端口1处。交换机1接受ARP 响应消息后,也从中习得主机F 的 MAC 地址,综合判断所有习得的信
息后将 MAC 地址信息转发至交换机的端口1处。由于主机 A已经知道目的地的 MAC 地址,因此利用该地址信息向主机 F发送 ICMP echo消息。
04.04.04 VLAN 之间的路由选择
-
L2 交换机
在 L2 交换机上设置了多个VLAN 后,单台交换机就无法在不同的VLAN 之间转发以太网数据帧。
当需要在多个VLAN 之间转发数据时, 一般会使用中继链路连接路由器,通过路由器进行VLAN 之间的路由选择。
-
L3 交换机
L3 交换机能够在交换机内部直接完成VLAN 之间的路由选择。