💻 网络接入 (Network Access)

1. 交换机技术和工作原理 (Switching Technology)

交换机在 OSI 模型的数据链路层(第二层)工作,其主要功能是根据数据帧中的 MAC 地址进行转发决策。

  • **MAC 地址学习 (MAC Address Learning)**:
    • 交换机初始化时,它的 MAC 地址表 (MAC Address Table) 是空的。
    • 当交换机接收到一个数据帧时,它会检查数据帧的源 MAC 地址
    • 交换机将该源 MAC 地址与其进入的端口进行关联,并记录在 MAC 地址表中。
    • 示例: 如果数据帧从 Gi0/1 端口进入,源 MAC 地址是 AA:AA:AA:AA:AAAA,交换机就记录:AA:AA:AA:AA:AAAA 对应 Gi0/1
  • **转发决策 (Forwarding Decision)**:
    • 交换机检查数据帧的目的 MAC 地址
    • 查找 MAC 地址表:
      • 命中 (Match): 如果目的 MAC 地址在 MAC 地址表中,交换机将数据帧单播 (Unicast) 转发到对应的出端口。
      • 未知 (Unknown): 如果目的 MAC 地址不在 MAC 地址表中(通常是第一次通信),交换机将数据帧泛洪 (Flood) 到除接收端口外的所有其他端口。
      • 同一端口 (Same Port): 如果目的 MAC 地址在 MAC 地址表中,并且对应的出端口与接收端口相同,交换机将丢弃 (Drop) 该数据帧,避免环路。
  • **过滤 (Filtering)**:通过地址学习,交换机能够只在需要的端口转发数据帧,减少冲突域和不必要的流量。

2. 二层交换机的配置与验证

在思科交换机上配置基础参数是 CCNA 的必备技能。

  • 基本配置命令:

    • 设置主机名:hostname SW1
    • 配置 Console 口密码:line console 0 -> password cisco -> login
    • 配置 VTY 远程管理密码(用于 Telnet/SSH):line vty 0 15 -> password cisco -> login
  • 配置管理 IP 地址 (SVI): 交换机本身不需要 IP 地址进行二层转发,但需要 IP 地址(通常在 VLAN 接口上配置,称为 SVI - Switch Virtual Interface)进行远程管理

    1
    2
    3
    4
    5
    SW1(config)# interface vlan 1  
    SW1(config-if)# ip address 192.168.1.10 255.255.255.0
    SW1(config-if)# no shutdown
    SW1(config-if)# ip default-gateway 192.168.1.1
    ! 配置默认网关,用于访问其他网络
  • 端口配置: 配置接口描述和速度/双工模式。

    1
    2
    3
    4
    5
    SW1(config)# interface FastEthernet0/1
    SW1(config-if)# description PC_Host_A_Port
    SW1(config-if)# speed 100
    SW1(config-if)# duplex full
    SW1(config-if)# no shutdown
  • 验证命令:

    • show mac address-table:查看 MAC 地址表内容。
    • show interface status:查看端口状态(连接状态、VLAN、双工等)。
    • show version:查看交换机硬件和软件版本信息。

3. VLAN (虚拟局域网)

VLAN 是一种将物理上连接在同一交换机或多台交换机上的设备,逻辑上划分为不同广播域的技术。

核心概念

  • 广播域 (Broadcast Domain): 在没有 VLAN 的情况下,一个交换机的所有端口都属于同一个广播域。这意味着任何一个端口发出的广播帧,所有其他端口都会收到。VLAN 的作用就是将一个物理交换机划分成多个独立的广播域。
  • 隔离性: 不同 VLAN 之间的数据流是隔离的。VLAN 10 的设备无法直接与 VLAN 20 的设备通信,即使它们连接在同一个交换机上。这种隔离性提升了网络的安全性、稳定性和效率。
  • VLAN ID: 每个 VLAN 都有一个唯一的标识符,称为 VLAN ID(范围 1 到 4094)。
    • 普通范围 VLAN (Normal Range): 1 到 1005。VLAN 1 是默认的、不能删除的 VLAN。
    • 扩展范围 VLAN (Extended Range): 1006 到 4094。

端口模式 (Port Modes)

交换机接口有两种基本模式来处理 VLAN 流量:

a. 接入端口 (Access Port)
  • 作用: 仅属于一个 VLAN,用于连接终端设备(如 PC、服务器、打印机)。

  • 数据帧: 接入端口接收和发送的数据帧是未标记 (Untagged) 的,这意味着数据帧中不包含 VLAN ID 信息。

  • 配置示例:

    1
    2
    3
    4
    SW1(config)# interface FastEthernet0/1
    SW1(config-if)# switchport mode access
    SW1(config-if)# switchport access vlan 10
    ! 将该端口分配给 VLAN 10
b. 干道端口 (Trunk Port)
  • 作用: 用于连接交换机与交换机之间,或者交换机与路由器之间,承载多个 VLAN 的流量。

  • 数据帧: 干道端口发送的数据帧是标记 (Tagged) 的。

  • 封装协议: CCNA 中主要学习 IEEE 802.1Q 封装标准,它会在数据帧的以太网头中插入一个 4 字节的标记字段,其中包含了 VLAN ID。

  • Native VLAN (本征 VLAN): 在 802.1Q 中,通常有一个特殊的 VLAN(默认为 VLAN 1)在 Trunk 链路上不打标签。如果 Trunk 端口接收到未标记的数据帧,它会将该帧分配给 Native VLAN。

  • 配置示例:

    1
    2
    3
    4
    5
    6
    7
    SW1(config)# interface GigabitEthernet0/2
    SW1(config-if)# switchport mode trunk
    ! 设置为 Trunk 模式
    SW1(config-if)# switchport trunk allowed vlan 10,20,30
    ! 允许这些 VLAN 的流量通过
    SW1(config-if)# switchport trunk native vlan 99
    ! 更改 Native VLAN 为 99

跨 VLAN 通信 (Inter-VLAN Routing)

由于不同 VLAN 是独立的广播域,如果需要 VLAN 10 的 PC 访问 VLAN 20 的服务器,就必须通过三层设备(路由器或三层交换机)进行路由。

  • 传统方式 (Router-on-a-Stick): 在路由器的一个物理接口上配置多个逻辑子接口,每个子接口配置一个 VLAN 的 IP 地址,并与交换机的 Trunk 端口连接。路由器负责在这些子接口之间进行路由。

配置与验证命令

  • 创建 VLAN:

    1
    2
    3
    4
    SW1(config)# vlan 10
    SW1(config-vlan)# name DATA_VLAN
    SW1(config-vlan)# vlan 20
    SW1(config-vlan)# name VOICE_VLAN
  • 验证 VLAN 状态:

    1
    2
    SW1# show vlan brief
    ! 查看所有 VLAN 及其对应的端口分配
  • 验证 Trunk 状态:

    1
    2
    SW1# show interface trunk
    ! 查看哪些端口是 Trunk 模式,使用的封装协议,以及允许通过的 VLAN

好的,我们继续深入学习 Trunking (干道) 和 **Router-on-a-Stick (单臂路由)**,这是实现跨交换机和跨 VLAN 通信的关键技术。

4. Trunking(干道)详解

封装协议:802.1Q

  • 标准: 802.1Q 是当前主流的 VLAN 封装标准,由 IEEE 定义。
  • 工作原理: 当数据帧通过 Trunk 链路传输时,802.1Q 协议会在原始的以太网帧头中插入一个 4 字节(32 位) 的标签字段。
    • 这个标签字段包含最重要的信息是 **VLAN ID (VID)**,它是一个 12 位的字段,能够标识 $2^{12} = 4096$ 个 VLAN(即 0 到 4095)。
  • 配置要点:
    • 为了使 Trunk 链路正常工作,连接两端的交换机端口必须使用相同的封装协议(通常都是 802.1Q)。
    • Native VLAN(本征 VLAN): Trunk 链路上有一类特殊的 VLAN,它的数据帧在传输时不被打标签。当一个 Trunk 端口接收到任何未打标签的数据帧时,它会将该帧分配给它的 Native VLAN。如果 Trunk 两端的 Native VLAN 设置不一致,会导致 VLAN 间流量泄漏或网络安全问题。

Trunk 端口配置

在思科 IOS 中,配置 Trunk 端口的命令如下:

1
2
3
4
5
6
7
8
9
SW1(config)# interface GigabitEthernet0/1
SW1(config-if)# switchport trunk encapsulation dot1q
! [可选] 明确指定使用 802.1Q 封装(在某些交换机上需要)
SW1(config-if)# switchport mode trunk
! 将端口设置为 Trunk 模式
SW1(config-if)# switchport trunk allowed vlan 10,20,99
! 限制只允许 VLAN 10, 20, 99 的流量通过,提升安全性
SW1(config-if)# switchport trunk native vlan 99
! 指定 VLAN 99 为 Native VLAN

5. Router-on-a-Stick(单臂路由)

正如之前所说,不同 VLAN 之间需要通过三层设备(路由器)才能通信。单臂路由是实现 VLAN 间路由 (Inter-VLAN Routing) 的一种经典且经济的方式。

工作原理

  • 核心思想: 利用路由器上的单个物理接口与交换机的 Trunk 端口相连。路由器通过在这个物理接口上创建多个逻辑子接口 (Subinterfaces) 来实现对多个 VLAN 的支持。
  • 映射关系: 每个子接口都配置一个 IP 地址,并封装(即设置 encapsulation dot1q [VLAN ID])特定的 VLAN ID。
    • 例如,G0/0.10 对应 VLAN 10 的网关地址。
    • G0/0.20 对应 VLAN 20 的网关地址。
  • 数据流转:
    1. PC A (VLAN 10) 发送数据包到路由器(网关)。
    2. 交换机通过 Trunk 链路将已打标签(VLAN 10)的数据帧发送给路由器。
    3. 路由器接收到 VLAN 10 的帧,由子接口 G0/0.10 处理。
    4. 路由器查找路由表,发现目的地址在 VLAN 20。
    5. 路由器将数据包重新封装已打标签(VLAN 20)的数据帧,并通过同一个物理接口发回给交换机。
    6. 交换机识别出 VLAN 20 的帧,将其发送给 VLAN 20 对应的端口。

路由器配置示例

假设 VLAN 10 的网络是 192.168.10.0/24,VLAN 20 是 192.168.20.0/24

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Router> enable
Router# configure terminal
Router(config)# interface GigabitEthernet0/0
Router(config-if)# no ip address
! 物理接口本身不配置 IP 地址

Router(config)# interface GigabitEthernet0/0.10
! 创建 VLAN 10 的子接口 (子接口号通常与 VLAN ID 保持一致)
Router(config-subif)# encapsulation dot1q 10
! 明确告诉路由器该子接口处理 VLAN 10 的流量
Router(config-subif)# ip address 192.168.10.1 255.255.255.0

Router(config)# interface GigabitEthernet0/0.20
! 创建 VLAN 20 的子接口
Router(config-subif)# encapsulation dot1q 20
! 明确告诉路由器该子接口处理 VLAN 20 的流量
Router(config-subif)# ip address 192.168.20.1 255.255.255.0

Router(config)# interface GigabitEthernet0/0
Router(config-if)# no shutdown
! 最后启用物理接口

6. STP (Spanning Tree Protocol, 生成树协议)

STP 运行在二层交换网络中,其核心目标是**防止环路 (Loop Prevention)**。

为什么要防止环路?

在交换网络中,为了实现高可用性和冗余性,通常会在交换机之间部署多条物理链路。然而,这种冗余链路会导致以下两个严重的二层问题:

  1. 广播风暴 (Broadcast Storm):
    • 当一个广播帧进入网络时,交换机将其泛洪到所有端口。
    • 如果存在环路,这个广播帧会无限循环,不断在环路中被复制和转发。
    • 随着时间推移,环路中的交换机和链路会被泛滥的广播流量完全占据,导致网络瘫痪。
  2. MAC 地址表不稳定 (MAC Address Table Instability):
    • 当数据帧在一个环路中循环时,交换机可能从不同的端口收到带有相同源 MAC 地址的帧。
    • 交换机 MAC 地址表中的记录会频繁错误地更新,导致数据帧被发送到错误的端口。

STP 的作用就是通过逻辑上阻塞 (Blocking) 某些冗余链路,消除环路,同时在一条活动链路失败时,快速将备份链路激活,恢复冗余。

STP 的工作原理

STP 的工作流程是通过选举机制来实现的,它使用一种特殊的帧——BPDU (Bridge Protocol Data Unit) 来交换信息和协商拓扑。

a. 根桥选举 (Root Bridge Election)

整个 STP 拓扑中,只有一个交换机被选举为**根桥 (Root Bridge)**。根桥是整个网络的逻辑中心,负责生成和发送 BPDU,并作为所有路径计算的参考点。

  • 选举标准: 比较 **Bridge ID (桥 ID)**。
    • Bridge ID 由两部分组成:
      1. **优先级 (Priority)**:默认值是 32768。取值范围 0-65535,步长为 4096。
      2. **MAC 地址 (MAC Address)**:交换机最低的 MAC 地址。
  • 选举规则: Bridge ID 值最小 的交换机被选为根桥。
    • 如果优先级相同,则比较 MAC 地址,MAC 地址最小的胜出。
    • CCNA 实践: 通常建议手动将一台核心交换机的优先级设置为 0 或 4096,强制指定它为根桥,以便于控制拓扑。

b. 端口角色选举 (Port Role Election)

在根桥选举完成后,拓扑中所有非根桥交换机上的端口必须被赋予以下三种角色之一:

  1. **根端口 (Root Port, RP)**:
    • 定义: 非根桥交换机上距离根桥最近的端口。
    • 每个非根桥交换机 有且仅有一个 RP。RP 处于 转发 (Forwarding) 状态。
    • 选举标准: 比较到达根桥的**最低根路径开销 (Lowest Root Path Cost)**。
      • **路径开销 (Cost)**:由接口带宽决定(例如:10G 接口 Cost=2;1G 接口 Cost=4;100M 接口 Cost=19)。开销值越低越好。
    • 打破平局 (Tie-Breakers): 如果路径开销相同,则比较以下三项:
      • 1. 最低发送 BPDU 的邻居桥 ID (Lowest Sender Bridge ID)
        1. 最低发送 BPDU 的邻居端口 ID (Lowest Sender Port ID)
        1. 最低接收端口 ID (Lowest Receiving Port ID)
  2. **指定端口 (Designated Port, DP)**:
    • 定义:每条链路(网段)上,只有一个端口被选举为 DP。
    • 根桥上的所有端口 都是 DP,且处于 转发 (Forwarding) 状态。
    • 非根桥选举标准: 在多台交换机共享的网段上,根路径开销最低的端口成为 DP。
    • 作用: DP 负责在网段上转发流量到根桥。
  3. **阻塞端口 (Blocked Port, BLK)**:
    • 定义: 既不是 RP 也不是 DP 的端口,它们处于 阻塞 (Blocking) 状态,不转发任何数据帧(但仍接收 BPDU)。
    • 作用: 阻塞端口用于消除环路,只有当活动链路失效时,它才会转换为转发状态。

STP 端口状态

端口从禁用状态到转发状态必须经过以下转换过程:

  1. **禁用 (Disabled)**:管理员手动关闭端口 (shutdown)。
  2. **阻塞 (Blocking)**:STP 启动时的默认状态,不转发数据帧,只接收 BPDU。
  3. **侦听 (Listening)**:端口开始发送和接收 BPDU,确定根桥和端口角色。(持续 15 秒)
  4. **学习 (Learning)**:端口开始填充 MAC 地址表,但不转发数据帧。(持续 15 秒)
  5. **转发 (Forwarding)**:端口正常转发数据帧。

总计延迟: STP 收敛需要 30 到 50 秒(两个 15 秒计时器 + 最大老化时间)。这是 STP 的主要缺点,也是 RSTP 出现的原因。

STP 配置与验证命令

  • 查看 STP 状态:

    1
    2
    SW1# show spanning-tree
    ! 查看根桥 ID, 本地桥 ID, 所有端口角色和状态
  • 手动设置优先级(影响根桥选举):

    1
    2
    SW1(config)# spanning-tree vlan 1 priority 4096
    ! 将 VLAN 1 的优先级设置为 4096 (小于默认值 32768,使其更有可能成为根桥)

7. EtherChannel (以太通道)

EtherChannel 是一种将多条物理以太网链路捆绑(或聚合)成一个逻辑链路的技术。

核心优势

  • 带宽增强 (Increased Bandwidth): 将 $N$ 条物理链路捆绑,逻辑上的带宽近似于 $N$ 倍单条链路的带宽。例如,捆绑两条 1Gbps 的链路,逻辑上可提供 2Gbps 的吞吐量。
  • 冗余性 (Redundancy): 如果捆绑中的一条物理链路失效,EtherChannel 会自动使用其余链路传输数据,且不会造成拓扑变化(即不会像 STP 那样需要经历阻塞状态的收敛时间)。
  • 负载均衡 (Load Balancing): 流量通过散列算法均匀地分配到捆绑中的所有物理链路上。
  • STP 优化: STP 会将整个捆绑包视为一个单逻辑端口。这显著减少了 STP 必须监视和计算的端口数量,从而简化了拓扑并防止 STP 阻塞整个冗余链路组。

捆绑协议 (Aggregation Protocols)

要建立 EtherChannel,两端的交换机必须就捆绑过程达成协议。CCNA 主要关注以下两种:

a. PAgP (Port Aggregation Protocol)

  • 特点: 思科私有协议。
  • 模式 (Modes):
    • Desirable (期望): 积极尝试建立 EtherChannel。
    • Auto (自动): 被动地等待对端发起 PAgP 协商。
  • 协商规则:
    • Desirable + Desirable $\rightarrow$ 捆绑成功
    • Desirable + Auto $\rightarrow$ 捆绑成功
    • Auto + Auto $\rightarrow$ 捆绑失败
    • DesirableAuto 模式不能与静态配置模式(on)兼容。
  • 特点: IEEE 标准协议 (802.3ad),可以在不同厂商的设备之间建立 EtherChannel。
  • 模式 (Modes):
    • Active (主动): 积极尝试建立 EtherChannel。
    • Passive (被动): 被动地等待对端发起 LACP 协商。
  • 协商规则:
    • Active + Active $\rightarrow$ 捆绑成功
    • Active + Passive $\rightarrow$ 捆绑成功
    • Passive + Passive $\rightarrow$ 捆绑失败

c. On (静态配置)

  • 特点: 无协议协商。需要两端都配置为 on
  • 风险: 如果两端配置不匹配,可能造成环路。通常只在实验室环境中使用。

配置步骤 (Cisco IOS)

配置 EtherChannel 涉及三个步骤:定义通道组、设置模式、配置逻辑接口。

假设我们捆绑 Fa0/1 和 Fa0/2:

  1. 在物理接口上定义通道组和模式:

    1
    2
    3
    4
    SW1(config)# interface range FastEthernet0/1 - 2
    SW1(config-if-range)# channel-group 1 mode active
    ! 使用 LACP 协议的主动模式 (active) 建立通道组 1
    ! 如果使用 PAgP, 则使用 'mode desirable''mode auto'
  2. 配置逻辑接口 (Port Channel):

    系统会自动创建逻辑接口 Port-channel 1。所有配置(如 switchport mode trunk 或 switchport access vlan)都应该在逻辑接口上进行,以确保应用于捆绑中的所有物理链路。

    1
    2
    3
    4
    SW1(config)# interface Port-channel 1
    SW1(config-if)# switchport mode trunk
    ! 例如,将该 EtherChannel 配置为 Trunk 链路
    SW1(config-if)# switchport trunk allowed vlan all

验证命令

  • 查看 Port Channel 摘要:

    1
    2
    SW1# show etherchannel summary
    ! 查看通道组的数量、使用的协议和状态 (Port-channel 状态应为 'SU' - Layer 2)
  • 查看 Port Channel 详细信息:

    1
    2
    SW1# show etherchannel port-channel
    ! 查看端口的负载均衡方法
  • 查看协议细节:

    1
    2
    SW1# show etherchannel 1 port
    ! 查看通道组 1 中各个物理端口的状态和协议信息

8. 无线局域网 (WLAN) 基础

a. WLAN 基础组件和标准

  • 标准: WLAN 基于 IEEE 802.11 系列标准(例如 802.11a/b/g/n/ac/ax)。
  • 组件:
    • 无线终端设备 (Clients): 笔记本电脑、手机等,内置无线网卡。
    • 接入点 (Access Point, AP): 将无线信号转换为有线以太网信号,是无线和有线网络之间的桥梁。
    • 无线控制器 (Wireless LAN Controller, WLC): 在大型网络中,WLC 用于集中管理、配置和监控多个 AP,实现统一控制。
  • SSID (Service Set Identifier): 无线网络的名称,用于识别特定的 WLAN。终端设备通过 SSID 连接到网络。

b. 基础工作模式

  • 基础设施模式 (Infrastructure Mode):
    • 这是最常见的模式,终端设备通过 AP 连接到有线网络。
    • AP 广播其 SSID,允许无线客户端关联 (Associate) 进来。
  • Ad-hoc 模式 (点对点模式):
    • 无线设备之间直接通信,不经过 AP
    • 通常用于临时的小型网络。

c. CSMA/CA 冲突避免机制

由于无线介质(空气)是共享的,并且设备无法像有线以太网 (CSMA/CD) 那样在发送数据时同时侦听冲突,因此 WLAN 采用 CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance, 载波侦听多点接入/冲突避免) 机制。

  • 工作原理:
    1. 侦听 (Sense): 设备在发送数据前会先侦听信道是否空闲。
    2. 避免 (Avoidance): 如果信道忙碌,设备会等待一段随机时间后再尝试发送。
    3. 可选的 RTS/CTS 握手 (Optional Request to Send/Clear to Send): 为了解决**隐藏终端问题 (Hidden Node Problem)**,发送方可以先发送一个 RTS 帧,接收方回复一个 CTS 帧,通知所有设备信道即将被占用,从而避免冲突。

d. 无线安全协议 (WLAN Security)

无线网络必须加密以保护数据和访问权限。

  • WEP (Wired Equivalent Privacy): 已过时且极不安全。
  • WPA (Wi-Fi Protected Access): 改进了 WEP。
  • WPA2 (802.11i): 目前广泛使用的标准。它使用 AES (Advanced Encryption Standard, 高级加密标准) 作为主要加密算法,比 WPA 更安全。
  • WPA3: 最新、最安全的标准,具有更强的加密和防止字典攻击的能力。

WPA2/WPA3 的两种认证方式:

认证方式全称适用场景认证机制
PSK预共享密钥 (Pre-Shared Key)家庭和小型办公室 (SOHO)所有客户端使用相同的密钥。
Enterprise企业级大型企业网络使用 802.1X 协议,客户端需通过 RADIUS 服务器进行认证。