「Switching」- 交换网络基础、交换、交换机

  CREATED BY JENKINSBOT

问题描述

在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基其础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。

该笔记将记录:以太网协议的相关概念、MAC地止的类型、二层交换机的工作流程、二层交换机的工作原理。

概念术语

Layer 2 Switching

二层交换指的是交换机根据数据帧的第二层头部中的目的MAC地址进行帧转发的行为。
二层交换是以太网交换机的基本功能。
每台交换机都维护一个MAC地址表,用于指导数据帧转发。
当交换机收到数据帧时,将在其MAC地址表中查询该帧的目的MAC地址,并根据匹配的表项执行相应的操作。
此外,交换机收到数据帧时,还会进行 SRC-MACAddress 学习(记录从哪个端口去往哪台终端主机)。

二层交换设备工作在OSI模型的第二层,即数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上的。
二层交换设备通过解析和学习以太网帧的源MAC来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC表),通过其目的MAC来查找MAC表决定向哪个接口转发。
二层交换设备不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。

以太网协议

以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。

以太网是建立在 CSMA/CD(Carrier Sense Multiple Acce ss/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。

冲突域,Collision Domain

在以太网中,当多个节点同时传输数据时,从多个设备发出的帧将会碰撞,在物理介质上相遇,彼此数据都会被破坏,这样的共享介质网段就叫冲突域。冲突域是指连接在同一共享介质上的所有节点的集合。冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。

在共享式网络中,可能会出现信号冲突现象。同轴电缆

在半双工状态下,使用 CSMA/CD 方案解决:
1)先听后发,监听检测网络是否空闲;
2)如果没有冲突则,进行发送;
3)如果发送时出现冲突,则立即停止;
4)随机延时重发;

目前的网络设备多是全双工,因此基本不会使用 CSMA/CD 进行检测冲突。

交换机不同的接口发送和接收数据独立,各接口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响。

广播域,Broadcast Domain

广播域(broadcast domain):指广播帧传输的网络范围,广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。一般是 Router 来设定边界(因为 Router 不转发广播)。

以太网卡,NIC

网络接口卡(Network Interface Card, NIC)也称为“网卡”,是计算机、交换机、路由器等网络设备与外部网络世界相连的关键部件。

Ether II, IEEE 802.3 Ethernet

MAC 子层 | LLC 子层 | IP 包头 | TCP/UDP 头 | 数据 | FCS

对于不同的数据链路层协议,将采用不同的封装方式。

Ethernet II:| D.MAC | S.MAC | Typte | Data | FCS |

通常,在传输业务应用数据时,使用该协议;
Length/Type >= 1536(0x0600)使用 Ethernet II 协议;
Type:0x0800 2048,IP 协议
Type:0x0804 2054,ARP 协议
数据帧长度在 64~1518 之间。最大值 1518 字节,其中三层数据 1500 字节,只是一个规定而言。最小值 64 字节,是为了让主机能够检测到冲突:如果 A 完成极小帧发送,但是还没有到达 B ,此时 B 也在发送数据帧,然后 B 检测到冲突后开始发送冲突信号,但是 A 已经完成发送,它不会检测到冲突。因此该最小值是为了让发送方在发送结束前检测到冲突(换句话说,数据到达对端前,还不能完成发送)。

IEEE 802.3:| D.MAC | S.MAC | Length | LLC | SNAP | Data | FCS |

通常,在交换机间使用,比如 STP、IS-IS 等等;
Length/Type <= 1500(0x05DC)使用 IEEE802.3 协议;

二层环路

常见根因:
1)在网络中部署二层冗余环境;
2)人为的误接线缆导致;

防环:
1)需借助特定的协议或机制实现二层防环;
2)在二层帧头中,并无任何信息用于防止数据帧被无止尽地转发

交换网络拓扑

小型交换网络

交换机,Switch

交换机工作在数据链路层,依靠于 MAC 地址进行数据转发。

MAC 地址表

收到数据帧,形成 CAM Table(思科术语),然后根据 CAM Table 进行转发。

交换机依据 MAC 地址转换表(CAM Table,Content Addressable Memory Table)进行数据帧处理。CAM Table 是 MAC 地址出接口 的对应关系(但是这个 MAC 地址来自于帧的 Source MAC 字段,只有这样交换机才能知道哪些 MAC 在哪个接口下)。

MAC 地址表形成过程

在交换机初始状态下,CAM Table 为空。

当 Host-A 访问 Host-B 时:
1)交换机会利用收到帧(SRC MAC),来形成 CAM Table。例如,添加 00:01:02:03:04:AA ⇒ G0/0/0/0 记录;

当 Host-B 响应 Host-A 时:
1)交换机会利用收到帧(SRC MAC),来填充 CAM Table。例如,添加 00:01:02:03:04:BB ⇒ G0/0/0/1 记录;
2)交换机会根据收到帧(DST MAC),来查找 CAM Table,以确定数据包应该从哪个接口发出。例如,查到 00:01:02:03:04:AA ⇒ G0/0/0/0 记录;

如果单播帧的 DST MAC 未出现在 CAM Table 中时,便是未知单播,交换机开始进行泛洪。

CAM Table 的老化时间为 300s,持续的通信会刷新该时间。ARP 的缓存时间为 1200s,所以 CAM Table 会先老化,此时便会发生未知单播。

当端口 Down 状态时,CAM Table 对应的条目(该端口)会立即老化(无需等待 300s 后老化)

交换机的转发行为

泛洪(Flooding)
某个端口收到的数据帧,将被转发到所有其他端口。

交换机收到广播帧时,会进行泛洪。比如 ARP 报文。
交换机收到组播帧时,缺省也是进行泛洪。
如果是未知单播帧时,则依旧泛洪。

转发(Forwarding)
交换机将收到的帧,能够明确的从某个端口发送出去。通常为单播帧(且是已知单播。如果是未知单播,则依旧泛洪。)

丢弃(Discarding)
交换机收到的数据帧,如果无法转发,则丢弃。
在 CAM Table 中,如果该端口收到的数据帧的 DST MAC 也在该端口下,则会丢弃。

三层交换机

具有三层路由功能的交换机。三层交换机的转发路由表与路由器一样,需要软件通过路由协议来建立和维护。

但是,三层交换机的二层转发,依旧通过硬件实现查找和转发。

三层交换机使用精确地址匹配的方法实现快速查找。

接口类型:二层接口、三层接口

交换机的接口多为二层接口,即能进行二层数据帧处理。某些高级交换机的接口,能够切换为三层接口,并能绑定网络地址。

比如,在华为交换机中:

[Huawei-Interface] undo portswitch

# 注意,部分交换机虽然能切换为三层端口,但是不能绑定网络地址

VSAN

是Cisco的SAN交换机上面使用的一种虚拟化技术,把一个物理交换机虚拟成多个逻辑交换机。通常以vSphere内核为基础进行开发、可扩展的分布式存储架构。

常用技术

VLAN、VLAN Routing、链路聚合、生成树