IP 连接 (IP Connectivity)

1. 路由器的工作原理 (Router Operation)

路由器工作在 OSI 模型的网络层(第三层),其核心功能是转发数据包,并在不同的网络(或称子网)之间进行寻址。

a. 转发决策的依据

路由器不依赖 MAC 地址表,而是基于数据包的 目的 IP 地址 来进行转发决策。

  1. 数据包进入: 路由器接口收到一个数据包。
  2. 解封装: 路由器移除第二层(以太网)头部,检查第三层(IP)头部。
  3. 查找路由表: 路由器检查数据包的目的 IP 地址,并将其与路由表中的所有条目进行匹配。
  4. 最长前缀匹配 (Longest Prefix Match): 路由器选择与目的 IP 地址匹配度最高的条目,即子网掩码(或前缀长度)最长的路由条目。这是路由器的核心决策原则。
  5. 转发: 根据选定的路由条目,路由器确定下一跳 IP 地址出接口
  6. 重新封装: 路由器使用出接口的 MAC 地址作为源 MAC 地址,并使用下一跳设备的 MAC 地址作为目的 MAC 地址,重新封装数据包(将 IP 数据包封装到新的二层帧中)。
  7. 发送: 路由器通过出接口发送新的二层帧。

b. 路由表结构 (Routing Table Structure)

路由表是路由器做出转发决策的基础。一个典型的路由表条目包含以下关键信息:

  • 目的网络 (Destination Network): 数据包要到达的网络地址和子网掩码(如 192.168.1.0/24)。
  • 下一跳 (Next-Hop): 数据包应该发送到的邻居路由器的 IP 地址。
  • 出接口 (Egress Interface): 数据包应该离开本路由器的物理接口(如 GigabitEthernet0/0)。
  • 管理距离 (Administrative Distance, AD): 衡量路由源的可信度,值越小越可信。
  • 度量值 (Metric): 衡量到达目的网络的路径优劣,值越小越好。

c. 路由表的建立方式

路由器通过三种主要方式学习路由信息:

学习方式来源特点AD 值 (Cisco 默认)
直连路由 (Connected)路由器接口上配置的 IP 地址路由器接口启用后直接形成,最可信。0
静态路由 (Static)管理员手动配置的路由条目简单、高效,但无法适应拓扑变化。1
动态路由 (Dynamic)动态路由协议(如 OSPF, EIGRP)路由器之间自动交换信息,能适应拓扑变化。OSPF: 110

2. 配置和验证基本路由器接口

配置路由器的接口,使其能够参与三层转发:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Router> enable
Router# configure terminal
Router(config)# interface GigabitEthernet0/0
Router(config-if)# description WAN_Interface_to_ISP
Router(config-if)# ip address 203.0.113.1 255.255.255.252
! 配置 IP 地址和子网掩码
Router(config-if)# no shutdown
! 启用接口
Router(config-if)# end

Router# show ip interface brief
! 验证接口的 IP 地址和状态
Router# show ip route
! 验证路由表是否已经包含了直连路由

好的,我们继续学习 IP 连接 中的 **静态路由 (Static Routing)**。

3. 静态路由 (Static Routing)

静态路由是由网络管理员手动配置在路由器上的路由条目,指导路由器如何将数据包转发到目标网络。

优点与缺点

特性优点缺点
安全性高,因为路由信息不会在网络中广播。N/A
资源消耗低,路由器无需运行复杂的路由算法,CPU 和内存占用少。N/A
可扩展性低,在大规模网络中,手动配置和维护成百上千条静态路由非常耗时且容易出错。
拓扑变化无法适应拓扑变化。如果指定的路径中断,静态路由会失效,需要管理员手动修改。

静态路由的类型和配置

静态路由的配置命令都是 ip route,但根据指定下一跳的方式,可以分为以下几种:

a. 标准静态路由 (Standard Static Route)

这是最常见的类型,用于指导数据包到达特定的目的网络。

  • 配置语法: ip route [目的网络] [子网掩码] [下一跳IP]

    • 示例: 告诉路由器,要到达 192.168.20.0/24 这个网络,应该将数据包发送给邻居路由器 10.1.1.2
    1
    Router(config)# ip route 192.168.20.0 255.255.255.0 10.1.1.2
  • 配置语法(带出接口): ip route [目的网络] [子网掩码] [出接口]

    • 示例: 告诉路由器,到达 192.168.20.0/24,从 GigabitEthernet0/0 发出。
    1
    Router(config)# ip route 192.168.20.0 255.255.255.0 GigabitEthernet0/0

    注意 (出接口 vs. 下一跳): 在配置静态路由时,如果出接口是点对点 (Point-to-Point) 链路(如串行链路或隧道),通常使用出接口或下一跳 IP。但如果出接口是多点访问 (Multi-Access) 链路(如以太网),则必须使用下一跳 IP 地址,以避免路由器对该网段上的每个数据包都执行 ARP 查找。

b. 默认路由 (Default Route)

默认路由是一种特殊的静态路由,用于匹配路由表中没有明确匹配项的所有目的网络。它类似于计算机上的默认网关

  • 配置语法: ip route 0.0.0.0 0.0.0.0 [下一跳IP]

    • 作用: 匹配所有网络,目标是 0.0.0.0,子网掩码是 0.0.0.0
    • 示例: 将所有未知目的地的流量发送给 ISP 的路由器 203.0.113.2
    1
    Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.2
c. 浮动静态路由 (Floating Static Route)

浮动静态路由是一种备份路由机制。它与主路由相同,但通过设置一个**更高的管理距离 (Administrative Distance, AD)**,使其在主路由(通常是动态路由或另一条静态路由)激活时保持非活动状态。

  • 配置语法: ip route [目的网络] [子网掩码] [下一跳IP] [AD 值]

    • 示例: 假设主路由是通过 OSPF (AD=110) 学习的。
    1
    2
    3
    ! 主路由:通过 OSPF 学习到 192.168.20.0 (AD=110)
    ! 浮动静态路由:设置 AD=130,只有当 OSPF 路由失效时,它才会被激活
    Router(config)# ip route 192.168.20.0 255.255.255.0 10.1.2.5 130
    • 作用: OSPF 路由失效(AD=110 的条目消失)时,路由器发现 AD=130 的静态路由是当前到达目的地的最优路径,将其安装到路由表中,实现自动切换。

验证命令

  • 查看路由表:

    1
    2
    Router# show ip route
    ! 静态路由在路由表中以 'S' 标识
  • 验证浮动路由状态: 浮动路由在主路由激活时不会出现在路由表中。要查看配置本身,需要使用:

    1
    Router# show running-config | section ip route

好的,我们进入 IP 连接 中最重要的动态路由协议之一:OSPFv2 (开放最短路径优先) 的学习。

4. OSPFv2 (开放最短路径优先)

OSPFv2 是一种 链路状态 (Link-State) 内部网关协议 (IGP),专为 IPv4 网络设计(OSPFv3 用于 IPv6)。

a. OSPF 的核心工作原理

OSPF 不依赖下一跳的距离计数,而是基于网络的拓扑信息来计算最优路径。

  1. 建立邻居关系 (Establish Neighbor Adjacencies):
    • 路由器在接口上启用 OSPF 后,会通过发送 Hello 报文来发现同一网段上的其他 OSPF 邻居。
    • Hello 报文用于协商并确保双方的 Router ID区域 ID (Area ID)Hello/Dead 定时器认证等参数一致。
    • 一旦参数匹配,路由器会进入 Full 状态,表示邻居关系完全建立。
  2. 链路状态通告 (LSA, Link-State Advertisements) 交换:
    • 路由器将自身的 链路状态信息(接口状态、成本、连接的网络)打包成 LSA。
    • 路由器通过 LSDB (Link-State Database, 链路状态数据库) 相互交换 LSA,最终网络中所有路由器都拥有完全相同的拓扑图
  3. SPF 算法计算:
    • 每台路由器以自身为根,运行 Dijkstra 的最短路径优先 (SPF) 算法
    • 该算法计算出到达网络中所有目的地的**最短路径树 (Shortest Path Tree)**。
  4. 安装路由:
    • 根据 SPF 算法的结果,路由器将最优路径安装到 IP 路由表中。

b. 关键概念和参数

  • 区域 (Area): OSPF 采用分层结构,将网络划分为不同的区域。
    • 骨干区域 (Area 0 或 Backbone Area): 所有其他区域必须直接连接到 Area 0。
    • 非骨干区域 (Non-Backbone Area): 用于将大型网络分割成更小的管理单元,减少 LSA 泛洪的范围,提高网络稳定性。
  • Router ID (RID): 路由器在 OSPF 网络中的唯一标识符,是一个 32 位的 IP 地址格式。
    • 确定顺序: 优先使用手动配置的 Router ID;如果没有,则使用最高Loopback 接口 IP 地址;如果还没有,则使用最高活动物理接口 IP 地址
    • 重要性: RID 在邻居关系建立后不会改变,除非重启 OSPF 进程。
  • Cost (开销): OSPF 用 Cost 来衡量路径优劣,是 SPF 算法的输入值。
    • 计算公式: $Cost = \frac{Reference_Bandwidth}{Interface_Bandwidth}$
    • 默认参考带宽 (Reference Bandwidth): 10^8 bps (即 100 Mbps)。
    • 示例: 100 Mbps 接口 Cost=1;10 Mbps 接口 Cost=10。

c. OSPFv2 单区域配置

CCNA 级别主要关注单区域 (Single-Area) OSPFv2 的配置。

  1. 启用 OSPF 进程:

    1
    2
    Router(config)# router ospf 1 
    ! '1' 是进程 ID (Process ID),仅在本地有意义,可以任意设置
  2. 设置 Router ID (可选但推荐):

    1
    2
    Router(config-router)# router-id 1.1.1.1 
    ! 明确设置 RID
  3. 通告网络 (宣告):

    使用 network 命令指定哪些接口要参与 OSPF 进程。

    • 配置语法: network [网络地址] [通配符掩码] area [区域ID]
    • 通配符掩码 (Wildcard Mask): 与子网掩码相反,用于指定 IP 地址中哪些位需要匹配(0 表示必须匹配,1 表示可以忽略)。
      • 示例: 192.168.1.0 0.0.0.255 表示匹配 192.168.1.x 网段中的所有 IP 地址。
    • 示例配置:
    1
    2
    3
    4
    Router(config-router)# network 192.168.1.0 0.0.0.255 area 0 
    ! 宣告 192.168.1.x 网段加入 Area 0
    Router(config-router)# network 10.1.1.1 0.0.0.0 area 0
    ! 宣告特定接口 10.1.1.1 (使用精确匹配) 加入 Area 0

    注意: network 命令的真正作用是:在匹配的接口启用 OSPF 进程,并决定将该接口所属的网络作为 LSA 发送出去。

d. 验证命令

  • 查看 OSPF 邻居状态:

    1
    2
    Router# show ip ospf neighbor
    ! 检查邻居的 RID、状态 (State 应为 FULL)、邻接关系建立时间
  • 查看 OSPF 进程和 RID:

    1
    2
    Router# show ip ospf
    ! 查看 OSPF 进程 ID, RID, 区域信息
  • 查看 OSPF 路由表:

    1
    2
    Router# show ip route ospf
    ! 仅显示通过 OSPF 学习到的路由 (在路由表中以 'O' 标识)
  • 查看 LSDB:

    1
    2
    Router# show ip ospf database
    ! 查看路由器收到的所有 LSA 详情,即拓扑图的原始数据

5. 冗余协议 (First-Hop Redundancy Protocols, FHRP)

在任何局域网 (LAN) 中,默认网关都是单点故障。一旦路由器接口或整个路由器失效,局域网中的所有设备都将无法与外部网络通信。

FHRP 的目的就是消除默认网关的单点故障,提供网关冗余

a. FHRP 工作原理

FHRP 通过创建一个虚拟路由器来实现冗余:

  1. 虚拟 MAC 地址和 IP 地址: FHRP 组中的所有物理路由器共享一个虚拟 IP 地址和一个虚拟 MAC 地址
  2. 默认网关配置: 终端设备的默认网关地址被配置为这个虚拟 IP 地址
  3. 主/备选举: 协议在 FHRP 组中的路由器之间选举一个**活动路由器 (Active Router)(或称主路由器)和一个或多个备用路由器 (Standby Router)**。
  4. 流量转发: 活动路由器负责响应 ARP 请求,并使用虚拟 MAC 地址转发所有发送到虚拟 IP 地址的数据包。
  5. 故障切换: 如果活动路由器失效,备用路由器会在几秒钟内接管虚拟 IP 地址和 MAC 地址,成为新的活动路由器,网络连通性得以快速恢复。

b. 常见的 FHRP 协议

CCNA 中主要关注以下两种协议:

HSRP (Hot Standby Router Protocol)
  • 特点: 思科私有协议。
  • 路由器角色: Active (活动) 和 Standby (备用)。
  • 选举机制: 比较优先级 (Priority)(默认 100,范围 0-255,值越高越优先)。如果优先级相同,则比较接口的IP 地址(IP 地址越高越优先)。
  • 抢占 (Preemption):
    • 默认情况下,HSRP 不启用抢占。这意味着即使一台具有更高优先级的路由器加入,它也会保持 Standby 状态。
    • 启用抢占后,如果一台具有更高优先级的路由器上线,它将立即抢夺 Active 角色。
  • 版本: HSRPv1 和 HSRPv2 (支持 IPv6 和更高的组编号)。

配置示例 (HSRP):

1
2
3
4
5
6
7
RouterA(config)# interface GigabitEthernet0/0
RouterA(config-if)# standby 1 ip 192.168.1.254
! 配置 FHRP 组号 1 的虚拟 IP 地址
RouterA(config-if)# standby 1 priority 150
! 设置优先级高于默认值 (100),使其成为主 Active 路由器
RouterA(config-if)# standby 1 preempt
! 启用抢占
VRRP (Virtual Router Redundancy Protocol)
  • 特点: IETF 开放标准协议 (RFC 3768)。
  • 路由器角色: Master (主) 和 Backup (备份)。
  • 选举机制: 与 HSRP 类似,也是基于优先级(默认 100)。最高优先级的路由器成为 Master。
  • 抢占: 默认启用抢占。
  • 认证: 支持明文或 MD5 认证。

配置示例 (VRRP):

1
2
3
4
5
6
7
RouterB(config)# interface GigabitEthernet0/0
RouterB(config-if)# vrrp 1 ip 192.168.1.254
! 配置 FHRP 组号 1 的虚拟 IP 地址
RouterB(config-if)# vrrp 1 priority 120
! 设置优先级
RouterB(config-if)# vrrp 1 preempt
! 启用抢占

c. 验证命令

  • 验证 FHRP 状态:

    1
    2
    Router# show standby brief 
    ! 查看 HSRP 组号、状态、活动/备用 IP、虚拟 IP
  • 详细验证:

    1
    2
    Router# show standby 
    ! 查看详细信息,包括计时器和抢占状态