CCNA 知识点详解:每个主题是什么、如何工作、为什么重要

CCNA 网络从零开始:二进制、子网、VLSM、路由与 ACL

CCNA 是 Cisco 面向网络工程师的入门认证。考试(200-301)涵盖设备如何连接、数据如何穿越网络、如何保障网络安全,以及如何实现自动化。本文逐一详细讲解主要知识点。每个主题都会说明它是什么、一步步如何工作、常见错误有哪些,以及它在真实网络中是什么样子。

需要准备的东西

不需要编程基础。会使用电脑,并且大致知道什么是 IP 地址,就可以开始。实验部分需要 Cisco Packet Tracer 等网络模拟器。

示意图

OSI 模型:网络通信的七个层次。IP 地址分配和路由位于第 3 层
OSI 模型:网络通信的七个层次。IP 地址分配和路由位于第 3 层

知识点 1: OSI 模型与 TCP/IP

如果所有问题混在一起,网络故障将很难排查。因此模型把工作分层,每一层只负责一件事,并使用一组协议。OSI 模型有七层。TCP/IP 是互联网上使用的四层模型,两者可以相互对应。

OSI 的七层

第 7 层应用层(程序看到的 HTTP、DNS、DHCP),第 6 层表示层(数据格式与加密),第 5 层会话层(建立和结束对话),第 4 层传输层(TCP 与 UDP、端口、可靠性),第 3 层网络层(IP 地址与路由),第 2 层数据链路层(MAC 地址、帧、交换机),第 1 层物理层(线缆、信号、接口)。记忆口诀可以用英文 'All People Seem To Need Data Processing',从第 7 层到第 1 层。

封装:数据如何逐层向下

发送一个网页时,每一层都会加上自己的头部。传输层加上端口号,网络层加上源和目的 IP 地址,数据链路层加上源和目的 MAC 地址以及尾部。接收端则按相反顺序逐层去掉头部。每一层只读取自己的头部,因此故障可以被定位到某一层。

用分层思路排查故障

如果电脑无法访问互联网,就从下往上检查。链路指示灯亮了吗(第 1 层)?交换机端口是否在正确的 VLAN 中(第 2 层)?IP 地址和默认网关是否正确(第 3 层)?服务器上的端口是否开放(第 4 层)?这种方法比随意修改配置更快。

TCP/IP 的实际应用

TCP/IP 模型有四层:网络接口层、互联网层、传输层和应用层。互联网层对应 OSI 第 3 层,网络接口层覆盖 OSI 第 1 层和第 2 层。工程师谈论互联网时通常使用 TCP/IP 的名称,谈论设备内部的层次时则使用 OSI 的编号。

知识点 2: IPv4 地址与子网划分

IPv4 地址有 32 位,通常写成四个 0 到 255 之间的十进制数字(八位组)。子网划分利用前缀长度来决定地址中哪一部分标识网络,哪一部分标识主机。

把 /24 网络划分为四个 /26 块的示意,每个块都有自己的网络地址和广播地址
把 /24 网络划分为四个 /26 块的示意,每个块都有自己的网络地址和广播地址

网络部分与主机部分

在 192.168.10.77/26 中,/26 表示前 26 位是网络部分,最后 6 位是主机部分。同一网络中的主机,前 26 位都相同。改变前缀会改变网络的大小:/24 有 256 个地址,/25 有 128 个,/26 有 64 个,/27 有 32 个,依此类推。

网络地址、广播地址与主机范围

网络地址是块中的第一个地址,主机位全部为 0。广播地址是最后一个地址,主机位全部为 1。两者之间的地址可用于主机,但第一个和最后一个是保留的。对于 192.168.10.77/26,地址块是 192.168.10.64 到 192.168.10.127,可用主机是 .65 到 .126,共 62 台。

子网掩码与反掩码

子网掩码把网络位写成 1。/26 对应 255.255.255.192。反掩码(通配符掩码)正好相反,/26 对应 0.0.0.63,Cisco 的 ACL 和 OSPF 使用它。两者之间的换算是考试常见题型:把每个八位组用 255 去减即可得到反掩码。

快速求出块大小

用 256 减去掩码中最后一个不是 255 的八位组。/26 的掩码以 192 结尾,所以 256 - 192 = 64 就是块大小。网络地址依次为 0、64、128、192。这个方法可以在几秒钟内回答“这个地址属于哪个子网”。

设备配置: 为路由器接口配置地址

为 LAN 和 WAN 接口配置 IPv4 地址和掩码,然后用 no shutdown 启用。用 show ip interface brief 检查,每个接口都应显示 up 和 up。

! Router R1: LAN and WAN interfaces with IPv4 addresses
enable
configure terminal
 hostname R1
 interface GigabitEthernet0/0
  description LAN-Sales
  ip address 192.168.10.1 255.255.255.192
  no shutdown
 exit
 interface GigabitEthernet0/1
  description WAN-to-ISP
  ip address 203.0.113.2 255.255.255.252
  no shutdown
 exit
end
write memory
! Check
show ip interface brief

知识点 3: VLSM 与地址规划

固定大小的子网会浪费地址。两台路由器之间的点对点链路只需要 2 个地址,但固定的 /24 能提供 254 个。VLSM(可变长子网掩码)让每个网络使用适合自身需求的前缀。

VLSM 的工作方式

从需求最大的网络开始。给最大的网络分配刚好能容纳其主机的最小前缀,然后把下一个网络紧接着放在前一个后面,依此类推。例如 50 台主机需要 6 个主机位(可用 62 个),因此是 /26。20 台主机是 /27(可用 30 个),2 台主机是 /30(可用 2 个)。

对齐规则

每个块都必须从自身大小的整数倍处开始。/27(32 个地址)可以从 .0、.32、.64 等处开始,但不能从 .10 开始。忽略这条规则会导致子网重叠,这是 VLSM 中最常见的错误。

路由汇总(Summarisation)

相邻的子网可以合并成一条更大的路由。例如 10.1.0.0/24 和 10.1.1.0/24 可以汇总为 10.1.0.0/23。良好的规划让路由器只通告一条路由,而不是很多条,从而使路由表保持较小。

规划清单

统计每个网络的主机数,并为增长预留空间。按从大到小排序,在保持对齐的前提下分配地址块。为每个网络记下网络地址、第一台主机、最后一台主机和网关。书面规划可以避免大部分地址错误,无论是在实验室还是实际生产中。

知识点 4: 以太网、交换机与 VLAN

交换机在同一个局域网内连接设备。它工作在第 2 层,使用 48 位硬件地址 MAC 地址来决定每个帧应该发往何处。

MAC 地址表

帧到达时,交换机会记录源 MAC 地址以及它来自的端口。如果要发往的目的 MAC 已经知道,就只从对应端口转发。如果目的地址未知或是广播,就把帧泛洪到除入口以外的所有端口。

冲突域与广播域

交换机的每个端口都是独立的冲突域,因此设备之间不会相互冲突。广播域是能够收到彼此广播的设备集合。交换机通常使整个网络处于同一个广播域中,而路由器或 VLAN 则负责把它分开。

VLAN:在一台交换机上分隔网络

VLAN 是带编号的逻辑网络。端口被分配给某一个 VLAN,因此 VLAN 10 中的主机在第 2 层无法访问 VLAN 20 中的主机。通常每个 VLAN 有自己的子网,要在 VLAN 之间转发流量,需要路由器或三层交换机。VLAN 能提高安全性并减少广播。

接入端口与中继(Trunk)

接入端口只承载一个 VLAN,连接终端设备。中继端口在交换机之间承载多个 VLAN,并使用 802.1Q 标签标明每个帧属于哪个 VLAN。中继上的本征 VLAN(Native VLAN)承载不带标签的帧,两端必须配置一致。

生成树协议(STP)

冗余链路会产生环路。若没有保护,广播会无休止地循环,最终占满网络。生成树协议(STP)会阻塞部分端口,使得只有一条活动路径。当正在使用的链路故障时,STP 会解除备用路径的阻塞。每台交换机选出一个根桥,到根的开销最低的端口保持打开。

设备配置: 在交换机上创建 VLAN 和接入端口

创建 VLAN 10 和 VLAN 20,把用户端口分别放入其中,并把与另一台交换机相连的链路配置为同时承载两个 VLAN 的 Trunk。端口安全把销售部端口可学习的 MAC 地址限制为两个,并拒绝其他地址。

! Switch SW1: VLANs, access ports, trunk and port security
enable
configure terminal
 vlan 10
  name SALES
 exit
 vlan 20
  name IT
 exit
 interface range FastEthernet0/1 - 10
  switchport mode access
  switchport access vlan 10
 exit
 interface range FastEthernet0/11 - 20
  switchport mode access
  switchport access vlan 20
 exit
 interface FastEthernet0/1
  switchport port-security
  switchport port-security maximum 2
  switchport port-security violation restrict
  switchport port-security mac-address sticky
 exit
 interface GigabitEthernet0/1
  switchport mode trunk
  switchport trunk allowed vlan 10,20
  switchport trunk native vlan 99
 exit
end
write memory
! Check
show vlan brief
show interfaces trunk
show port-security interface FastEthernet0/1

知识点 5: 路由:路由表、静态路由与 OSPF

路由器在第 3 层连接不同的网络。它通过查看路由表来决定每个数据包的下一跳,路由表列出了它所知道的网络以及到达方式。

读懂路由表

每条路由包含目的网络、前缀、下一跳或出接口,以及管理距离(administrative distance)和度量值(metric)。直连网络的管理距离为 0,并会自动加入。静态路由默认管理距离为 1。路由器使用前缀匹配最长的路由,若相同则选择管理距离较小的。

静态路由

静态路由由管理员手动输入,例如 ip route 10.2.0.0 255.255.255.0 192.168.1.2。它简单、可预测,并且通告时不占用带宽。但它本身无法感知故障,因此适合小型网络以及指向 ISP 的默认路由。

默认路由

默认路由 0.0.0.0/0 匹配任何目的地,只有在没有其他路由匹配时才会使用。分支路由器通常有一条指向总部或 ISP 的默认路由,从而使路由表保持较小。

OSPF:链路状态协议

OSPF 路由器交换关于链路及其状态的信息。每台路由器都构建出相同的网络拓扑图,并使用 Dijkstra 算法,依据开销计算到每个目的地的最短路径。OSPF 在故障后收敛很快,并支持区域(area)机制,使大型网络也易于管理。邻居通过交换 Hello 数据包建立邻接关系。

管理距离与度量值

当路由器从两个来源学到同一条路由时,管理距离决定信任哪个来源。静态路由为 1,OSPF 为 110。来自同一来源的路由之间则由度量值决定。OSPF 的度量值是开销(cost),基于带宽计算。

设备配置: 添加静态路由和 OSPF

静态路由告诉路由器如何到达它不能直接看到的网络。OSPF 让路由器自动相互学习内部网络。passive-interface 命令阻止 LAN 上不需要的 Hello 报文发送。

! Router R1: a static route to the IT network and OSPF for internal networks
enable
configure terminal
 ip route 10.2.0.0 255.255.255.0 192.168.1.2
 ip route 0.0.0.0 0.0.0.0 203.0.113.1
 router ospf 1
  router-id 1.1.1.1
  network 192.168.10.0 0.0.0.63 area 0
  network 10.0.0.0 0.255.255.255 area 0
  passive-interface GigabitEthernet0/0
 exit
end
write memory
! Check
show ip route
show ip ospf neighbor
路由器如何选路:一个地址可能匹配多条路由,最具体的那条(前缀最长)获胜
路由器如何选路:一个地址可能匹配多条路由,最具体的那条(前缀最长)获胜

知识点 6: NAT 与 PAT

10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 等私有 IP 范围保留给内部使用。来自这些范围的流量无法在公共互联网上路由,因此边界路由器需要转换地址。

内部本地地址与内部全局地址

这是 NAT 中使用的术语。内部本地地址是主机的私有地址,内部全局地址是该主机在网络外部看到的公网地址。外部地址是远端主机的地址。转换发生在内部接口与外部接口的边界处。

静态 NAT

静态 NAT 建立固定的一对一映射,例如 192.168.1.10 始终转换为 203.0.113.10。它用于必须能被外部访问的服务器,如网站服务器或邮件服务器。

动态 NAT

动态 NAT 在私有主机首次连接时,从地址池中分配一个公网地址,会话结束后再收回。每个活动主机仍需要一个公网地址,因此并不能节省太多地址。

PAT(NAT overload)

PAT 通过为每个会话改变源端口,把多台私有主机映射到一个公网地址。路由器维护一张转换表,记录内部地址和端口与外部地址和端口的对应关系。这就是拥有几十台设备的家庭或办公网络只需一个公网 IP 的原因。

设备配置: 配置 PAT 和静态 NAT

多台内部主机通过 overload(PAT)共享外部地址。Web 服务器则获得从公网 80 端口到其私有地址的固定映射。必须把每个接口标记为 inside 或 outside,否则 NAT 不会生效。

! Router R1 (edge): PAT for the inside LAN, and static NAT for a public web server
enable
configure terminal
 access-list 1 permit 192.168.10.0 0.0.0.63
 ip nat inside source list 1 interface GigabitEthernet0/1 overload
 ip nat inside source static tcp 192.168.20.10 80 203.0.113.10 80
 interface GigabitEthernet0/0
  ip nat inside
 exit
 interface GigabitEthernet0/1
  ip nat outside
 exit
end
write memory
! Check
show ip nat translations
show ip nat statistics

知识点 7: 访问控制列表(ACL)

ACL 是一组有顺序的规则,用来允许或拒绝流量。路由器和交换机用它过滤数据包,例如阻止访客网络访问服务器网络。

规则顺序很重要

设备从上到下检查规则,并应用第一条匹配的规则,不会再看后面的规则。如果把宽泛的规则放在具体规则之前,具体规则就被遮挡了。因此应把最具体的规则放在最前面。

隐式拒绝(implicit deny)

每个 ACL 末尾都有一条看不见的全部拒绝规则。与任何规则都不匹配的数据包会被丢弃。常见错误是只写拒绝规则,以为其他流量会通过,但隐式拒绝会把它们挡住。

标准 ACL 与扩展 ACL

标准 ACL 只按源地址过滤,通常应放在靠近目的地的位置。扩展 ACL 可以按源和目的地址、协议及端口号过滤,例如只允许 TCP 443 端口。它应放在靠近源的位置,尽早丢弃不需要的流量。

ACL 中的反掩码

ACL 使用反掩码而不是子网掩码。反掩码 0.0.0.255 匹配 /24 网络,0.0.0.0 则精确匹配一台主机。'any' 等同于 0.0.0.0 255.255.255.255。

应用 ACL

ACL 只有在绑定到某个接口的某个方向上后才会生效。入站(inbound)过滤进入该接口的流量,出站(outbound)过滤离开该接口的流量。选择正确的方向是配置过滤器时最重要的决定之一。

设备配置: 编写扩展 ACL

这个 ACL 阻止销售子网通过 Telnet 访问服务器,并允许其他流量。规则顺序很重要:deny 语句必须位于 permit 语句之前。在 LAN 接口上应用入站方向,使流量在进入路由器时就被检查。

! Extended ACL on R1: block Telnet from the sales LAN to the server, allow everything else
enable
configure terminal
 ip access-list extended SERVER-IN
  remark Block Telnet from sales to the server
  deny tcp 192.168.10.0 0.0.0.63 host 192.168.20.10 eq telnet
  permit ip any any
 exit
 interface GigabitEthernet0/0
  ip access-group SERVER-IN in
 exit
end
write memory
! Check
show ip access-lists SERVER-IN

知识点 8: 网络服务:DHCP、DNS、NTP 与日志

主机要正常工作,依赖多项服务。没有它们,你就得手动输入每一个地址、名称和时间。

DHCP:自动分配地址

DHCP 分四步完成,称为 DORA:Discover(客户端广播请求地址)、Offer(服务器提供地址)、Request(客户端请求该地址)、Acknowledge(服务器确认租约)。服务器还会提供默认网关、DNS 服务器和租约时间。小型分支网络中,路由器也可以充当 DHCP 服务器。

DNS:从名称到地址

DNS 把 www.example.com 这类名称转换为 IP 地址。客户端询问其配置的 DNS 服务器,服务器可能会沿层级继续向其他服务器查询。常见记录有 A(IPv4 地址)、AAAA(IPv6)、MX(邮件服务器)和 CNAME(别名)。DNS 故障通常看起来像网络故障,因此应同时用名称和 IP 地址进行测试。

NTP:保持时钟同步

NTP 把设备的时钟与时间源同步。准确的时间对于在多台设备之间关联日志很重要,也对只在特定时间段内有效的证书至关重要。设备可以设为时间服务器的客户端,也可以作为服务器为其他设备提供时间。

Syslog 与 SNMP

Syslog 把设备的事件消息发送到中央日志服务器,便于搜索。每条消息都有从 0(紧急)到 7(调试)的严重级别。SNMP 允许管理系统读取设备的计数器(例如接口流量),并可在发生事件时发送 trap。SNMP 第 3 版增加了认证和加密。

设备配置: 配置 DHCP、DNS、NTP 与日志

DHCP 地址池为销售部 LAN 分配地址,排除范围使路由器和服务器不会被分配地址。DNS、NTP 和 syslog 主机让域名、时间和日志协同工作。

! DHCP for the sales LAN, plus DNS, NTP and logging
enable
configure terminal
 ip dhcp excluded-address 192.168.10.1 192.168.10.10
 ip dhcp pool SALES
  network 192.168.10.0 255.255.255.192
  default-router 192.168.10.1
  dns-server 192.168.20.53
  lease 7
 exit
 ip domain-name example.local
 ntp server 192.168.20.123
 logging host 192.168.20.514
 service timestamps log datetime msec
end
write memory
! Check
show ip dhcp binding
show ntp status
show logging

知识点 9: 安全基础与自动化

安全首先要保护设备本身,然后再保护通过设备的流量。自动化则能减少可能出错的手动修改。

保护设备访问

使用 SSH 代替 Telnet,因为 Telnet 会以明文发送密码。设置强度足够的 enable secret,设置警告未授权用户的横幅,并在控制台和 VTY 线路上设置空闲超时。用 ACL 把 VTY 访问限制在管理子网内。

端口安全

端口安全限制交换机端口可学习的 MAC 地址数量,并可在有新设备接入时关闭端口。它能防止有人私自接入交换机,或在公共端口上伪造 MAC 地址。粘滞(sticky)模式会把学到的地址保存到运行配置中。

AAA:认证、授权、计费

AAA 控制谁可以登录(认证),登录后能做什么(授权),以及记录其操作(计费)。它通常使用 TACACS+ 或 RADIUS 等集中服务器,使账户管理集中在一处。

自动化与可编程性

手动配置大量设备既慢又容易出错。API 让软件可以直接读取和修改设备。REST API 使用 HTTP 方法(GET、POST、PUT、DELETE),并以 JSON 格式(一种由键和值组成的文本格式)传输数据。Cisco DNA Center 等控制器可以一次把同一策略下发到多台设备。

设备配置: 保护对交换机的访问

VTY 线路只允许 SSH,用户使用本地账户登录,空闲会话超时,并用访问列表把管理限制在一个子网内。请使用你自己的强密码,不要把真实密码存放在共享笔记中。

! Securing device access on SW1: SSH only, local login, timeout, management subnet only
enable
configure terminal
 hostname SW1
 ip domain-name example.local
 crypto key generate rsa modulus 2048
 username admin privilege 15 secret <strong-password>
 enable secret <strong-password>
 banner motd #Authorised users only#
 ip access-list standard MGMT-ONLY
  permit 192.168.20.0 0.0.0.255
  deny any
 exit
 line vty 0 4
  transport input ssh
  login local
  exec-timeout 5 0
  access-class MGMT-ONLY in
 exit
end
write memory
! Check
show ip ssh
show running-config | section line vty

在实验室中练习

CCNA 是注重动手操作的考试,只看书远远不够。请在模拟器中搭建一个小网络,包括两台交换机、两台路由器和三台 PC。按照下面的步骤操作,并在进入下一步之前检查每一步的结果。

1. 先规划地址。在 /24 中用 VLSM 方法为三个网络分配地址:50、20 和 2 台主机。

2. 按照规划为 PC 配置 IP 地址、子网掩码和默认网关。

3. 在交换机上创建两个 VLAN,每个 VLAN 放一台 PC,并确认两台 PC 之间无法通信。

4. 用中继(trunk)连接两台交换机,然后检查本征 VLAN。

5. 在每台路由器上添加静态路由,并用 ping 和 traceroute 测试。

6. 添加一条 ACL,阻止一台 PC 访问服务器。将其应用在正确的方向上,然后再次测试。

下一步

掌握基础之后,每次深入学习一个知识点,建议先学子网划分和路由,因为其他大多数知识点都依赖这两者。在配置之前,先为每个实验写下规划。实验中的大多数问题都来自错误的掩码、错误的网关或错误的 VLAN。

总结

CCNA 涵盖设备如何连接、数据包如何在网络之间转发、如何保障安全以及如何实现自动化。核心概念包括子网划分、交换机与 VLAN、按最长前缀匹配的路由、NAT、ACL 以及基本网络服务。逐一理解这些概念,并在实验室中加以验证。