Cisco Certified Network Professional 642-801 Course Notes - Building Scalable Cisco Internetworks Preface Noco#sh start! Written by 红 头 发 ( 绯 瞳, 大 写 的 J) a.k.a. Ca.J Description 请 保 留 作 者 信 息 Homepage Http://Www.Show-Tym.Com/ Apr.12th.2004! Module1 Advanced IP Addressing Scalable Network Design 一 般 说 来 在 规 划 网 络 的 时 候 要 考 虑 到 一 点, 即 可 扩 展 性 网 络 设 计 一 般 是 把 它 设 计 为 层 次 化 的, 一 般 分 为 以 下 三 层 : Access Layer( 访 问 层 ): 用 户 接 入 到 网 络 中 的 接 入 点 Distribution Layer( 分 发 层 ): 该 层 是 访 问 层 用 户 访 问 网 络 资 源 的 一 个 汇 聚 点 Core Layer( 核 心 层 ): 负 责 在 各 个 分 割 的 网 络 之 间 进 行 高 速 有 效 的 数 据 传 输 网 络 层 次 化 的 设 计 可 以 基 于 以 下 两 种 方 法 来 划 分 : 1. 按 功 能, 企 业 的 不 同 部 门 来 划 分 2. 按 地 理 位 置 来 划 分 但 是 记 得 不 管 你 按 何 种 方 式 来 设 计 你 的 网 络, 三 层 元 素 要 考 虑 进 去 : 1. 核 心 层 : 需 要 大 带 宽, 冗 余 连 接 2. 访 问 层 : 用 户 接 入 到 网 络 的 接 入 点. 地 址 的 分 发 ( 比 如 DNCP),VLAN 的 设 计, 防 火 墙,ACL 等 都 在 这 层 考 虑 进 去 3. 分 发 层 : 访 问 层 设 备 的 汇 聚 点 看 看 核 心 层 的 两 种 设 计, 如 下 : 1. 全 互 连 (fully meshed) 的 方 式, 优 点 是 提 供 冗 余 连 接, 但 是 随 着 网 络 的 扩 展, 成 本 会 越 来 越 高 2. 星 形 设 计 方 式 (hub-and-spoke), 让 其 他 设 备 都 连 接 到 相 对 独 立 的 中 心 设 备 上 去. 这 样 做 节 省 了 一 些 开 销, 但 是 冗 余 度 上 比 全 互 连 的 方 式 要 差 1
Benefits of Good Network Design 先 来 看 看 RFC1918 定 义 的 私 有 IP 地 址 范 围 : A 类 :10.0.0.0 到 10.255.255.255 B 类 :172.16.0.0 到 172.31.255.255 C 类 :192.168.0.0 到 192.168.255.255 在 注 意 设 计 一 个 好 的 网 络 的 IP 地 址 规 划 的 时 候 要 注 意 以 下 几 点 : 1. 可 扩 展 性 (scalability) 2. 可 预 测 性 (predictability) 3. 灵 活 性 (flexibility) Benefits of an Optimized IP-Addressing Plan 层 次 化 地 址 规 划 的 好 处 : 1. 减 少 了 路 由 表 (routing table) 的 条 目 (entry) 2. 可 以 有 效 的 对 地 址 进 行 分 配 可 以 使 用 路 由 汇 总 (route summarization) 来 减 少 路 由 表 的 条 目, 路 由 汇 总 使 得 多 个 IP 地 址 是 集 合 看 上 去 就 像 是 一 个 IP 地 址 从 而 减 少 在 路 由 器 中 的 条 目. 这 样 就 可 以 减 轻 路 由 器 的 CPU 和 内 存 的 负 载, 提 供 更 为 有 效 的 路 由 服 务, 加 快 了 网 络 收 敛 (convergence) 的 速 度, 简 化 了 排 错 (troubleshooting) 的 过 程 Hierarchical Addressing Using Variable-Length Subnet Masks 变 长 子 网 掩 码 (Variable-Length Subnet Masks,VLSM) 的 出 现 是 打 破 传 统 的 以 类 (class) 为 标 准 的 地 址 划 分 方 法, 是 为 了 缓 解 IP 地 址 紧 缺 而 产 生 的 先 来 看 看 前 缀 (prefix) 的 概 念 : 假 设 给 你 个 地 址 范 围 192.168.1.64 到 192.168.1.79. 前 3 个 8 位 位 组 (octet) 是 一 样 的, 我 们 来 看 看 组 后 个 8 位 位 组, 写 成 2 进 制, 如 下 : 64:0100 0000 65:0100 0001 66:0100 0010.. 77:0100 1101 78:0100 1110 79:0100 1111 注 意 它 们 的 共 通 点 : 前 4 位 是 一 样 的, 加 上 前 3 个 8 位 位 组 的 24 位 就 等 于 28 位, 所 以 我 们 就 可 以 认 定 这 个 网 段 的 前 缀 是 /28( 即 255.255.255.240). 所 以 在 这 个 例 子 里, 主 机 位 就 只 有 4 位 来 看 下 VLSM 的 应 用 : 假 如 一 个 公 司 使 用 的 是 172.16.0.0/16 的 地 址 空 间. 给 公 司 的 分 部 A 分 配 172.16.12.0/22 到 172.16.14.255/22 的 地 址 块.D 需 要 2 个 VLAN, 然 后 每 个 VLAN 容 纳 200 个 用 户.A,B 和 C 连 接 3 个 以 太 网, 分 别 用 1 个 24 口 的 交 换 机 相 连 ( 不 考 虑 级 联 等 因 素 ) 2
先 从 需 要 最 大 用 户 的 入 手 : 要 让 1 个 子 网 容 纳 200 个 用 户, 即 主 机 位 应 该 保 留 为 8 位 (254 台 主 机, 假 如 主 机 位 是 9 位 的 话 可 以 容 纳 510 台 主 机, 但 是 造 成 了 地 址 空 间 的 浪 费 ). 所 以 前 缀 为 /24, 从 172.16.12.0/24 开 始 分 配 起 走. 如 下 图 : 然 后 分 配 A,B 和 C 的 地 址 :A 连 接 一 个 24 口 的 交 换 机, 即 需 要 24 个 主 机 地 址, 那 么 主 机 位 应 该 保 留 为 5 位 ( 可 以 容 纳 30 台 主 机 ), 即 前 缀 为 /27(255.255.255.224), 因 为 172.16.12.0/24 和 172.16.13.0/24 已 经 被 D 全 部 占 用, 所 以 从 172.16.14.0/27 开 始 分 配. 如 下 图 : 最 后 来 给 A 和 D,B 和 D,C 和 D 之 间 分 配 IP 地 址. 由 于 它 们 之 间 是 点 对 点 连 接, 所 以 主 机 位 只 保 留 2 位, 即 前 缀 是 /30 就 可 以 了. 除 掉 掉 2 个 VLAN 和 3 个 LAN 占 用 了 的 地 址, 还 剩 下 下 面 几 个 地 址 块 : 172.16.14.96/27 172.16.14.128/27 172.16.14.160/27 172.16.14.192/27 172.16.14.224/27 我 们 从 172.16.14.224/27 来 进 行 划 分 ( 一 般 选 择 最 后 1 个 地 址 块 进 行 划 分 ). 如 下 图 : Route Summarization and Classless Interdomain Rouring 3
我 们 先 来 看 下 什 么 是 路 由 汇 总 和 无 类 域 间 路 由 (Classless Interdomain Rouring,CIDR), 它 是 为 了 缓 解 IP 地 址 短 缺, 减 小 路 由 表 的 体 积, 打 破 传 统 的 以 类 划 分 网 络 的 一 种 技 术, 如 下 图 : 4 个 C 类 地 址 的 子 网 经 过 D 的 路 由 汇 总 成 一 条 192.16.12.0/22, 注 意 这 个 192.16.12.0/22 既 不 是 A 类 也 不 是 B 类 更 不 是 C 类, 可 以 理 解 成 超 网 (supernetting), 即 无 类 的 概 念 Understanding IP Version 6 IPv6 是 IPv4 的 增 强 版 本, 和 IPv4 相 比, 有 很 多 优 点 包 括 : 1. 支 持 更 大 的 地 址 空 间 2. IPv6 的 头 部 格 式 比 IPv4 的 头 部 更 为 简 化,IPv6 的 头 部 可 以 根 据 需 要 进 行 扩 展 ( 简 单 并 不 代 表 短, 注 意 不 要 混 淆 ) 3. 更 高 的 安 全 性 和 能 很 好 的 和 移 动 IP 相 互 兼 容 4. 能 够 平 滑 过 渡 IPv4 到 IPv6 移 动 IP 是 IETF 标 准, 使 得 移 动 设 备 在 不 中 断 现 有 连 接 的 情 况 下 进 行 迁 移. 这 一 特 征 是 内 建 在 IPv6 中 的, 但 是 IPv4 就 不 是.IP Sec 是 IETF 开 发 的 标 准, 用 于 增 强 IP 网 络 安 全 性, 这 一 特 性 对 IPv6 是 必 须 的 IPv6 Addressing IPv4 是 32 位 长,4 字 节 ;IPv6 是 128 位 长,16 字 节 ;IPv4 支 持 的 地 址 最 多 达 到 42 亿,IPv6 支 持 的 地 址 多 达 3.4 乘 以 10 的 38 次 方. 增 加 IP 地 址 的 位 长 即 增 加 了 IP 包 头 部 信 息 的 大 小 IPv6 的 表 示 方 法 : 1.X:X:X:X:X:X:X:X( 每 个 X 代 表 16 位 的 16 进 制 数 字 ). 不 区 分 大 小 写 2. 排 头 的 0 可 省 略, 比 如 09C0 就 可 以 写 成 9C0,0000 可 以 写 成 0 3. 连 续 为 0 的 字 段 可 以 以 :: 来 代 替, 但 是 整 个 地 址 中 :: 只 能 出 现 一 次. 比 如 FF01:0:0:0:0:0:0:1 就 可 以 简 写 成 FF01::1 来 看 几 个 简 写 的 例 子 : 0:0:0:0:0:0:0:0 可 以 写 成 :: 0:0:0:0:0:0:0:0 可 以 写 成 ::1 4
Multicast Use IPv4 中 的 广 播 (broadcast) 可 以 导 致 网 络 性 能 的 下 降 甚 至 广 播 风 暴 (broadcast storm). 在 IPv6 中, 就 不 存 在 广 播 这 一 概 念 了, 取 而 代 之 的 是 组 播 (multicast) 和 任 意 播 (anycast) 组 播 的 接 受 对 象 是 一 组 成 员, 是 个 群 体. 任 意 播 是 多 个 设 备 共 享 一 个 地 址. 分 配 IPv6 单 播 (unicast) 地 址 给 拥 有 相 同 功 用 的 一 些 设 备. 发 送 方 发 送 一 个 以 任 意 播 为 目 标 地 址 的 包, 当 路 由 器 接 受 到 这 个 包 以 后, 就 转 发 给 具 有 这 个 地 址 的 离 它 最 近 的 设 备. 单 播 地 址 用 来 分 配 任 意 播 地 址. 对 于 那 些 没 有 配 备 任 意 播 的 的 地 址 就 是 单 播 地 址 ; 但 是 当 一 个 单 播 地 址 分 配 给 不 止 一 个 接 口 的 时 候, 单 播 地 址 就 成 了 任 意 播 地 址 Autoconfiguration 来 看 下 IPv6 的 自 动 配 置 : 当 本 地 链 路 的 路 由 器 发 送 网 络 类 型 信 息 给 所 有 节 点 的 时 候. 支 持 IPv6 的 主 机 就 把 它 自 己 64 位 的 链 路 层 地 址 附 着 在 64 位 的 前 缀 自 动 配 置 成 128 位 长 的 地 址, 保 证 地 址 的 唯 一 性. 自 动 配 置 启 用 即 插 即 用 (Plug and Play) IPv6 Renumbering IPv6 的 重 编 号 : 路 由 器 发 送 组 播 数 据 包, 其 中 数 据 包 中 包 含 2 个 前 缀, 一 个 是 拥 有 比 较 短 的 生 存 期 的 前 缀, 还 有 一 个 是 新 的 拥 有 正 常 时 间 的 前 缀. 通 知 网 络 上 的 节 点 用 完 旧 的 前 缀 后 换 成 新 的 前 缀, 这 样 就 能 进 行 平 滑 的 前 缀 过 渡 IPv4 to IPv6 Transitioning 两 种 转 换 的 方 式 : 1. 双 栈 (dual stack) 2.IPv6 到 IPv4(6to4) 的 隧 道 (tunnel) 还 有 一 种 是 利 用 NAT 来 翻 译 46 地 址 来 看 看 双 栈 配 置 的 例 子, 如 下 : Router#sh run ( 略 )! interface Ethernet0 ip address 192.168.99.1 255.255.255.0 ipv6 address 3ffe:b00:c18:1::3/127! ( 略 ) 隧 道 技 术 是 在 双 栈 路 由 器 上, 将 IPv6 包 封 装 在 IPv4 包 中, 然 后 经 过 IPv4 网 络 传 递 到 另 外 一 端 的 双 栈 路 由 器 上 去, 然 后 再 由 它 解 封 装 要 注 意 的 是 对 采 用 了 隧 道 技 术 的 网 络 进 行 排 错 的 话 比 较 复 杂, 要 记 住 的 是 这 只 是 一 个 过 渡 方 5
案, 不 是 最 终 的 体 系 结 构 对 隧 道 进 行 配 置, 需 要 满 足 以 下 2 个 条 件 : 1. 在 连 接 网 络 的 两 端 采 用 双 栈 路 由 器 2. 在 双 栈 路 由 器 的 接 口 同 时 配 置 IPv4 和 IPv6 的 地 址 6
Module2 Routing Principles Principles of Static Routing 我 们 来 复 习 下 配 置 静 态 路 由 的 语 法, 在 全 局 配 置 模 式 下 使 用 : ip route prefix mask {next-hop address interface} [distance] [permanent] 看 下 各 个 参 数 的 含 义 : prefix mask: 要 加 进 路 由 表 中 去 的 远 程 网 络 及 其 子 网 掩 码 next-hop address: 下 一 跳 地 址 interface: 到 达 目 标 网 络 的 本 地 路 由 器 的 出 口 distance: 管 理 距 离 (AD), 可 选 permanent: 路 由 条 目 永 久 保 存 在 路 由 表 中, 即 使 路 由 器 的 接 口 down 掉 了 注 意, 一 般 只 在 点 对 点 的 连 接 中 使 用 interface 选 项, 否 则 应 该 使 用 next-hop address 选 项 使 用 静 态 路 由 的 好 很 多, 比 如 可 以 对 网 络 进 行 完 全 的 掌 控, 不 会 占 用 额 外 的 路 由 器 CPU 和 内 存 资 源 以 及 网 络 带 宽. 适 用 于 小 型 网 络 中 如 下 就 是 一 个 静 态 路 由 的 例 子 : 如 图, 对 于 A, 只 需 要 在 它 上 面 配 置 ip route 10.2.0.0 255.255.0.0 s0 就 可 以 了, 这 里 采 用 的 就 不 是 next-hop address 而 是 采 用 本 地 的 出 口 接 口 ( 因 为 是 点 到 点 是 连 接 ); 当 然 也 可 以 这 样 配 置 成 ip route 10.2.0.0 255.255.0.0 10.1.1.1, 这 里 采 用 的 就 是 next-hop address 同 样 对 于 B 的 配 置 就 可 以 使 用 ip route 172.16.1.0 255.255.255.0 s0 或 者 ip route 172.16.1.0 255.255.255.0 10.1.1.2 默 认 路 由 (default route): 一 般 使 用 在 stub 网 络 中,stub 网 络 是 只 有 1 条 出 口 路 径 的 网 络. 使 用 默 认 路 由 来 发 送 那 些 目 标 网 络 没 有 包 含 在 路 由 表 中 的 数 据 包 或 者 所 有 的 数 据 包. 语 法 是 把 静 态 路 由 中 的 prefix mask 写 成 0.0.0.0 和 0.0.0.0 Principles of Dynamic Routing 1
动 态 路 由 允 许 路 由 器 自 动 交 换 路 由 信 息 从 而 了 解 整 个 网 络 的 信 息. 动 态 路 由 的 好 处 是 : 使 用 中 型 和 大 型 网 络, 能 够 根 据 网 络 拓 扑 的 变 化 自 动 更 改 路 由 表 的 信 息, 避 免 了 人 工 手 动 更 改 ; 但 是 带 来 的 缺 点 就 是 占 用 路 由 器 额 外 的 CPU 和 内 存 资 源 以 及 网 络 带 宽 Principles of On-Demand Routing ODR 是 Cisco 私 有 的, 主 要 用 在 如 下 的 一 种 星 型 环 境 中 : 有 的 时 候 你 会 觉 得 假 如 你 使 用 静 态 路 由, 当 网 络 拓 扑 发 生 变 化 以 后, 就 得 手 动 修 改 路 由 表 ; 但 是 你 又 不 想 使 用 动 态 路 由, 因 为 那 样 占 用 了 你 额 外 的 一 些 硬 件 资 源 和 网 络 带 宽. 在 如 上 图 的 环 境 中 就 可 以 使 用 ODR.ODR 使 用 Cisco 发 现 协 议 (CDP) 携 带 网 络 信 息.ODR 的 好 处 是 最 大 可 能 的 减 少 了 网 络 硬 件 和 资 源 的 负 载, 同 时 又 减 少 了 手 动 修 改 的 工 作 量. 但 是 ODR 只 使 用 于 hub-and-spoke 这 样 的 拓 扑 结 构 中. 如 上 图,AC,D 和 E 就 是 spoke router, 或 者 叫 做 stub router,b 作 为 中 心, 叫 做 hub router. 当 配 置 了 ODR 以 后,spoke router 使 用 CDP 发 送 IP 前 缀 信 息 到 hub router,spoke router 发 送 IP 前 缀 信 息 给 所 有 和 它 直 接 相 连 的 网 络.ODR 报 告 子 网 掩 那 子 信 息, 所 以 ODR 支 持 VLSM. 然 后 hub router 依 次 发 送 指 向 到 它 自 己 的 默 认 路 由 给 周 边 的 spoke router 严 格 说 来 ODR 不 算 是 真 正 的 路 由 协 议, 因 为 它 交 换 的 信 息 仅 仅 局 限 在 IP 前 缀 信 息 和 默 认 路 由 上,ODR 没 有 包 含 度 (metric) 的 信 息.ODR 使 用 跳 数 (hop count) 作 为 度 配 置 ODR 只 需 要 在 hub router 上 的 全 局 配 置 模 式 下 起 用 router odr 命 令, 不 需 要 在 stub router 上 配 置 IP 路 由 信 息, 但 是 必 须 在 接 口 上 开 启 CDP 功 能 对 ODR 的 验 证, 如 下 : B#show ip route ( 略 ) o 172.16.1.0/24 [160/1] via 10.1.1.2, 00:00:23, Serial0 2
o 172.16.2.0/24 [160/1] via 10.2.2.2, 00:00:03, Serial1 o 172.16.3.0/24 [160/1] via 10.3.3.2, 00:00:16, Serial2 o 172.16.4.0/24 [160/1] via 10.4.4.2, 00:00:45, Serial3 ( 略 ) 注 意 o 代 表 ODR, 管 理 距 离 为 160 Classful Routing Protocol Concept 基 于 类 的 路 由 协 议 最 大 的 特 点 是 在 路 由 更 新 (routing update) 中 不 包 含 子 网 掩 码 的 信 息. 由 于 不 知 道 子 网 掩 码 的 信 息, 当 一 个 基 于 类 的 路 由 器 接 受 或 发 送, 路 由 器 会 假 设 认 为 网 络 所 使 用 的 子 网 掩 码 是 包 含 进 路 由 更 新 中 的, 而 且 这 些 假 设 是 基 于 IP 的 类. 在 接 收 到 路 由 更 新 以 后, 运 行 了 基 于 类 的 路 由 协 议 的 路 由 器 就 会 根 据 以 下 其 中 一 条 来 决 定 网 络 路 径 : 1. 如 果 路 由 更 新 信 息 包 含 相 同 的 主 网 络 号 和 接 收 更 新 的 接 口 配 置 相 同 的 话, 路 由 器 就 应 用 接 收 更 新 的 接 口 的 那 个 子 网 掩 码 2. 如 果 路 由 更 新 信 息 包 含 相 同 的 主 网 络 号 和 接 收 更 新 的 接 口 配 置 不 相 同 的 话, 路 由 器 将 应 用 默 认 的 子 网 掩 码 : A 类 :255.0.0.0 B 类 :255.255.0.0 C 类 :255.255.255.0 当 使 用 基 于 类 的 路 由 协 议 的 时 候, 所 有 的 网 络 主 网 络 号 必 须 相 同, 而 且 子 网 必 须 连 续. 否 则 路 由 器 将 对 子 网 信 息 做 出 错 误 的 判 断. 运 行 了 基 于 类 的 路 由 协 议 会 在 网 络 的 边 界 (boundary) 做 自 动 的 路 由 汇 总 常 见 的 基 于 类 的 路 由 协 议 有 :IGRP 和 RIPv1 Network Summarization in Classful Routing 来 看 看 网 络 汇 总 在 边 界 的 发 生, 如 下 图 : B 作 为 网 络 的 分 界, 从 C 到 A,B 将 两 条 条 目 (172.16.1.0 和 172.16.2.0) 的 信 息 汇 总 成 一 条 (172.16.0.0); 从 A 到 C,B 将 两 条 条 目 (10.1.0.0 和 10.2.0.0) 的 信 息 汇 总 成 一 条 (10.0.0.0). 在 基 于 类 的 路 由 协 议 里, 这 样 的 汇 总 是 自 动 进 行 的, 不 需 要 手 动 配 置. 前 提 是 子 网 掩 码 等 长, 子 网 连 续 假 如 说 子 网 不 连 续, 如 下 图 : 3
如 图 中 的 表 所 示,D 给 C 传 送 一 条 汇 总 路 由 10.3.0.0;B 传 送 条 汇 总 路 由 10.2.0.0 给 C. 对 于 C 而 言 它 就 会 做 出 错 误 的 判 断, 它 区 分 不 了 10.2.0.0 和 10.3.0.0 分 别 在 哪 边. 所 以 说 做 基 于 类 的 路 由 协 议 的 路 由 汇 总, 子 网 必 须 连 续. 但 是 这 样 一 来, 会 造 成 地 址 空 间 的 浪 费 ( 和 VLSM 相 比 ) Examining a Classful Routing Table 假 设 我 们 使 用 show ip route 命 令, 产 生 如 下 输 出 : J# show ip route ( 略 ) Gateway of last resort is 0.0.0.0 to network 0.0.0.0 10.0.0.0/24 is subnetted, 3 subnets, R 10.1.1.0/24 [120/1] via 10.1.2.2, 00:00:05, Ethernet0 C 10.1.2.0/24 is directly connected, Ethernet0 R 10.1.3.0/24 [120/2] via 10.1.2.2, 00:00:05, Ethernet0 R 192.168.24.0/24 [120/2] via 10.1.2.2, 00:00:16, Ethernet0 R 172.16.0.0/16 [120/3] via 10.1.2.2, 00:00:16, Ethernet0 R* 0.0.0.0/0 [120/3] via 10.1.2.2, 00:00:05, Ethernet0 ( 略 ) 如 上, 可 以 看 出 10.1.2.0/24 是 直 接 相 连, 其 他 的 都 是 通 过 RIP 学 习 到 的. 现 在 我 们 假 设 有 以 下 几 个 目 的 地 的 包, 它 们 对 于 上 面 的 输 出 会 如 何 进 行 匹 配 : 192.168.24.3 172.16.5.1 10.1.2.7 200.100.50.0 10.2.2.2 根 据 show ip route 的 输 出 可 以 看 出, 到 达 192.168.24.3 的 包 会 跟 第 四 条 (92.168.24.0/24) 相 匹 配,( 虽 然 最 后 一 条 也 可 以, 但 是 匹 配 原 则 是 匹 配 掩 码 最 长 的 那 条 ); 接 下 来,172.16.5.1 和 第 五 条 (172.16.0.0/16) 匹 配 ;10.1.2.7 和 第 二 条 (10.1.2.0) 相 互 匹 配 ;200.100.50.0 和 前 五 条 都 不 匹 配, 和 第 六 条 默 认 路 由 (0.0.0.0/0) 相 互 匹 配 ;10.2.2.2 虽 然 和 前 三 条 的 第 一 个 8 位 位 组 匹 配, 但 是 后 面 3 个 8 位 位 组 不 匹 配, 所 以 它 将 被 丢 弃 而 不 会 采 用 默 认 路 由 如 果 你 在 全 局 模 式 下 使 用 了 ip classless 命 令 的 话, 目 的 地 是 10.2.2.2 的 包 就 不 会 被 丢 弃, 就 会 采 用 默 认 路 由.ip classless 命 令 在 Cisco IOS 版 本 12.0 和 12.0 以 后 默 认 打 开 的, 无 须 手 动 打 开 Classless Routing Protocol Concepts 基 于 无 类 概 念 的 路 由 协 议 可 以 说 是 第 二 代 路 由 协 议, 相 比 基 于 类 的 路 由 协 议, 它 可 以 解 决 地 址 空 间 过 于 浪 费 的 问 题. 这 类 协 议 的 例 子 有 RIPv2,OSPF,EIGRP,IS-IS,BGPv4. 使 用 无 类 的 路 由 协 4
议, 拥 有 相 同 主 网 络 号 的 不 同 子 网 就 可 以 使 用 不 同 的 子 网 掩 码 (VLSM). 假 如 在 路 由 表 中 到 达 目 的 网 络 的 匹 配 条 目 不 止 一 条, 将 会 选 择 子 网 掩 码 长 的 那 条 进 行 匹 配. 比 如 假 如 有 两 条 条 目 172.16.0.0/16 和 172.16.5.0/24, 如 果 目 的 地 是 172.16.5.99 的 包 将 会 和 172.16.5.0/24 进 行 匹 配 而 不 是 和 172.16.0.0/16 进 行 匹 配 还 有 一 点 是 无 类 的 路 由 协 议 的 自 动 汇 总 可 以 手 动 关 闭, 这 样 的 自 动 汇 总 会 影 响 不 连 续 的 子 网 的 使 用 而 造 成 错 误 的 汇 总 路 由 信 息 ( 这 点 和 基 于 类 的 路 由 协 议 在 不 连 续 子 网 的 情 况 下 的 自 动 汇 总 所 带 来 的 问 题 是 一 样 的 ) Automatic Network-Boundary Summarization Using RIPv2 and EIGRP 基 于 无 类 的 路 由 协 议 一 般 不 会 对 所 有 的 子 网 进 行 宣 告 (advertise). 默 认 的, 比 如 像 EIGRP 和 RIPv2 会 像 基 于 类 的 路 由 协 议 那 样, 在 网 络 的 边 界 进 行 自 动 汇 总, 这 样 就 使 得 它 们 能 和 它 们 的 之 前 的 RIPv1 和 IGRP 很 好 的 兼 容 但 是 和 之 前 的 RIPv1 和 IGRP 不 同 的 是, 你 可 以 手 动 关 闭 自 动 汇 总. 在 配 置 相 关 路 由 的 时 候 只 需 要 输 入 no auto-summary 就 可 以 了. 这 个 命 令 在 配 置 OSPF 和 IS-IS 的 时 候 是 不 必 输 入 的, 因 为 默 认 OSPF 和 IS-IS 不 会 进 行 自 动 汇 总 在 RIPv2 中 关 闭 自 动 汇 总, 如 下 : Router(config)#router rip Router(config-router)#version 2 Router(config-router)#no auto-summary version 2 命 令 是 启 用 RIPv2 版 本 Characteristics of RIP Version 1 RIPv1 的 特 点 包 括 : 1. 使 用 跳 数 (hop count) 作 为 度 来 决 定 最 佳 路 径 2. 允 许 最 大 跳 数 是 15 跳 3. 默 认 是 每 30 秒 广 播 路 由 更 新 ( 实 际 环 境 中 并 不 是 设 定 的 固 定 为 30 秒, 而 是 25 秒 到 30 秒 之 间 的 随 机 时 间, 防 止 两 个 路 由 器 发 送 同 时 更 新 产 生 冲 突 ) 4. 最 多 支 持 6 条 等 价 链 路 的 负 载 均 衡, 默 认 是 4 条 5. 是 基 于 类 的 路 由 协 议, 不 支 持 VLSM 6. 不 支 持 验 证 (authentication) Characteristics and Configuration of RIPv2 RIPv2 比 RIPv1 增 强 的 特 点 包 括 : 1. 基 于 无 类 概 念 的 路 由 协 议 2. 支 持 VLSM 3. 可 以 人 工 设 定 是 否 进 行 路 由 汇 总 4. 使 用 多 播 来 代 替 RIPv1 中 的 广 播 5. 支 持 明 文 或 MD5 加 密 验 证 5
RIPv2 使 用 多 播 地 址 224.0.0.9 来 更 新 路 由 信 息 RIPv2 的 配 置 命 令 步 骤 如 下 : 1. 启 动 RIP 路 由 协 议 : Router(config)#router rip 2. 启 动 版 本 2 : Router(config-router)#version 2 3. 设 置 进 行 宣 告 的 网 络 号 Router(config-router)#network network-number 一 默 认 Cisco IOS 会 接 收 版 本 1 和 2 的 更 新 包, ; 但 是 只 发 送 版 本 1 的 包. 要 设 置 成 只 发 送 和 接 收 一 种 版 本 的 包, 使 用 version {1 2} 命 令 即 可 一 些 其 他 的 命 令, 如 下 : Router(config-if)#ip rip send receive version {1 2} or 1 2 在 接 口 模 式 下 设 置 摸 个 接 口 接 受 和 发 送 不 同 版 本 的 包 或 同 时 接 收 发 送 版 本 1 和 2 的 包 Router(config-if)#ip summary-address rip network mask 如 果 之 前 在 全 局 配 置 模 式 下 使 用 no auto-summary 关 闭 了 自 动 汇 总 的 话, 要 在 某 个 接 口 做 人 工 汇 总 的 话 就 用 上 面 这 个 命 令 来 看 一 个 例 子, 如 下 图 : 如 图 所 显 示 的 是 一 个 RIPv1 和 RIPv2 协 同 工 作 的 网 络.A 运 行 RIPv2,C 运 行 RIPv1,B 同 时 运 行 RIPv1 和 RIPv2 对 C 的 配 置, 如 下 : C(config)#router rip C(config-router)#version 2 C(config-router)#network 10.0.0.0 C(config-router)# network 192.168.1.0. 对 B 配 置, 如 下 : B(config)#router rip B(config-router)#version 2 B(config-router)#network 10.0.0.0 光 配 置 这 些 是 不 够 的, 还 要 对 B 做 进 一 步 配 置, 如 下 : B(config)#int s3 B(config-if)#ip rip send version 1 B(config-if)#ip rip receive version 1 如 上, 我 们 在 s3 口 配 置 了 接 收 和 发 送 RIPv1 的 更 新, 因 为 RIPv2 是 作 为 主 要 运 做 的 协 议,C 运 行 的 是 RIPv1, 所 以 要 让 B 和 C 进 行 正 确 的 信 息 交 换 的 话, 就 要 在 B 的 s3 口 配 置 上 述 命 令 对 A 进 行 配 置, 如 下 : A(config)#router rip A(config-router)#version 2 6
A(config-router)#network 10.0.0.0 A(config-router)#network 172.16.0.0 A(config-router)#no auto-summary 如 上 我 们 关 闭 了 自 动 汇 总, 当 然 这 样 是 不 够 的, 还 应 该 做 如 下 配 置 进 行 手 动 汇 总 : A(config)#int s2 A(config-if)#ip summary-address rip 172.16.1.0 255.255.255.0 这 样 做 的 目 的 是 允 许 把 172.16.1.0/24 的 信 息 发 送 给 B, 因 为 默 认 发 送 给 B 的 信 息 是 172.16.0.0/16 Administrative Distance 看 看 Cisco 制 定 的 各 个 路 由 协 议 的 管 理 距 离 (AD), 如 下 : 1. 直 接 相 连 :0 2. 静 态 路 由 :1 3.EIGRP 汇 总 路 由 (summary route):5 4. 外 部 BGP:20 5. 内 部 EIGRP:90 6:IGRP:100 7.OSPF:110 8.IS-IS:115 9.RIP(v1,v2):120 10. 外 部 EIGRP:170 11. 内 部 BGP:200 Floating Status Route 因 为 静 态 路 由 的 AD 比 一 些 动 态 路 由 协 议 的 AD 高, 假 如 你 又 想 优 先 采 用 动 态 路 由, 而 让 静 态 路 由 作 为 备 份 路 由 的 话, 就 可 以 在 配 置 静 态 路 由 的 时 候 指 定 一 个 AD 值, 这 个 AD 值 要 比 你 采 用 的 动 态 路 由 协 议 要 高 才 行. 所 以 一 般 当 动 态 路 由 正 常 的 时 候, 你 在 路 由 表 里 是 看 不 到 这 条 静 态 路 由 的 ; 当 动 态 路 由 出 问 题 的 时 候, 静 态 路 由 开 始 生 效, 于 是 出 现 在 路 由 表 里, 这 样 的 静 态 路 由 就 叫 做 浮 动 静 态 路 由 (floating static route) 来 看 一 个 例 子, 如 下 图 : 对 A 的 配 置 如 下 : A(config)#ip route 10.0.0.0 255.0.0.0 172.16.1.2 100 A(config)#router eigrp 100 A(config-router)#network 192.168.1.0 7
A(config-router)#network 172.17.0.0 如 上, 我 们 对 静 态 路 由 的 AD 指 定 为 100,EIGRP 的 AD 为 90, 所 以 优 先 采 用 EIGRP 对 B 的 配 置 和 A 类 似, 如 下 : B(config)#ip route 172.17.0.0 255.255.0.0 172.16.1.1 100 B(config)#router eigrp 100 B(config-router)#network 10.0.0.0 B(config-router)#network 192.168.1.0 注 意, 不 能 在 ISDN 上 配 置 EIGRP, 因 为 ISDN 一 般 作 为 备 份 连 接, 如 果 在 ISDN 上 配 置 了 EIGRP 的 话, 那 ISDN 连 接 将 永 久 保 持, 就 失 去 了 作 为 备 份 连 接 的 意 义 了 Criteria for Inserting Routes in the IP Routing Table 路 由 器 决 定 最 佳 路 径 要 参 考 以 下 几 个 标 准, 如 下 : 1. 有 效 的 下 一 跳 IP 地 址 2. 最 佳 的 度 3. 管 理 距 离 4. 选 择 前 缀 匹 配 最 长 的 路 由 Protocols, Ports, and Reliability 各 个 路 由 协 议 的 协 议 号, 端 口 号 和 可 靠 性 的 比 较, 如 下 图 : IGRP,EIGRP 和 OSPF 是 OSI 参 考 模 型 中 传 输 层 的 协 议, 都 通 过 IP 包 进 行 数 据 交 换,IGRP 使 用 无 连 接 特 性, 尽 最 大 努 力 进 行 传 送 ;EIGRP 和 OSPF 使 用 一 一 确 认 的 窗 口 技 术 ( 即 发 送 出 一 个 包 要 等 待 该 包 的 确 认 后 再 发 送 下 一 个 包 ).IGRP 的 协 议 号 是 9,EIGRP 的 协 议 号 是 88;OSPF 的 协 议 号 是 89 RIP 和 BGP 都 是 OSI 参 考 模 型 应 用 层 的 协 议.RIP 使 用 UDP 作 为 它 的 传 输 协 议, 不 可 靠, 只 是 尽 力 传 送, 使 用 UDP 端 口 520.RIPv1 使 用 广 播 传 输 ;RIPv2 使 用 多 播 传 输 BGP 使 用 TCP 作 为 它 的 传 输 协 议, 最 大 特 点 是 可 靠, 使 用 了 窗 口 技 术. IS-IS 是 OSI 参 考 模 型 中 网 络 层 的 协 议, 它 不 使 用 IP 作 为 它 的 传 输 协 议.IS-IS 包 是 直 接 封 装 在 OSI 参 考 模 型 中 的 数 据 链 路 层 中 的 Routing Protocol Comparison 各 种 路 由 协 议 的 比 较 如 下 图 : 8
BGP 严 格 的 来 说 是 路 径 矢 量 (path-vector) 路 由 协 议 9
Module3 Configuring EIGRP EIGRP Features EIGRP 是 Cisco 的 私 有 路 由 协 议, 它 综 合 了 距 离 矢 量 和 链 路 状 态 2 者 的 优 点, 它 的 特 点 包 括 : 1. 快 速 收 敛 :EIGRP 使 用 Diffusing Update 算 法 (DUAL) 来 实 现 快 速 收 敛. 路 由 器 使 用 EIGRP 来 存 储 所 有 到 达 目 的 地 的 备 份 路 由, 以 便 进 行 快 速 切 换. 如 果 没 有 合 适 的 或 备 份 路 由 在 本 地 路 由 表 中 的 话. 路 由 器 向 它 的 邻 居 进 行 查 询 来 选 择 一 条 备 份 路 由 2. 减 少 带 宽 占 用 :EIGRP 不 作 周 期 性 的 更 新, 它 只 在 路 由 的 路 径 和 度 发 生 变 化 以 后 做 部 分 更 新. 当 路 径 信 息 改 变 以 后,DUAL 只 发 送 那 条 路 由 信 息 改 变 了 的 更 新, 而 不 是 发 送 整 个 路 由 表. 和 更 新 传 输 到 一 个 区 域 内 的 所 有 路 由 器 上 的 链 路 状 态 路 由 协 议 相 比,DUAL 只 发 送 更 新 给 需 要 该 更 新 信 息 的 路 由 器 3. 支 持 多 种 网 络 层 协 议 :EIGRP 通 过 使 用 protocol-dependent modules(pdms), 可 以 支 持 ApplleTalk,IP 和 Novell Netware 等 协 议 4. 无 缝 连 接 数 据 链 路 层 协 议 和 拓 扑 结 构 :EIGRP 不 要 求 对 OSI 参 考 模 型 的 层 2 协 议 做 特 别 是 配 置. 不 像 OSPF,OSPF 对 不 同 的 层 2 协 议 要 做 不 同 配 置, 比 如 以 太 网 和 帧 中 继 总 之,EIGRP 能 够 有 效 的 工 作 在 LAN 和 WAN 中, 而 且 EIGRP 保 证 网 络 不 会 产 生 环 路 (loop-free); 而 且 配 置 起 来 很 简 单 ; 支 持 VLSM; 它 使 用 多 播 和 单 播, 不 使 用 广 播, 这 样 做 节 约 了 带 宽 ; 它 使 用 和 IGRP 一 样 的 度 的 算 法, 但 是 是 32 位 长 的 ; 它 可 以 做 非 等 价 的 路 径 的 负 载 平 衡 EIGRP Databases 运 行 了 EIGRP 的 路 由 器 维 持 3 张 表 :neighbor table,topology table 和 routing table. 其 中 neighbor table 保 存 了 和 路 由 器 建 立 了 邻 居 关 系 的, 直 接 相 连 的 路 由 器 ;topology table 包 含 路 由 器 学 习 到 的 到 达 目 的 地 的 所 有 路 由 条 目, 其 过 程 如 下 : 1.neighbor table 中 的 每 个 邻 居 都 转 发 1 份 IP 路 由 表 的 拷 贝 给 它 们 的 邻 居 2. 然 后 每 个 邻 居 把 从 它 们 自 己 的 邻 居 处 得 来 的 路 由 表 存 储 在 自 己 的 EIGRP 拓 扑 数 据 库 中 3.EIGRP 检 查 拓 扑 数 据 库, 然 后 选 择 出 一 条 到 达 目 的 地 的 最 佳 路 由 4.EIGRP 从 拓 扑 数 据 库 中 选 择 到 达 目 的 地 的 最 佳 的 successor routes, 然 后 把 它 们 放 到 路 由 表 里. 路 由 器 为 每 种 协 议 ( 比 如 IP,IPX) 各 自 保 持 1 张 单 独 是 路 由 表 Feasible Distance vs. Advertised Distance 为 了 决 定 到 达 目 的 地 的 最 佳 路 由 (successor) 和 备 份 路 由 (feasible successor),eigrp 使 用 下 面 2 个 参 数 : 1.advertised distance:eigrp 邻 居 到 达 目 标 网 络 的 度 2.feasible distance: 到 达 邻 居 路 由 器 的 度 加 上 advertised distance( 即 邻 居 到 达 目 标 网 络 的 度 ) 路 由 器 比 较 所 有 的 FD, 然 后 选 择 FD 值 最 低 的 放 进 IP 路 由 表 来 看 一 个 例 子, 如 下 图 : 1
如 图 显 示 的 是 C 的 EIGRP 拓 扑 数 据 库, 里 面 包 含 了 邻 居 A 和 B 的 信 息.A 和 B 都 知 道 如 何 到 达 网 络 10.1.1.0/24. 从 图 中 我 们 看 见 A 到 达 目 标 网 络 的 advertised distance 是 1000;B 是 1500.FD 分 别 是 2000 和 2500.C 经 过 比 较, 将 FD 值 低 的, 这 里 就 是 A 的 条 目, 作 为 到 达 网 络 10.1.1.0/24 的 最 佳 路 径 EIGRP Metric Calculation EIGRP 选 择 一 条 主 路 由 ( 最 佳 路 由 ) 和 一 条 备 份 路 由 放 在 topology table(eigrp 到 目 的 地 支 持 最 多 6 条 链 路 ). 它 支 持 几 种 路 由 类 型 : 内 部, 外 部 ( 非 EIGRP) 和 汇 总 路 由.EIGRP 使 用 混 合 度 EIGRP 度 的 5 个 标 准 如 下 : 1. 带 宽 :10 的 7 次 方 除 以 源 和 目 标 之 间 最 低 的 带 宽 乘 以 256 2. 延 迟 (delay): 接 口 的 累 积 延 迟 乘 以 256, 单 位 是 微 秒 以 上 是 默 认 的 2 个, 下 面 是 可 选 的 3 个 标 准 : 3. 可 靠 性 (reliability): 根 据 keepalive 而 定 的 源 和 目 的 之 间 最 不 可 靠 的 可 靠 度 的 值 4. 负 载 (loading): 根 据 包 速 率 和 接 口 配 置 带 宽 而 定 的 源 和 目 的 之 间 最 不 差 的 负 载 的 值 5. 最 大 传 输 单 元 (MTU): 路 径 中 最 小 的 MTU.MTU 包 含 在 EIGRP 的 路 由 更 新 里, 但 是 一 般 不 参 与 EIGRP 度 的 运 算 EIGRP 使 用 DUAL 来 决 定 到 达 目 的 地 的 最 佳 路 由 (successor). 当 最 佳 路 由 出 问 题 的 时 候,EIGRP 不 使 用 holddown timer 而 立 即 使 用 备 份 路 由 (feasible successor), 这 样 就 使 得 EIGRP 可 以 进 行 快 速 收 敛 看 看 EIGRP 计 算 度 的 公 式,K 是 常 量, 公 式 如 下 : metric=[k1*bandwidth+(k2*bandwidth)/(256 load)+k3*delay]*[k5/(reliability+k4)] 默 认 :K1=1,K2=0,K3=1,K4=0,K5=0 这 样 就 得 到 默 认 的 度 的 简 化 计 算 公 式, 如 下 : metric=bandwidth+delay 注 意, 不 推 荐 修 改 K 值.K 值 通 过 EIGRP 的 hello 包 运 载. 如 果 两 个 路 由 器 的 K 值 不 匹 配 的 话 它 们 是 不 会 形 成 邻 居 关 系 的 EIGRP Metrics Backward Compatible to IGRP 2
EIGRP 的 度 和 IGRP 的 度 能 够 很 好 的 进 行 兼 容.IGRP 的 度 是 以 24 位 的 格 式, 而 EIGRP 是 32 位 的 格 式. 它 们 之 间 的 关 系 是 EIGRP 的 度 是 256 倍 于 IGRP 的 度. 也 就 是 说 假 如 IGRP 的 度 为 1000 的 话, 换 算 成 EIGRP 的 度 为 256000 来 看 一 个 EIGRP 度 的 计 算 的 例 子, 如 下 图 : 注 意 图 上 各 个 路 由 器 之 间 的 链 路 带 宽, 先 看 看 A 经 过 B,C 到 达 D 之 间 的 度 的 计 算,AB 之 间,BC 之 间 为 T1 线 路,CD 之 间 带 宽 为 64kbps, 计 算 如 下 : 带 宽 =10,000,000/64*256=40,000,000 累 积 延 迟 =(2000+2000+2000)*256=1,536,000 所 以 度 = 带 宽 + 累 积 延 迟 =41,536,000 EIGRP Packets EIGRP 的 5 种 包 的 类 型, 如 下 : 1.hello 包 : 路 由 器 使 用 hello 包 来 发 现 邻 居, 采 用 多 播 的 方 式 2.update 包 : 采 用 单 播 或 多 播 的 方 式 发 送. 更 新 发 生 在 路 由 器 启 动, 拓 扑 或 度 发 生 变 化, 和 路 由 状 态 的 迁 移 ( 主 动 到 被 动 ) 3.query 包 : 当 路 由 器 开 始 进 行 路 由 计 算 和 没 有 FD 的 时 候, 它 就 发 送 给 邻 居 一 个 可 靠 的 查 询 包 来 询 问 是 否 有 到 达 目 的 地 的 FD. 查 询 包 通 常 以 多 播 的 方 式 发 送 4.reply 包 : 以 单 播 的 方 式 发 回 给 发 出 查 询 包 的 路 由 起, 作 为 应 答 5.acknowledge(ACK) 包 :ACK 包 是 采 用 单 播 的 hello 包, 包 含 非 0 的 确 认 数 字.update 包,query 包 和 reply 包 均 是 可 靠 发 送, 所 以 它 们 都 需 要 确 认 ; 而 hello 包 和 ACK 包 就 不 需 要 确 认 EIGRP Hello Packets 当 你 在 路 由 器 的 接 口 配 置 了 EIGRP 以 后, 路 由 器 会 周 期 性 的 以 组 多 播 的 方 式 向 外 发 送 hello 包. 多 播 地 址 是 224.0.0.10. 当 和 它 在 1 个 AS 里 的 其 他 运 行 了 EIGRP 的 路 由 器 接 收 到 hello 包 以 后, 就 会 和 它 形 成 邻 居 关 系. 不 在 1 个 AS 里, 而 且 度 的 计 算 方 式 不 一 样 ( 即 K 值 不 同 ), 是 不 会 形 成 邻 居 关 系 的 EIGRP Timers hello 包 在 不 同 的 介 质 上 发 送 间 隔 是 不 一 样 的, 如 下 : 3
1. 在 以 下 介 质 中 是 以 每 5 秒 进 行 发 送 : 广 播 型 介 质, 比 如 以 太 网, 令 牌 环 (Token Ring) 和 分 布 式 光 纤 接 口 (FDDI); 在 点 到 点 类 型 的 串 行 链 路 中 比 如 PPP 和 HDLC, 还 有 帧 中 继 和 ATM; 带 宽 大 于 T1 线 路 的 多 点 线 路, 比 如 交 换 式 多 兆 位 数 据 服 务 (SMDS), 帧 中 继,ATM 和 ISDN PRI 2. 在 以 下 类 型 中 间 隔 时 间 是 60 秒 : 带 宽 小 于 T1 线 路 的 多 点 线 路, 比 如 ISDN BRI, 帧 中 继,SMDS,ATM 和 X.25 当 配 置 EIGRP 的 时 候,EIGRP 进 程 动 态 发 现 和 它 直 接 相 连 的 运 行 了 EIGRP 的 路 由 器. 每 个 路 由 器 在 它 自 己 的 neighbor table 中 都 保 持 的 有 邻 居 的 信 息, 包 括 到 达 邻 居 路 由 器 的 地 址 和 接 口. 还 保 持 的 有 hold time.hold time 是 3 倍 于 hello time EIGRP 在 低 速 链 路 上 发 送 hello 包 的 频 率 较 低, 因 为 hello 包 会 占 用 额 外 的 带 宽. 不 过 可 以 在 接 口 配 置 模 式 对 默 认 时 间 进 行 修 改, 使 用 ip hello-interval eigrp {AS-number} {seconds} 命 令 ; 修 改 hold time 的 时 间 的 命 令 也 是 在 接 口 配 置 模 式, 使 用 ip hold-time eigrp {AS-number} {seconds} 命 令. 当 你 修 改 了 hello 包 的 时 间 间 隔 以 后,hold time 是 不 会 自 动 修 改 的 ( 之 前 hold time=hello time*3) 所 以 要 人 工 进 行 修 改 EIGRP Adjacency Establishment Conditions 即 使 两 个 路 由 器 的 hello time 和 hold time 相 互 之 间 不 匹 配, 它 们 仍 然 有 可 能 成 为 邻 居.hello 包 包 含 了 hold time 的 信 息 和 保 持 跟 踪 每 个 EIGRP 邻 居 路 由 器 的 hold time 如 果 EIGRP 路 由 器 在 hold time 超 出 之 前 没 有 收 到 EIGRP 包, 路 由 器 就 会 察 觉 拓 扑 的 变 化. 路 由 器 删 除 邻 居 路 由 器 的 相 关 信 息, 包 括 从 邻 居 那 里 认 可 的 topology table 条 目. 假 如 FD 可 用 的 话,EIGRP 进 程 将 进 行 重 新 收 敛 EIGRP 不 会 基 于 次 要 地 址 (secondary address) 建 立 邻 居 关 系, 因 为 EIGRP 使 用 接 口 的 主 地 址 show ip eigrp neighbors Command 使 用 show ip eigrp neighbors 命 令 查 看 EIGRP 邻 居 关 系, 如 下 图 : 看 下 各 个 输 出 的 含 义, 如 下 : 1.neighbor address: 邻 居 路 由 器 的 地 址, 如 上 图 可 以 看 出 p2r2 有 2 个 邻 居 2.queue(Q Cnt): 等 待 发 送 的 排 队 排 列 的 包. 如 果 这 个 值 持 续 高 于 0 的 话, 说 明 发 生 了 拥 塞 问 题 3.Smooth Round Trip Timer(SRTT): 从 邻 居 处 发 送 和 接 收 包 的 平 均 回 程 时 间. 单 位 是 毫 秒. 这 个 通 常 用 来 决 定 RTO(Retransmit Time Out) 4.RTO: 单 位 是 毫 秒. 路 由 器 在 重 新 传 输 包 之 前 等 待 ACK 的 时 间 5.hold time: 定 义 了 等 待 没 有 从 邻 居 那 里 接 收 到 任 何 包 的 最 大 时 间. 当 接 受 到 新 的 包 以 后,hold 4
timer 复 位 6.Interface: 本 地 到 邻 居 的 接 口 EIGRP Reliability Reliable Transport Protocol(RTP) 用 来 保 证 EIGRP 包 发 送 给 邻 居 的 可 靠 的 传 输.RTP 支 持 单 播 和 多 播 的 混 合 方 式. 出 于 效 率 问 题 的 考 虑, 只 有 一 些 特 定 的 EIGRP 包 需 要 可 靠 的 传 输. 比 如 在 拥 有 多 播 能 力 的 多 路 访 问 网 络 中, 比 如 以 太 网, 就 不 需 要 单 独 的 发 送 可 靠 的 hello 包 给 所 有 邻 居.EIGRP 发 送 1 个 单 独 的 hello 包 的 多 播, 其 中 包 含 接 收 者 不 需 要 对 这 些 包 进 行 确 认 其 他 类 型 包, 比 如 update 包 就 需 要 确 认. 所 有 运 载 路 由 信 息 的 包 (update,reply 和 query) 就 需 要 可 靠 传 输 因 为 它 们 不 是 周 期 性 的 发 送. 每 个 包 分 配 的 有 序 列 号 然 后 要 求 确 认. 这 些 序 列 号 和 确 认 就 使 得 这 些 包 可 以 可 靠 的 传 输 ACK 包 和 hello 包, 是 不 需 要 可 靠 性 的 EIGRP Retransmission Policy and Transport Mechanism RTP 的 重 传 机 制 : 路 由 器 发 送 给 邻 居 可 靠 的 包 在 RTO 超 出 以 后, 还 没 得 到 确 认 的 话, 将 进 行 包 的 重 传. 最 大 重 传 次 数 16 次, 直 到 hold time 超 出 EIGRP 的 传 输 使 用 了 窗 口 技 术, 并 且 窗 口 大 小 是 1,stop-and-wait 机 制, 即 要 对 传 输 的 包 进 行 一 一 确 认. 假 如 一 个 路 由 器 A 有 两 个 邻 居 B 和 C, 当 分 别 给 B 和 C 发 送 1 个 包 以 后,B 做 出 了 及 时 的 应 该 而 C 还 没 有 做 出 应 答,A 就 必 须 等 待, 直 到 C 做 出 应 答 以 后 才 能 发 送 下 一 个 包, 这 样 带 来 的 影 响 是 降 低 了 效 率. 解 决 的 办 法 是 对 没 有 得 到 确 认 的 多 播 包 采 用 单 播 包 来 传 送 Initial Route Discovery in EIGRP 来 看 看 EIGRP 中 邻 居 的 发 现 和 建 立 过 程, 如 下 图 : 具 体 过 程 如 下 : 5
1. 路 由 器 A 启 动, 然 后 在 链 路 上 发 送 hello 包 2. 路 由 器 B 接 收 到 A 发 来 的 hello 包, 然 后 做 出 应 答, 发 回 update 包 给 A, 告 诉 A 它 自 己 的 路 由 表 的 信 息. 但 是 这 个 时 候 邻 居 关 系 还 没 有 建 立 直 到 B 发 回 hello 包 给 A. 在 B 给 A 的 update 包 里 设 置 了 初 始 位 (init bit) 的, 说 明 这 是 初 始 过 程 3. 当 双 方 交 换 过 hello 包 以 后, 邻 居 关 系 建 立.A 发 回 ACK 包 给 B 确 认 它 已 经 收 到 了 从 B 而 来 的 update 包 4.A 吸 收 update 包 到 它 自 己 的 topology table 中 去.topology table 包 括 了 从 邻 居 那 里 得 来 的 所 有 目 的 地 信 息 5.A 发 送 update 包 给 B 6.B 收 到 A 发 来 的 update 包 后 做 出 应 答 ; 发 回 ACK 包 给 A 整 个 过 程 完 成 Verifying EIGRP Connectivity Using debug Commands debug eigrp packets: 显 示 执 行 这 条 命 令 的 路 由 器 的 接 收 和 发 送 的 包 的 类 型, 如 下 : RouterA#debug eigrp packets ( 略 ) 01:38:29: EIGRP: Sending HELLO on Serial0/0 01:38:29: AS 100, Flags 0x0, Seq 0/0 idbq 0/0 iidbq un/rely 0/0 01:38:31: EIGRP: Received HELLO on Serial0/0 nbr 10.1.2.2 01:38:31: AS 100, Flags 0x0, Seq 0/0 idbq 0/0 iidbq un/rely 0/0 peerq un/rely 0/0 Received EIGRP Update 01:38:33: EIGRP: Received UPDATE on Serial0/0 nbr 10.1.2.2 01:38:33: AS 100, Flags 0x0, Seq 23/37 idbq 0/0 iidbq un/rely 0/0 peerq un/rely 0/0 01:38:33: EIGRP: Enqueueing ACK on Serial0/0 nbr 10.1.2.2 01:38:33: Ack seq 23 iidbq un/rely 0/0 peerq un/rely 1/0 01:38:33: EIGRP: Sending ACK on Serial0/0 nbr 10.1.2.2 ( 略 ) 如 果 K 值 不 匹 配 的 话, 当 然 就 建 立 不 了 邻 居 关 系, 如 下 : RouterA#debug eigrp packets ( 略 ) 01:39:13: EIGRP: Received HELLO on Serial0/0 nbr 10.1.2.2 01:39:13:AS 100, Flags 0x0, Seq 0/0 idbq 0/0 iidbq un/rely 0/0 peerq un/rely 0/0 01:39:13: K-value mismatch ( 略 ) debug ip eigrp: 显 示 路 由 器 发 送 和 接 收 的 EIGRP 包 的 相 关 信 息, 如 下 : RouterA#debug ip eigrp IP-EIGRP Route Events debugging is on 01:57:23: IP-EIGRP: Processing incoming UPDATE packet 01:57:23: IP-EIGRP: Int 172.16.1.0/24 M 10639872-9999872 640000 SM 384000-256000 128000 ( 略 ) 如 上 输 出, 内 部 路 由 标 的 有 Int 字 样,FD 为 9999872( 带 宽 值 )+640000( 延 迟 )=10639872, 其 中 FD 6
是 路 由 器 A 到 达 目 标 网 络 172.16.1.0/24;SM 代 表 source metric,advertised distance 是 256000+128000=384000. 因 为 带 宽 值 是 由 10 的 7 次 方 除 以 真 正 的 带 宽 得 来 的, 而 且 计 算 EIGRP 度 的 时 候 是 选 择 链 路 带 宽 值 低 的 那 条. 所 以 EIGRP 的 度 为 9999872(bandwidth)+640000(delay)=10639872 Selection of a Successor by DUAL 如 果 有 相 同 的 FD 的 话, 路 由 表 可 以 存 在 多 个 successor, 默 认 可 以 存 在 4 个.FS(feasible successor) 是 备 份 路 由. 要 限 定 一 个 FS, 下 一 跳 的 路 由 器 的 advertised distance 必 须 比 当 前 successor 路 由 的 FD 要 小 如 果 successor 因 故 无 效, 而 有 效 的 FS 存 在 的 话,FS 将 代 替 successor 并 无 需 进 行 重 新 计 算.EIGRP 的 topology table 一 次 可 以 存 在 多 个 有 效 的 FS; 如 果 successor 因 故 无 效, 同 时 又 没 有 有 效 的 FS 的 话,EIGRP 将 进 行 重 新 计 算. 计 算 过 程 将 计 算 出 新 的 一 个 successor successor 是 下 一 跳 的 路 由 器 到 达 目 标 网 络 中 的 最 佳 路 由 器.FD 最 低 的 成 为 successor. 所 有 的 路 由 器 只 选 择 下 一 跳 的 路 由 器, 然 后 每 个 路 由 器 依 靠 下 一 跳 路 由 器 做 出 到 达 目 标 网 络 的 最 可 靠 的 决 定. 所 有 的 路 由 器 依 赖 于 successor( 最 佳 的 下 一 跳 路 由 器 ) 到 达 目 标 网 络 来 看 一 个 例 子, 如 下 图 : 假 设 路 由 器 B 把 网 络 10.1.1.0/24 宣 告 给 它 的 邻 居 路 由 器 C,B 到 网 络 10.1.1.0/24 的 耗 费 为 1000,C 把 这 个 值 作 为 从 B 那 里 得 到 的 advertised distance.c 再 加 上 它 自 己 到 达 B 的 耗 费 (1000) 得 到 通 过 B 到 达 目 标 网 络 的 FD( 即 1000+1000=2000) D 宣 告 网 络 10.1.1.0/24 给 C. 如 图,D 到 达 网 络 10.1.1.0/24 的 耗 费 是 1500,C 从 D 那 里 得 到 这 个 作 为 advertised distance, 然 后 加 上 它 自 己 到 达 D 的 耗 费 (1000) 得 到 FD 为 2500. 路 由 器 C 比 较 所 有 的 FD, 选 择 值 低 的 那 个 作 为 最 佳 路 由, 即 选 择 通 过 B 到 达 目 标 网 络. 所 以 路 由 器 B 作 为 C 到 达 目 标 网 络 的 successor EIGRP Feasible Successor FS, 是 作 为 successor 的 备 份,FS 路 由 存 储 在 topology table 中, 一 张 topology table 可 以 保 持 多 个 FS.FS 的 选 举 是 经 过 比 较 非 successor 的 AD, 而 且 AD 要 比 FD 小, 才 能 被 认 可 为 FS. 这 个 比 较 的 过 程, 可 以 写 成 下 面 的 数 学 方 程 式 : AD of second best route < FD of best route(successor) = FS 7
注 意 这 里 的 AD 不 是 管 理 距 离 而 是 advertised distance 如 下 是 没 有 FS 的 一 个 公 式 : AD of second best route FD of best route(successor) FS Configuring EIGRP 配 置 EIGRP 的 具 体 步 骤, 如 下 : 1. 在 全 局 配 置 模 式 下 使 用 router eigrp [[AS number] 命 令 启 用 EIGRP, 在 一 个 AS 内, 所 有 要 配 置 EIGRP 的 路 由 器 必 须 拥 有 相 同 的 AS 号 2. 定 义 EIGRP 网 络 号 使 用 network [network-number] [wildcard-mask] 命 令, 可 以 使 用 wildcard mask 来 定 义 特 殊 的 IP 地 址, 子 网 或 网 络 3. 如 果 你 使 用 了 串 行 连 接, 还 得 定 义 链 路 带 宽. 如 果 你 不 定 义 带 宽,EIGRP 默 认 认 为 带 宽 为 T1 线 路 的 带 宽 大 小, 即 1.544Mbps. 如 果 实 际 的 链 路 带 宽 比 这 个 低 的 话, 路 由 器 将 不 能 收 敛, 或 者 路 由 update 包 会 丢 失. 使 用 bandwidth [Kb] 命 令 定 义 带 宽. 这 个 带 宽 对 于 点 对 点 的 帧 中 继 网 络 中, 定 义 的 带 宽 是 CIR; 而 对 于 其 他 的 普 通 串 行 线 路, 定 义 的 就 是 实 际 带 宽 来 看 一 个 EIGRP 配 置 的 实 例, 如 下 图 : 如 图, 所 有 的 路 由 器 都 在 AS 109 里, 路 由 器 A 没 有 使 用 wildcard mask. 如 果 A 使 用 了 以 下 的 配 置 : RouterA(config)#router eigrp 109 RouterA(config-router)#netw 10.1.0.0 RouterA(config-router)#netw 10.4.0.0 RouterA(config-router)#netw 172.16.1.0 RouterA(config-router)#netw 172.16.2.0 路 由 器 A 将 对 网 络 进 行 自 动 汇 总, 使 得 配 置 看 上 去 像 是 这 样 的, 如 下 : RouterA(config)#router eigrp 109 RouterA(config-router)#netw 10.0.0.0 RouterA(config-router)#netw 172.16.0.0 如 果 路 由 器 A 的 配 置 命 令 是 如 下 这 样 的 : RouterA(config)#router eigrp 109 RouterA(config-router)#netw 10.1.0.0 0.0.255.255 8
RouterA(config-router)#netw 10.4.0.0 0.0.255.255 RouterA(config-router)#netw 172.16.1.0 0.0.0.255 RouterA(config-router)#netw 172.16.2.0 0.0.0.255 使 用 wildcard mask 来 定 义 参 与 AS 109 的 EIGRP 进 程 的 直 接 相 连 的 路 由 器 接 口. 在 上 面 这 个 例 子 里, 定 义 的 就 是 处 于 10.1.0.0/16,10.4.0.0/16,172.16.1.0/24 和 172.16.2.0/24 里 的 所 有 接 口 都 会 参 与 AS 109 里 的 EIGRP 进 程 看 看 在 EIGRP 中 使 用 wildcard mask 的 例 子, 如 下 图 : 如 图, 路 由 器 C 并 没 有 使 用 network 172.16.0.0 0.0.0.255, 而 使 用 的 是 network 172.16.3.0 0.0.0.255 和 network 172.16.4.0 0.0.0.255, 因 为 C 的 S0 口 连 接 的 是 外 部 网 络, 即 S0 口 没 有 运 行 EIGRP. 如 果 在 S0 口 运 行 了 EIGRP 的 话, 将 会 给 外 部 发 送 不 必 要 的 信 息 造 成 带 宽 的 浪 费 和 CPU 的 负 担 Configuring Default Route Using the default-network Command 当 配 置 EIGRP 的 时 候, 可 以 使 用 ip default-network [network-number] 命 令 创 建 默 认 路 由, 如 下 图 : 9
路 由 器 A 连 接 外 部 网 络 172.31.0.0/16,A 使 用 了 ip default-network 172.31.0.0 命 令 配 置 了 一 条 默 认 路 由 ; 然 后 A 把 它 宣 告 给 B,B 把 也 它 标 记 成 默 认 路 由. 注 意 [network-number] 参 数 是 基 于 类 的 网 络 号 Verifying EIGRP Using show Commands 使 用 show ip route 命 令 查 看 路 由 表 的 内 容, 如 下 : RouterA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, D - EIGRP, EX - EIGRP external, O - OSPF, ( 略 ) Gateway of last resort is not set 172.16.0.0/24 is subnetted, 1 subnets D 172.16.1.0 [90/10639872] via 10.1.2.2, 06:04:01, Serial0/0 10.0.0.0/24 is subnetted, 4 subnets D 10.1.3.0 [90/10514432] via 10.1.2.2, 05:54:47, Serial0/0 D 10.3.1.0 [90/10639872] via 10.1.2.2, 06:19:41, Serial0/0 C 10.1.2.0 is directly connected, Serial0/0 C 10.1.1.0 is directly connected, Ethernet0/0 注 意 D 代 表 是 从 EIGRP 学 来 的,* 代 表 默 认 路 由 使 用 show ip protocols 命 令 可 以 检 查 默 认 的 EIGRP 设 置, 如 下 : RouterA# show ip protocols Routing Protocol is "eigrp 100" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Default networks flagged in outgoing updates Default networks accepted from incoming updates EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0 EIGRP maximum hopcount 100 EIGRP maximum metric variance 1 Redistributing: eigrp 100 10
Automatic network summarization is not in effect Maximum path: 4 Routing for Networks: 10.1.0.0/16 10.0.0.0 Routing Information Sources: Gateway Distance Last Update 10.1.2.2 90 05:50:13 Distance: internal 90 external 170 ( 略 ) 使 用 show up eigrp topology 命 令 来 验 证 EIGRP 操 作, 如 下 : RouterA# show ip eigrp topology IP-EIGRP Topology Table for AS(100)/ID(10.1.2.1) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 10.1.3.0/24, 1 successors, FD is 10514432 via 10.1.2.2 (10514432/28160), Serial0/0 P 10.3.1.0/24, 1 successors, FD is 10639872 via 10.1.2.2 (10639872/384000), Serial0/0 P 10.1.2.0/24, 1 successors, FD is 10511872 via Connected, Serial0/0 P 10.1.1.0/24, 1 successors, FD is 2190 via Connected, Ethernet0/0 P 172.16.1.0/24, 1 successors, FD is 10639872 via 10.1.2.2 (10639872/384000), Serial0/0 ( 略 ) 注 意 前 面 的 字 母 P, 可 能 出 现 的 字 母 代 号 有 如 下 几 种 : 1.P: 代 表 passive, 这 个 表 示 稳 定 网 络 中 的 稳 定 状 态 2.A: 代 表 active, 当 前 网 络 不 可 用, 正 处 于 发 送 查 询 状 态 3.U: 代 表 update, 网 络 处 于 等 待 update 包 的 确 认 状 态 4.Q: 代 表 query, 网 络 处 于 等 待 query 包 的 确 认 的 状 态 5.stuck-in-active(SIA): 持 续 处 于 active 状 态, 说 明 EIGRP 网 络 的 收 敛 发 生 了 问 题 EIGRP Route Summarization: Manual 路 由 汇 总 的 目 的 是 为 了 减 少 路 由 表 的 条 目, 减 少 或 update 包, 边 界 查 询 使 用 人 工 汇 总 的 特 点 如 下 : 1. 可 以 基 于 接 口 的 配 置 汇 总 2. 当 在 接 口 做 了 人 工 汇 总 以 后, 路 由 器 将 创 建 一 条 指 向 null0 口 的 路 由, 这 样 做 是 为 了 防 止 路 由 循 环 3. 当 汇 总 之 前 的 路 由 down 掉 以 后, 汇 总 路 由 将 自 动 从 路 由 表 里 被 删 除 4. 汇 总 路 由 的 度 取 决 于 特 定 路 由 中 度 最 小 的 来 做 为 自 己 的 度 11
Configuration Route Summarization no auto-summary: 关 闭 自 动 汇 总 的 命 令, 在 全 局 配 置 莫 模 式 下 使 用 ip summary-address eigrp [as-number] [address] [mask]: 关 闭 了 自 动 汇 总 以 后, 人 工 在 接 口 模 式 下 创 建 汇 总 地 址 来 看 一 个 人 工 汇 总 的 例 子, 如 下 图 : 如 图, 路 由 器 A 和 B 关 闭 了 自 动 汇 总, 因 为 如 果 不 关 闭 自 动 汇 总 的 话, 汇 总 路 由 172.16.0.0/16 将 传 给 网 络 10.0.0.0, 这 样 网 络 10.0.0.0 就 不 能 知 道 路 由 器 A 和 B 的 具 体 位 置. 路 由 器 C 创 建 人 工 汇 总, 在 S0 口 将 172.16.1.0 和 172.16.2.0 宣 告 成 单 独 的 一 条 条 目 172.16.0.0. 创 建 人 工 汇 总 的 过 程, 如 下 : 1. 选 择 传 播 汇 总 路 由 的 接 口 2. 定 义 汇 总 地 址,EIGRP 路 由 协 议 以 及 AS 号 Understanding EIGRP Load Balancing 负 载 均 衡 是 指 在 网 络 的 多 个 出 口 上 分 发 数 据 流 量 到 目 的 地, 负 载 均 衡 增 加 了 网 段 的 使 用, 也 增 加 了 网 络 的 带 宽. 对 于 IP,Cisco IOS 默 认 支 持 4 条 等 价 链 路 的 负 载 均 衡, 最 大 支 持 6 条 EIGRP 支 持 不 等 价 链 路 的 负 载 均 衡, 使 用 variance 命 令, 跟 上 一 个 乘 数, 默 认 是 1( 即 代 表 等 价 的 链 路 的 均 衡 负 载 ), 值 的 范 围 是 1 到 128. 这 个 乘 数 代 表 了 可 以 接 受 的 不 等 代 价 链 路 的 度 的 倍 数, 在 这 个 范 围 内 的 链 路 都 将 被 接 受, 作 为 负 载 均 衡. 来 看 一 个 例 子, 如 下 图 : 12
如 图 所 示 意, 使 用 了 variance 2, 即 乘 数 是 2, 路 由 器 E 选 择 经 过 C 来 到 达 网 络 Z, 因 为 FD 是 20.FD 从 上 到 下 分 别 是 30,20 和 45. 因 为 乘 数 是 2,E 还 将 选 择 经 过 B 到 达 网 络 Z, 因 为 B 的 FD 是 30, 小 于 2 倍 C 的 FD 即 40; 而 D 的 FD 是 45, 大 于 2 倍 C 的 FD, 所 以 E 将 不 会 经 过 D 到 达 网 络 Z( 关 系 是 必 须 小 于, 不 能 等 于 或 大 于 ) EIGRP Bandwidth Utilization EIGRP 支 持 不 同 的 WAN 链 路, 比 如 point-to-point 链 路,NBMA 网 络 中 的 point-to-point 链 路 和 point-to-multipoint 链 路. 因 为 在 WAN 链 路 中 带 宽 比 较 低, 所 以 为 了 防 止 EIGRP 占 用 太 多 的 网 络 带 宽,. 默 认 情 况 下, 最 多 允 许 EIGRP 占 用 WAN 链 路 带 宽 的 50%. 这 个 默 认 的 百 分 比 可 以 通 过 在 接 口 配 置 模 式 下 使 用 ip bandwidth-percent eigrp [AS-number] [pencentage]. 百 分 比 可 以 超 过 100( 注 意 没 有 % 符 号 ) 一 般 的,Cisco IOS 软 件 认 为 点 到 点 的 帧 中 继 子 接 口 带 宽 为 T1 线 路 带 宽 (1.544Mbps), 但 是 假 如 在 一 个 帧 中 继 环 境 中 CIR 只 有 56K, 按 默 认 占 用 50% 的 带 宽 来 算, 这 样 就 会 占 用 768Kbps. 所 以 要 在 接 口 配 置 模 式 下 使 用 bandwidth [BW]( 单 位 是 Kbps) 来 给 接 口 分 配 实 际 带 宽 对 多 点 链 路 比 如 帧 中 继 网 络,ISDN PRI 和 SMDS 的 配 置 比 较 麻 烦. 当 你 配 置 多 点 链 路 的 接 口 的 时 候, 把 带 宽 配 置 成 最 小 的 CIR 和 VC 之 积 先 来 看 看 点 到 点 链 路 中 带 宽 的 配 置, 如 下 图 : 注 意 这 个 星 形 环 境, 有 10 条 VC( 图 中 只 显 示 4 条 ), 每 条 VC 的 带 宽 都 是 56Kbps, 使 用 的 是 点 到 点 环 境, 所 以 在 C 上, 划 分 10 个 子 接 口, 分 别 指 定 接 口 带 宽 为 56Kbps 13
如 果 是 在 下 面 这 种 混 合 环 境, 如 图 : 配 置 的 办 法 是 把 CIR 最 低 的 作 为 点 到 点 链 路, 定 义 带 宽 BW=CIR; 把 带 宽 较 高 的 作 为 多 点 环 境,BW=CIR 之 和. 上 述 例 子 就 是 把 3 条 带 宽 较 高 的 划 分 为 一 条 多 点 链 路 的 接 口, 指 定 带 宽 为 768Kbps(256Kbps*3); 带 宽 最 低 的 那 条 (56Kbps) 作 为 点 到 点 环 境, 单 独 划 分 一 个 点 到 点 的 接 口, 并 且 指 定 带 宽 为 它 实 际 的 CIR 即 56Kbps How EIGRP Responds to a Query 作 为 一 种 高 级 距 离 向 量 协 议,EIGRP 来 依 靠 邻 居 提 供 路 由 信 息, 如 果 路 由 出 了 问 题, 即 进 入 active 状 态, 而 且 又 没 有 可 用 的 FS 的 时 候,EIGRP 就 要 求 快 速 的 收 敛. 然 后 EIGRP 路 由 器 向 邻 居 发 送 查 询 (query), 寻 找 一 条 可 以 替 代 那 条 出 了 问 题 的 路 由. 查 询 被 发 送 给 所 有 的 邻 居 路 由 器, 除 了 到 达 successor 的 那 个 接 口. 如 果 被 查 询 的 路 由 器 知 道 一 条 替 代 路 由 的 话, 它 就 把 这 条 替 代 路 由 放 进 应 答 (reply) 包 中 发 送 给 发 出 查 询 的 源 路 由 器 ; 如 果 接 收 到 查 询 的 路 由 器 没 有 替 代 路 由 的 信 息, 它 将 继 续 发 送 给 它 自 己 的 其 他 邻 居, 直 到 找 到 可 以 替 代 的 路 由 为 止 EIGRP Query Process SIA EIGRP 使 用 可 靠 的 多 播 来 寻 找 替 代 路 由. 路 由 器 必 须 得 到 收 到 查 询 的 所 有 路 由 器 的 应 答 才 能 重 新 进 行 计 算 successor 的 信 息, 如 果 有 一 个 路 由 器 的 应 该 还 没 有 收 到 的 话, 发 出 查 询 的 源 路 由 器 就 必 须 等 待. 默 认 如 果 在 3 分 钟 内 某 些 路 由 器 没 有 对 应 答 做 出 响 应 的 话, 这 条 路 由 就 进 入 stuck in active(sia) 状 态 ( 即 始 终 处 于 active 状 态 ). 然 后 路 由 器 将 重 新 设 定 和 这 个 没 有 做 出 应 答 的 路 由 器 的 邻 居 关 系. 为 了 避 免 SIA 情 形 的 发 生, 解 决 方 案 是 限 制 查 询 的 范 围 Scalability Issues and Solutions 影 响 EIGRP 网 络 可 扩 展 性 的 因 素, 如 下 : 1. 邻 居 之 间 信 息 交 换 量 2. 路 由 器 的 数 量 3. 拓 扑 结 构 的 深 度 4. 替 代 路 径 的 数 量 所 以 EIGRP 在 大 型 网 络 中 不 能 够 即 插 即 用 (Plug-and-Play), 而 且 查 询 的 代 价 可 能 会 比 较 高 14
Limiting the EIGRP Query Range with Summarization 为 了 使 得 EIGRP 能 够 具 有 更 好 的 可 扩 展 性, 可 以 使 用 下 面 两 种 选 项 : 1. 通 过 在 路 由 器 的 outbound 接 口 使 用 ip summary-address eigrp 命 令 配 置 路 由 汇 总 2. 把 远 程 路 由 器 做 为 stub EIGRP 路 由 器 路 由 汇 总 可 以 减 小 查 询 的 范 围 ; 把 远 程 路 由 器 作 做 为 stub EIGRP 路 由 器 使 得 这 些 远 程 路 由 器 被 查 询. 还 有 其 他 的 一 些 限 制 查 询 范 围 的 方 法 诸 如 路 由 过 滤 (route filtering) 或 接 口 包 过 滤 (interface packet filtering) 来 看 看 限 制 EIGRP 查 询 范 围 的 其 中 一 个 办 法 : 路 由 汇 总. 如 下 图 : 如 图, 路 由 器 B 发 送 汇 总 路 由 172.30.0.0/16 给 路 由 器 A. 假 如 网 络 172.30.1.0/24 突 然 down 掉 以 后,C 向 B 查 询 网 络 172.30.1.0/24,B 又 向 A 查 询. 由 于 A 收 到 的 是 汇 总 路 由, 于 是 A 直 接 对 查 询 做 出 网 络 172.30.1.0/24 不 可 达 的 应 答, 然 后 不 再 将 查 询 继 续 传 递 下 去 查 询 范 围 不 是 产 生 SIA 现 象 的 唯 一 原 因, 还 有 诸 如 以 下 原 因 可 能 会 产 生 SIA 的 发 生 : 1. 路 由 器 对 查 询 的 应 答 过 于 繁 忙 比 如 路 由 器 CPU 资 源 占 用 过 高 ; 还 有 内 存 不 足, 不 足 以 分 配 处 理 查 询 包 或 者 建 立 应 答 包 2. 路 由 器 之 间 的 链 路 状 态 不 稳 定, 因 此 可 能 产 生 丢 包 现 象. 路 由 器 足 够 多 的 包 来 维 持 邻 居 关 系, 但 是 却 没 有 收 到 全 部 的 查 询 包 或 应 答 包 3. 单 向 链 路 (unidirectional link), 即 网 络 流 量 只 朝 一 个 方 向 传 输 的 故 障 通 过 使 用 路 由 汇 总, 可 以 使 得 路 由 表 最 小 化, 这 样 就 使 得 路 由 器 的 CPU 资 源 和 带 宽 尽 可 能 的 减 少, 而 且 减 少 了 SIA 情 况 的 发 生 使 用 路 由 汇 总 是 减 少 收 敛 时 间 的 一 个 比 较 好 的 办 法, 远 程 路 由 器 以 网 络 不 可 达 的 信 息 做 为 应 答 并 且 如 果 路 由 表 内 没 有 精 确 匹 配 的 条 目 的 话 将 不 再 把 查 询 延 伸 传 播 下 去 有 人 通 过 使 用 划 分 不 同 的 AS 来 控 制 查 询 的 范 围, 如 下 图 : 通 过 在 B 的 两 边 划 分 不 同 的 AS, 当 网 络 X 消 失 以 后,C 发 送 查 询 给 B,B 做 出 网 络 不 可 达 的 应 答. 在 AS 1 中 查 询 不 会 继 续 传 播 下 去, 查 询 终 止. 但 是 在 AS 2,B 将 产 生 一 个 新 的 查 询, 发 送 给 A. 注 意 这 和 在 同 一 个 AS 内 做 出 查 询 不 一 样. 所 以 说 通 过 划 分 不 同 的 AS 来 限 制 查 询 的 范 围 并 15
不 是 一 个 有 效 的 解 决 方 案 Limiting the EIGRP Query Range Using the stub Option 还 有 种 限 制 EIGRP 查 询 比 较 有 效 的 方 法 就 是 配 置 stub 选 项. 在 做 这 项 配 置 的 时 候, 只 有 远 程 路 由 器 要 配 置 成 stub 路 由 器. 使 用 EIGRP stub 路 由 特 性 增 加 了 网 络 的 稳 定 性, 减 少 了 网 络 资 源 的 占 用, 简 化 了 stub router 的 配 置 EIGRP stub 功 能 最 早 是 出 现 在 Cisco IOS Release 12.0(7)T 上. 星 形 拓 扑 (hub-and-spoke) 结 构 的 网 络 常 使 用 stub 路 由, 在 这 样 的 拓 扑 结 构 里, 远 程 路 由 器 不 会 转 发 所 有 的 数 据 给 中 心 (hub) 路 由 器, 远 程 路 由 器 也 不 会 保 持 完 整 网 络 的 路 由 表. 一 般 的, 中 心 路 由 器 只 需 要 发 送 一 条 默 认 路 由 给 远 程 路 由 器. 当 到 达 某 个 网 络 的 路 由 丢 失 以 后, 路 由 器 不 会 向 stub 路 由 器 做 出 路 由 查 询 EIGRP stub 配 置 命 令 的 具 体 格 式 是 在 路 由 配 置 模 式 下, 输 入 如 下 命 令 : Router(config-router)#eigrp stub [receive-only connected static summary] 一 些 参 数 的 含 义 如 下 : receive-only: 不 能 和 其 他 3 个 参 数 (connected,static 和 summary) 一 起 使 用. 只 接 收 从 邻 居 路 由 器 发 送 来 的 信 息 connected: 指 定 该 路 由 器 可 以 把 和 它 直 接 相 连 的 网 络 信 息 传 递 给 它 的 邻 居. 这 个 选 项 默 认 是 开 启 的 static: 把 静 态 路 由 信 息 传 递 给 它 的 邻 居 summary: 把 汇 总 路 由 信 息 传 递 给 它 的 邻 居. 这 个 选 项 默 认 也 是 开 启 的 由 于 connected 和 summary 选 项 默 认 是 开 启 的, 配 置 stub 路 由 器 并 发 送 直 连 网 络 和 汇 总 路 由 信 息 就 可 以 这 样 写, 如 下 : Router(config)#router eigrp 1 Router(config-router)#netw 10.0.0.0 Router(config-router)#eigrp stub 但 是 假 如 你 使 用 了 receive-only 选 项 的 话, 其 他 3 个 选 项 的 信 息 就 不 会 被 发 送, 如 下 : Router(config)#router eigrp 1 Router(config-router)#netw 10.0.0.0 Router(config-router)#eigrp stub recive-only Scalability Rules for Implementing EIGRP 以 前 曾 经 提 到 过, 不 太 合 理 的 IP 地 址 规 划 限 制 了 路 由 汇 总. 这 样 会 增 加 网 络 的 收 敛 时 间 ; 相 反, 合 理 的 地 址 规 划 能 使 得 路 由 汇 总 工 作 的 更 好, 加 快 了 网 络 收 敛 时 间 16
Module4 Configuring the Open Shortest Path First Protocol Link-State Routing Protocols 链 路 状 态 路 由 协 议 (link-state routing protocol) 的 一 些 特 征 : 1. 对 网 络 发 生 的 变 化 能 够 快 速 响 应 2. 当 网 络 发 生 变 化 的 时 候 发 送 触 发 式 更 新 (triggered update) 3. 发 送 周 期 性 更 新 ( 链 路 状 态 刷 新 ), 间 隔 时 间 为 30 分 钟 链 路 状 态 路 由 协 议 只 在 网 络 拓 扑 发 生 变 化 以 后 产 生 路 由 更 新. 当 链 路 状 态 发 生 变 化 以 后, 检 测 到 变 化 的 设 备 创 建 LSA(link state advertisement), 通 过 使 用 组 播 地 址 传 送 给 所 有 的 邻 居 设 备, 然 后 每 个 设 备 拷 贝 一 份 LSA, 更 新 它 自 己 的 链 路 状 态 数 据 库 (link state database,lsdb), 接 着 再 转 发 LSA 给 其 他 的 邻 居 设 备. 这 种 LSA 的 洪 泛 (flooding) 保 证 了 所 有 的 路 由 设 备 在 更 新 自 己 的 路 由 表 之 前 更 新 它 自 己 的 LSDB LSDB 通 过 使 用 Dijkstra 算 法 (shortest path first,spf) 来 计 算 到 达 目 标 网 络 的 最 佳 路 径, 建 立 一 条 SPF 树 (tree), 然 后 最 佳 路 径 从 SPF 树 里 选 出 来, 被 放 进 路 由 表 里 OSPF 和 IS-IS 协 议 被 归 类 到 链 路 状 态 路 由 协 议 中. 链 路 状 态 路 由 协 议 在 一 个 特 定 的 区 域 (area) 里 从 邻 居 处 收 集 网 络 信 息, 一 旦 路 由 信 息 都 被 收 集 齐 以 后, 每 个 路 由 器 开 始 通 过 使 用 Dijkstra 算 法 (SPF) 独 立 计 算 到 达 目 标 网 络 的 最 佳 路 径 运 行 了 链 路 状 态 路 由 协 议 的 路 由 器 跟 踪 以 下 信 息 : 1. 它 们 各 自 的 邻 居 2. 在 同 一 个 区 域 中 的 所 有 路 由 器 3. 到 达 目 标 网 络 的 最 佳 路 径 Link-State Data Structures 为 了 能 够 做 出 更 好 的 路 由 决 策,OSPF 路 由 器 必 须 维 持 的 有 以 下 内 容 : 1.neighbor table: 也 叫 adjacency database. 存 储 了 邻 居 路 由 器 的 信 息. 如 果 一 个 OSPF 路 由 器 和 它 的 邻 居 路 由 器 失 去 联 系, 在 几 秒 中 的 时 间 内, 它 会 标 记 所 有 到 达 那 条 路 由 均 为 无 效 并 且 重 新 计 算 到 达 目 标 网 络 的 路 径 2.topology table: 一 般 叫 做 LSDB.OSPF 路 由 器 通 过 LSA 学 习 到 其 他 的 路 由 器 和 网 络 状 况,LSA 存 储 在 LSDB 中 3.routing table: 也 就 是 我 们 所 说 的 路 由 表 了, 也 叫 forwarding database, 包 含 了 到 达 目 标 网 络 的 最 佳 路 径 的 信 息 链 路 状 态 路 由 协 议 和 距 离 向 量 路 由 协 议 的 一 个 区 别 就 是 : 距 离 向 量 路 由 协 议 是 routing by rumors, 也 就 是 说, 距 离 向 量 路 由 协 议 依 靠 邻 居 发 给 它 的 信 息 来 做 路 由 决 策, 而 且 路 由 器 不 需 要 保 持 完 整 的 网 络 信 息 ; 而 运 行 了 链 路 状 态 路 由 协 议 的 路 由 器 保 持 的 有 完 整 的 网 络 信 息 的 快 照, 而 且 每 个 路 由 器 自 己 做 出 路 由 决 策 1
Defining an OSPF Area OSPF 的 网 络 设 计 要 求 是 双 层 层 次 化 (2-layer hierarchy), 包 括 如 下 2 层 : 1.transit area(backbone 或 area 0) 2.regular areas(nonbackbone areas) transit area 负 责 的 主 要 功 能 是 IP 包 快 速 和 有 效 的 传 输.transit area 互 联 OSPF 其 他 区 域 类 型. 一 般 的, 这 个 区 域 里 不 会 出 现 端 用 户 (end user) regular areas 负 责 的 主 要 功 能 就 是 连 接 用 户 和 资 源. 这 种 区 域 一 般 是 根 据 功 能 和 地 理 位 置 来 划 分. 一 般 的, 一 个 regular area 不 允 许 其 他 区 域 的 流 量 通 过 它 到 达 另 外 一 个 区 域, 必 须 穿 越 transit area 比 如 area 0.regular areas 还 可 以 有 很 多 子 类 型, 比 如 stub area,locally area 和 not-so-stubby area 在 链 路 状 态 路 由 协 议 中, 所 有 的 路 由 器 都 保 持 的 有 LSDB,OSPF 路 由 器 越 多,LSDB 就 越 大. 这 可 能 对 了 解 完 整 的 网 络 信 息 有 帮 助, 但 是 随 着 网 络 的 增 长, 可 扩 展 性 的 问 题 就 会 越 来 越 大. 采 用 的 折 中 方 案 就 是 引 入 区 域 的 概 念. 在 某 一 个 区 域 里 的 路 由 器 只 保 持 的 有 该 区 域 中 所 有 路 由 器 或 链 路 的 详 细 信 息 和 其 他 区 域 的 一 般 信 息. 当 某 个 路 由 器 或 某 条 链 路 出 故 障 以 后, 信 息 只 会 在 那 个 区 域 以 内 在 邻 居 之 间 传 递. 那 个 区 域 以 外 的 路 由 器 不 会 收 到 该 信 息.OSPF 要 求 层 次 化 的 网 络 设 计, 意 味 着 所 有 的 区 域 要 和 area 0 直 接 相 连. 如 下 图 : 注 意 area 1 和 area 2 或 3 之 间 的 连 接 是 不 允 许 的, 它 们 都 必 须 通 过 backbone area 0 进 行 连 接.Cisco 建 议 每 个 区 域 中 路 由 器 的 数 量 为 50 到 100 个 构 建 area 0 的 路 由 器 称 为 骨 干 路 由 器 (backbone router,br), 如 上 图,A 和 B 就 是 BR; 区 域 边 界 路 由 器 (area border router,abr) 连 接 area 0 和 nonbackbone areas. 如 图,C,D 和 E 就 是 ABR.ABR 通 常 具 有 以 下 特 征 : 1. 分 隔 LSA 洪 泛 的 区 域 2. 是 区 域 地 址 汇 总 的 主 要 因 素 3. 一 般 做 为 默 认 路 由 的 源 头 4. 为 每 个 区 域 保 持 LSDB 理 想 的 设 计 是 使 每 个 ABR 只 连 接 2 个 区 域,backbone 和 其 他 区 域,3 个 区 域 为 上 限 Defining OSPF Adjacencies 2
运 行 OSPF 的 路 由 器 通 过 交 换 hello 包 和 别 的 路 由 器 建 立 邻 接 (adjacency) 关 系, 过 程 如 下 : 1. 路 由 器 和 别 的 路 由 器 交 换 hello 包, 目 标 地 址 采 用 多 播 地 址 2.hello 包 交 换 完 毕, 邻 接 关 系 形 成 3. 接 下 来 通 过 交 换 LSA 和 对 接 收 方 的 确 认 进 行 同 步 LSDB. 对 于 OSPF 路 由 器 而 言, 进 入 完 全 邻 接 状 态 4. 如 果 需 要 的 话, 路 由 器 转 发 新 的 LSA 给 其 他 的 邻 居, 来 保 证 整 个 区 域 内 LSDB 的 完 全 同 步 对 于 点 到 点 的 WAN 串 行 连 接, 两 个 OSPF 路 由 器 通 常 使 用 HDLC 或 PPP 来 形 成 完 全 邻 接 状 态 对 于 LAN 连 接, 选 举 一 个 路 由 器 做 为 designated router(dr) 再 选 举 一 个 做 为 backup designated router(bdr), 所 有 其 他 的 和 DR 以 及 BDR 相 连 的 路 由 器 形 成 完 全 邻 接 状 态 而 且 只 传 输 LSA 给 DR 和 BDR.DR 从 邻 居 处 转 发 更 新 到 另 外 一 个 邻 居 那 里.DR 的 主 要 功 能 就 是 在 一 个 LAN 内 的 所 有 路 由 器 拥 有 相 同 的 数 据 库, 而 且 把 完 整 的 数 据 库 信 息 发 送 给 新 加 入 的 路 由 器. 路 由 器 之 间 还 会 和 LAN 内 的 其 他 路 由 器 ( 非 DR/BDR, 即 DROTHERs) 维 持 一 种 部 分 邻 居 关 系 (two-way adjacency) OSPF 的 邻 接 一 旦 形 成 以 后, 会 交 换 LSA 来 同 步 LSDB,LSA 将 进 行 可 靠 的 洪 泛 OSPF Calculation 链 路 状 态 陆 游 协 议 使 用 Dijkstra 算 法 来 查 找 到 达 目 标 网 络 中 的 最 佳 路 径. 所 有 的 路 由 器 拥 有 相 同 的 LSDB 后, 把 自 己 放 进 SPF tree 中 的 root 里, 然 后 根 据 每 条 链 路 的 耗 费 (cost), 选 出 耗 费 最 低 的 做 为 最 佳 路 径, 最 后 把 最 佳 路 径 放 进 forwarding database( 路 由 表 ) 里 下 图 就 是 一 个 SPF 计 算 的 例 子 : 1.LSA 遵 循 split horizon 原 则,H 对 E 宣 告 它 的 存 在,E 把 H 的 宣 告 和 它 自 己 的 宣 告 再 传 给 C 和 G;C 和 G 再 和 之 前 类 似, 继 续 传 播 开 来 2.X 有 4 个 邻 居 :A,B,C 和 D, 假 设 这 里 都 是 以 太 网, 每 条 网 链 路 的 耗 费 为 10, 经 过 计 算, 路 由 器 可 以 算 出 最 佳 路 径. 上 图 的 右 半 部 分 实 线 所 标 即 为 最 佳 路 径 LS Data Structures: LSA Options 关 于 LSA 的 操 作 流 程 图 如 下 : 3
如 图 可 以 看 出 当 路 由 器 收 到 一 个 LSA 以 后, 先 会 查 看 它 自 己 的 LSDB 看 有 没 有 相 应 的 条 目, 如 果 没 有 就 加 进 自 己 的 LSDB 中 去, 并 反 馈 LSA 确 认 包 (LSAck), 接 着 再 继 续 洪 泛 LSA, 最 后 运 行 SPF 算 法 算 出 新 的 路 由 表 如 果 当 它 收 到 LSA 的 时 候, 自 己 的 LSDB 有 该 条 目 而 且 版 本 号 一 样, 就 忽 略 这 个 LSA; 如 果 有 相 应 条 目, 但 是 收 到 的 LSA 的 版 本 号 更 新, 就 加 进 自 己 的 LSDB 中, 发 回 LSAck, 洪 泛 LSA, 最 后 用 SPF 计 算 最 佳 路 径 ; 如 果 版 本 号 没 有 自 己 LSDB 中 那 条 新, 就 反 馈 LSU 信 息 给 发 送 源 Types of OSPF Packets OSPF 包 的 5 种 类 型 如 下 : 1.hello: 用 来 建 立 邻 居 关 系 的 包 2.database description(dbd): 用 来 检 验 路 由 器 之 间 数 据 库 的 同 步 3.link state request(lsr): 链 路 状 态 请 求 包 4.link state update(lsu): 特 定 链 路 之 间 的 请 求 记 录 5.link state acknowledgement(lsack): 确 认 包 OSPF Packet Header Format 5 种 OSPF 包 都 是 直 接 被 封 装 在 IP 包 里 的 而 不 使 用 TCP 或 UDP. 由 于 没 有 使 用 可 靠 的 TCP 协 议, 但 是 OSPF 包 又 要 求 可 靠 的 传 输, 所 以 就 有 了 LSAck 包. 如 下 图 所 示 就 是 OSPF 包 在 IP 包 里 的 形 式 : 4
协 议 号 为 89(EIGRP 协 议 号 为 88), 一 些 字 段 如 下 : 1.Version Number: 当 前 为 OSPF 版 本 2 2.Type: 定 义 OSPF 包 的 类 型 3.Packet Length: 包 的 长 度, 单 位 字 节 4.Router ID(RID): 产 生 OSPF 包 的 源 路 由 器 5.Area ID: 定 义 OSPF 包 是 从 哪 个 area 产 生 出 来 的 6.Checksum( 校 验 和 ): 错 误 校 验 7.Authentication Type: 验 证 方 法, 可 以 是 明 文 (cleartext) 密 码 或 者 是 Message Digest 5(MD5) 加 密 格 式 8.Data: 对 于 hello 包 来 说, 该 字 段 是 已 知 邻 居 的 列 表 ; 对 于 DBD 包 来 说, 该 字 段 包 含 的 是 LSDB 的 汇 总 信 息, 包 括 RID 等 等 ; 对 于 LSR 包 来 说, 该 字 段 包 含 的 是 需 要 的 LSU 类 型 和 需 要 的 LSU 类 型 的 RID; 对 于 LSU 包 来 说, 包 含 的 是 完 全 的 LSA 条 目, 多 个 LSA 条 目 可 以 装 在 一 个 包 里 ; 对 于 LSAck 来 说, 字 段 为 空 OSPF Neighbor Adjacency Establishment Hello 协 议 用 来 建 立 和 保 持 OSPF 邻 居 关 系, 采 用 多 播 地 址 224.0.0.5,hello 包 包 含 的 信 息 如 下 : 1.Router ID(RID): 路 由 器 的 32 位 长 的 一 个 唯 一 标 识 符, 选 举 规 则 是, 如 果 loopback 接 口 不 存 在 的 话, 就 选 物 理 接 口 中 IP 地 址 等 级 最 高 的 那 个 ; 否 则 就 选 取 loopback 接 口 2.hello/dead intervals: 定 义 了 发 送 hello 包 频 率 ( 默 认 在 一 个 多 路 访 问 网 络 中 间 隔 为 10 秒 );dead 间 隔 是 4 倍 于 hello 包 间 隔. 邻 居 路 由 器 之 间 的 这 些 计 时 器 必 须 设 置 成 一 样 3.neighbors: 邻 居 列 表 4.area ID: 为 了 能 够 通 信,OSPF 路 由 器 的 接 口 必 须 属 于 同 一 网 段 中 的 同 一 区 域 (area), 即 共 享 子 网 以 及 子 网 掩 码 信 息 5.router priority: 优 先 级, 选 举 DR 和 BDR 的 时 候 使 用.8 位 长 的 一 串 数 字 6.DR/BDR IP address:dr/bdr 的 IP 地 址 信 息 7.authentication password: 如 果 启 用 了 验 证, 邻 居 路 由 器 之 间 必 须 交 换 相 同 的 密 码 信 息. 此 项 可 选 8.stub area flag:stub area 是 通 过 使 用 默 认 路 由 代 替 路 由 更 新 的 一 种 技 术 ( 有 点 像 EIGRP 中 的 stub 功 能 ) Establishing Bidirectional Communication 5
看 看 双 向 通 信 的 建 立 过 程, 如 下 图 : 1. 刚 开 始 A 还 没 和 别 的 路 由 器 交 换 信 息, 还 处 于 down 的 状 态, 接 下 来 通 过 使 用 多 播 地 址 224.0.0.5 开 始 发 送 hello 包 2.B 接 收 到 hello 包, 把 A 加 进 自 己 的 neighbor table 中, 并 进 入 init 状 态, 然 后 以 单 播 的 形 式 发 送 hello 包 对 A 做 出 应 答 3.A 收 到 以 后 把 所 有 从 hello 包 里 找 到 的 RID 加 进 自 己 的 neighbor table 中, 进 入 two-way 状 态 4. 如 果 链 路 是 广 播 型 网 络 比 如 以 太 网, 接 下 来 选 举 DR 和 BDR, 这 一 过 程 发 生 在 交 换 信 息 之 前 5. 周 期 发 送 hello 包 保 证 信 息 交 换 Discovering the Network Routes & Adding the Link-State Entries 当 选 举 了 DR 和 BDR, 进 入 exstart 状 态, 接 下 来 就 可 以 对 链 路 状 态 信 息 进 行 发 现 并 创 建 自 己 的 LSDB, 如 下 图 : 1. 在 exstart 状 态 里, 邻 接 关 系 形 成, 路 由 器 和 DR/BDR 形 成 主 仆 关 系 (RID 等 级 最 高 的 为 主, 其 6
他 的 为 辅 ) 2. 主 仆 交 换 DBD 包 (DDP), 路 由 器 进 入 exchange 状 态 DBD 包 含 了 出 现 在 LSDB 中 的 LSA 条 目 头 部 信 息, 条 目 信 息 可 以 为 一 条 链 路 (link) 或 者 一 个 网 络. 每 个 LSA 条 目 头 部 信 息 包 括 链 路 状 态 类 型, 宣 告 路 由 器 的 地 址, 链 路 耗 费 和 序 列 号 ( 版 本 号 ) 3. 路 由 器 收 到 DBD 以 后, 将 使 用 LSAck 做 出 确 认 ; 还 将 和 自 己 本 身 就 有 的 DBD 进 行 比 较, 过 程 如 下 图 : 如 果 DBD 信 息 中 有 更 新 更 全 的 链 路 状 态 条 目, 路 由 器 就 发 送 LSR 给 其 他 路 由 器, 该 状 态 为 loading 状 态 ; 收 到 LSR 以 后, 路 由 器 做 出 响 应, 以 LSU 作 为 应 答, 其 中 包 含 了 LSR 所 需 要 的 完 整 信 息 ; 收 到 LSU 以 后, 再 次 做 出 确 认, 发 送 LSAck 4. 路 由 器 添 加 新 的 条 目 到 LSDB 中, 进 入 full 状 态, 接 下 来 就 可 以 对 数 据 进 行 路 由 了 Maintaining Routing Information 当 链 路 状 态 发 生 变 化 以 后, 路 由 器 将 洪 泛 LSA 来 对 其 他 路 由 器 做 出 通 知, 如 下 图 : 1. 路 由 器 意 识 到 链 路 产 生 变 化 以 后, 对 多 播 地 址 224.0.0.6 和 所 有 的 DR/BDR 发 送 LSU, 其 中 LSU 包 含 了 更 新 了 的 LSA 条 目 2.DR 对 LSU 做 出 确 认, 接 着 对 多 播 地 址 224.0.0.5 继 续 洪 泛, 每 个 收 到 LSU 的 路 由 器 对 DR 做 出 确 认 ( 反 馈 LSAck), 3. 如 果 路 由 器 连 接 了 其 他 网 络, 将 通 过 转 发 LSU 给 DR( 在 点 到 点 网 络 是 转 发 给 邻 居 路 由 器 ) 来 对 其 他 网 络 进 行 洪 泛 7
4. 其 他 路 由 器 通 过 LSU 来 更 新 自 己 的 LSDB, 然 后 使 用 SPF 算 法 重 新 计 算 最 佳 路 径 链 路 状 态 条 目 的 最 大 生 存 周 期 是 60 分 钟,60 分 钟 只 有, 它 将 从 LSDB 中 被 移 除 OSPF Link-State Sequence Numbers LSDB 中 的 每 个 LSA 记 录 都 有 个 序 列 号, 序 列 号 是 32 位 长, 以 0x80000001 开 头,0x7FFFFFFF 结 尾.OSPF 路 由 器 默 认 每 30 分 钟 洪 泛 一 次 LSA 来 保 证 LSDB 的 同 步, 每 洪 泛 1 次, 序 列 号 就 加 1. 如 果 序 列 号 达 到 最 大 并 回 到 初 始 值 的 时 候, 已 经 存 在 的 LSA 的 生 存 周 期 将 设 置 为 最 大 (1 小 时 ) 并 刷 新 LSDB( 造 成 网 络 波 动 ) 如 果 收 到 2 条 LSA, 将 比 较 序 列 号, 序 列 号 越 高 表 示 LSA 版 本 越 新 可 以 使 用 show ip ospf database 命 令 查 看 生 存 周 期 和 序 列 号, 如 下 : RTC# show ip ospf database OSPF Router with ID (203.250.15.67) (Process ID 10) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 203.250.15.67 203.250.15.67 48 0x80000008 0xB112 2 203.250.16.130 203.250.16.130 212 0x80000006 0x3F44 2 ( 略 ) Debug IP OSPF Packet 使 用 debug ip ospf packet 命 令 对 OSPF 包 进 行 排 错 和 验 证, 如 下 : Router# debug ip ospf packet OSPF: rcv. v:2 t:1 l:48 rid:200.0.0.117 aid:0.0.0.0 chk:6ab2 aut:0 auk: ( 略 ) 一 些 输 出 的 含 义 如 下 : v:ospf 版 本 t:ospf 包 类 型, 如 上 是 1, 几 种 数 字 所 代 表 的 意 义 是 :1 为 hello,2 为 DBD,3 为 LSR,4 为 LSU,5 为 LSAck l: 定 义 包 长 度, 单 位 字 节 rid/aid:rid/area ID chk: 校 验 和 aut: 验 证 类 型,0 代 表 不 进 行 验 证,1 代 表 明 文 密 码,2 代 表 MD5 加 密 auk:ospf 验 证 key keyed:md5 key ID seq: 序 列 号 Configuring Basic Single-Area OSPF OSPF 的 单 域 的 配 置 命 令 : 在 全 局 配 置 模 式 下 输 入 router ospf [process-id] 启 动 OSPF 进 程, 接 下 来 在 路 由 配 置 模 式 下 输 入 network [address] [inverse-mask] area [area-id] process-id 只 是 在 本 路 由 器 有 效, 所 以 可 以 设 置 成 和 其 他 路 由 器 的 process-id 一 样 的 号 码 address 和 inverse-mask 为 网 络 ( 或 接 口 ) 地 址 和 wildcard mask 8
来 看 一 个 配 置 实 例, 如 下 图 : 如 图 A 是 采 用 的 网 络 地 址, 而 B 是 采 用 的 接 口 地 址 Verifying OSPF Operation 一 些 验 证 性 的 命 令 如 下 : 1.show ip protocols: 显 示 基 于 IP 的 路 由 协 议 信 息 2.show ip route ospf: 显 示 OSPF 已 知 路 由 条 目 信 息 3.show ip interface: 显 示 RID,area ID 和 邻 居 信 息 4.show ip ospf: 显 示 RID, 计 时 器 和 LSA 等 信 息 5.show ip ospf neighbor (detail): 显 示 邻 居 信 息 包 括 RID, 优 先 级, 邻 接 状 态 ( 比 如 exstart,full 等 ) 和 dead timer.detail 为 详 细 参 数. 如 下 RouterB#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 10.64.1.1 1 FULL/BDR 00:00:31 10.64.1.1 Ethernet0 10.2.1.1 1 FULL/- 00:00:38 10.2.1.1 Serial0 ( 略 ) 6.show ip ospf neighbor [type number] [neighbor-id] (detail): 显 示 接 口 的 邻 居 信 息 的 命 令.type 为 接 口 类 型,number 为 接 口 号,neighbor-id 为 邻 居 ID Manipulating OSPF Router ID 关 于 RID 的 分 配, 如 下 : 1. 可 以 选 择 物 理 接 口 地 址 等 级 最 高 的 做 为 RID( 假 如 没 有 设 置 回 环 接 口 的 话 ), 接 口 不 是 必 须 参 与 OSPF 进 程, 但 是 它 的 状 态 必 须 是 up. 否 则 将 接 收 到 如 下 错 误 提 示 : Router(config)#router ospf 1 2wid: %OSPF-4-NORTRID: OSPF process 1 cannot start. 2. 假 如 回 环 接 口 存 在 的 话, 可 以 选 举 等 级 最 高 的 设 置 为 RID( 因 为 回 环 接 口 永 远 不 会 down 掉 ) 3. 可 以 使 用 router-id 命 令 进 行 设 置 一 旦 RID 设 置 了, 将 不 会 改 变, 即 使 设 置 为 RID 的 接 口 down 掉 了,RID 也 不 会 改 变, 除 非 路 由 器 重 新 启 动, 或 者 OSPF 进 程 重 启 9
如 果 你 想 设 置 回 环 接 口 为 RID, 如 下 : 1.Router(config)#interface loopback [number] 创 建 回 环 接 口 2.Router(config-if)#ip address [address] [mask] 分 配 IP 地 址 ( 分 配 的 地 址 等 级 高 于 物 理 接 口 的 IP 地 址 ).mask 参 数 一 般 为 255.255.255.255 设 置 下 次 OSPF 启 动 以 后 所 采 用 的 RID, 如 下 : 1.Router(config)#router ospf [process-id] 2.Router(config-router)#router-id [ip-address] 创 建 新 的 RID. 注 意 如 果 本 次 设 置 的 新 RID 只 会 在 下 次 OSPF 进 程 中 启 用. 可 以 重 启 路 由 器 或 者 使 用 clear ip ospf process 命 令 重 启 OSPF 进 程 ( 这 将 暂 时 性 的 造 成 网 络 不 稳 定 ) 要 查 看 RID 的 信 息 可 以 使 用 show ip ospf 命 令 Adjacency Behavior for a Point-to-Point Link & Broadcast Network 在 点 到 点 链 路 中 一 般 采 用 PPP 或 者 HDLC 的 封 装 格 式,OSPF 自 动 检 测 接 口 类 型, 并 且 不 需 要 进 行 DR/BDR 的 选 举. 邻 居 通 过 对 多 播 地 址 224.0.0.5 进 行 多 播 hello 包 来 动 态 发 现 邻 居. 默 认 hello 包 的 发 送 间 隔 是 10 秒,dead 间 隔 是 40 秒 在 多 路 访 问 (multiaccess) 广 播 型 网 络 中 ( 比 如 以 太 网 和 Token Ring), 需 要 进 行 DR/BDR 的 选 举, 所 有 的 非 DR/BDR( 即 DROTHER) 路 由 器 和 DR/BDR 形 成 完 全 邻 接 关 系, 即 DROTHER 通 过 DR/BDR 交 换 信 息, 如 下 图 : 到 达 DR 的 包 使 用 多 播 地 址 224.0.0.6; 经 DR 转 发 给 DROTHRT 的 包 使 用 多 播 地 址 224.0.0.5 Electing the DR/BDR 当 选 举 DR/BDR 的 时 候 要 比 较 hello 包 中 的 优 先 级 (priority), 优 先 级 最 高 的 为 DR, 次 高 的 为 BDR. 默 认 优 先 级 都 为 1. 在 优 先 级 相 同 的 情 况 下 就 比 较 RID,RID 等 级 最 高 的 为 DR, 次 高 的 为 BDR. 当 你 把 优 先 级 设 置 为 0 以 后,OSPF 路 由 器 就 不 能 成 为 DR/BDR, 只 能 成 为 DROTHER 当 网 络 中 新 加 入 一 个 优 先 级 更 高 的 的 路 由 器, 不 会 影 响 现 有 的 DR/BDR, 除 非 DR 出 故 10
障,BDR 随 即 升 级 为 DR, 并 重 新 选 举 BDR; 如 果 是 BDR 出 故 障 了 就 重 新 选 举 BDR BDR 对 DR 是 否 出 故 障 的 判 定 是 根 据 使 用 wait timer, 如 果 BDR 在 wait timer 超 时 前 确 认 DR 仍 然 在 转 发 LSA 的 话, 它 就 认 为 DR 出 故 障 设 置 优 先 级 的 命 令 如 下 : Router(config-if)#ip ospf priority [number] number 的 范 围 是 0 到 255. 注 意 仅 当 现 有 DR 状 态 down 掉 以 后, 新 设 置 的 接 口 优 先 级 才 会 生 效 Adjacency Behavior for an NBMA Network NBMA 网 络 比 如 帧 中 继,ATM 和 X.25, 没 有 广 播 的 能 力. 但 是 经 验 通 过 在 每 条 PVC 上 复 制 hell 包 为 广 播 和 多 播 来 实 现 广 播 和 多 播 的 能 力 ( 将 占 用 额 外 的 带 宽 ) 默 认 在 NBMA 网 络 中,hello 包 的 发 送 时 间 间 隔 和 dead 时 间 间 隔 分 别 是 30 秒 和 120 秒 OSPF 认 为 NBMA 网 络 的 运 做 类 似 其 他 的 BMA 比 如 以 太 网 NBMA 网 络 中 邻 居 不 是 自 动 发 现,DR/BDR 需 要 一 张 邻 居 列 表 OSPF Commands for NBMA Frame Relay 帧 中 继 网 络 的 几 种 拓 扑 结 构 如 下 : 1. 星 型 (star/hub-and-spoke): 最 常 见 的 帧 中 继 网 络 拓 扑, 代 价 最 小 2. 全 互 连 (full-mesh): 冗 余, 但 是 代 价 大, 在 这 样 的 环 境 中 计 算 VC 的 数 量, 使 用 n(n-1)/2 的 公 式,n 为 网 络 中 的 节 点 数 3. 部 分 互 连 (partial-mesh): 前 两 种 的 折 中 方 案 11
OSPF 运 行 的 两 种 RFC 中 定 义 的 模 式 如 下 : 1.NBMA: 一 般 和 部 分 互 连 的 网 络 结 合 使 用, 需 要 选 举 DR/BDR 和 人 工 指 定 邻 居. 优 点 是 相 对 point-to-multipoint 模 式 它 的 负 载 较 低 2.point-to-multipoint: 把 非 广 播 的 网 络 当 作 点 到 点 连 接 的 集 合, 自 动 发 现 邻 居, 不 指 定 DR/BDR, 一 般 和 部 分 互 连 的 网 络 结 合 使 用. 优 点 是 配 置 较 为 简 便 一 些 其 他 的 可 运 行 模 式 如 下 : 1.point-to-multipoint nonbroadcast 2.broadcast 3.point-to-point 定 义 OSPF 网 络 类 型 的 命 令 如 下 : Router(config-if)#ip ospf network [{broadcast nonbroadcast point-to-multipoint point-to-multipoint nonbroadcast}] 几 种 选 项 的 含 义 如 下 : 1.broadcast: 使 得 WAN 接 口 看 上 去 像 LAN 接 口 ; 一 个 IP 子 网 ; 多 播 hello 包 自 动 发 现 邻 居 ; 选 举 DR/BDR; 要 求 网 络 全 互 连 2.nonbroadcast(NBMA): 一 个 IP 子 网 ; 邻 居 手 工 指 定 ; 选 举 DR/BDR;DR/BDR 要 求 和 DROTHER 完 全 互 连 ; 一 般 用 在 部 分 互 连 的 网 络 中 3.point-to-multipoint: 一 个 IP 子 网 ; 多 播 hello 包 自 动 发 现 邻 居 ; 不 要 求 DR/BDR 的 选 举 ; 一 般 用 在 部 分 互 连 的 网 络 中 4.point-to-multipoint nonbroadcast: 如 果 VC 中 多 播 和 广 播 能 力 没 有 启 用 的 话 就 不 能 使 用 point-to-multipoint 模 式, 也 路 由 器 没 办 法 多 播 hello 包 ; 邻 居 必 须 人 工 指 定 ; 不 需 选 举 DR/BDR 5.point-to-point: 一 个 子 网 ; 不 选 举 DR/BDR; 当 只 有 2 个 路 由 器 的 接 口 要 形 成 邻 接 关 系 的 时 候 才 使 用 ; 接 口 可 以 为 LAN 或 WAN 接 口 Common OSPF Configuration for Frame Relay 先 看 看 NBMA 模 式, 如 下 图 : 1.OSPF 会 把 NBMA 当 作 broadcast 网 络 进 行 处 理 ( 比 如 LAN) 2. 如 图, 所 有 的 serial 口 处 于 同 一 子 网 3.ATM,X.25 和 帧 中 继 默 认 为 NBMA 操 作 4. 邻 居 手 动 指 定 5. 洪 泛 LSU 的 时 候, 要 对 每 条 PVC 进 行 洪 泛 6.RFC 2328 兼 容 12
对 NBMA 类 型 人 工 指 定 邻 居 使 用 如 下 命 令 : Router(config-router)#neighbor [x.x.x.x] priority [number] poll-interval [number] x.x.x.x 为 邻 居 的 IP 地 址 priority [number] 为 优 先 级, 如 果 设 置 为 0 的 话 将 不 能 成 为 DR/BDR poll-interval [number] 是 轮 询 的 间 隔 时 间, 单 位 为 秒.NBMA 接 口 发 送 hello 包 给 邻 居 之 前 等 待 的 时 间 下 图 是 一 个 配 置 实 例 : RouterA(config)#router ospf 100 RouterA(config-router)#network 140.140.0.0 0.0.255.255 area 0 RouterA(config-router)#neighbor 140.140.1.2 priority 0 RouterA(config-router)#neighbor 140.140.1.3 priority 0 如 上, 把 邻 居 的 优 先 级 设 置 为 0, 保 证 A 为 DR. 在 部 分 互 连 的 NBMA 网 络 中, 只 需 在 DR/BDR 上 使 用 neighbor 命 令 ; 如 果 拓 扑 结 构 是 星 形 的 话,neighbor 命 令 应 该 使 用 在 中 心 路 由 器 上 ; 在 全 互 连 的 NBMA 网 络 中, 应 该 在 所 有 的 路 由 器 上 使 用 neighbor 命 令, 除 非 是 人 工 指 定 DR/BDR 查 看 OSPF 邻 居 信 息 :show ip ospf neighbor [type number] [neighbor-id] [detail] type number: 接 口 类 型 和 接 口 号, 可 选 neighbor-id: 邻 居 路 由 器 ID, 可 选 再 看 看 point-to-multipoint 模 式, 如 下 图 : 1. 适 用 于 部 分 互 连 或 星 形 拓 扑 结 构 里 2. 不 需 DR, 只 使 用 单 独 的 一 个 子 网 3. 自 动 发 现 邻 居 4.LSU 包 被 发 送 到 每 个 邻 居 路 由 器 的 接 口 如 下 图,point-to-multipoint 的 配 置 如 下 : 13
路 由 器 A: RouterA(config)#interface serial 0 RouterA(config-if)#encapsulation hdlc RouterA(config-if)#ip address 120.120.1.1 255.255.255.0 RouterA(config)#interface serial 1 RouterA(config-if)#encapsulation frame-relay RouterA(config-if)#ip address 140.140.1.1 255.255.255.0 RouterA(config-if)#ip ospf network point-to-multipoint 路 由 器 B: RouterB(config)#interface serial 0 RouterB(config-if)#ip address 140.140.1.2 255.255.255.0 RouterB(config-if)#encapsulation frame-relay RouterB(config-if)#ip ospf network point-to-multipoint 验 证 如 下 : RouterA#show ip ospf interface s1 Serial1 is up, line protocol is up Internet Address 140.140.1.1/24, Area 1 Process ID 100, Router ID 120.120.1.1, Network Type Point-To-Multipoint, Cost: 64 Transmit Delay is 1 sec, State: Point_To_Multipoint Timer intervals configured,hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 00:00:11 Neighbor count is 2, Adjacent neighbor count is 2 Adjacent with neighbor 140.140.1.2 Adjacent with neighbor 140.140.1.3 ( 略 ) 接 下 来 再 看 看 point-to-multipoint nonbroadcast 模 式, 这 个 模 式 是 RFC 兼 容 的 point-to-multipoint 的 扩 展 ; 邻 居 必 须 人 工 指 定 ; 不 选 举 DR/BDR; 使 用 在 某 些 邻 居 不 能 自 动 发 现 的 场 合 下 然 后 是 broadcast 模 式, 要 选 举 DR/BDR 最 后 是 point-to-point 模 式, 使 用 在 当 NBMA 网 络 中 只 存 在 2 个 节 点 的 时 候 ; 不 选 举 DR/BDR; 每 条 点 到 点 的 连 接 处 在 同 一 个 子 网 中 ; 一 般 只 和 point-to-point subinterface 结 合 使 用 14
定 义 subinterface 的 命 令 如 下 : Router(config)#interface serial [number.subinterface-number] {point-to-point multipoint} 默 认 在 point-to-point 的 帧 中 继 subinterface 的 OSPF 模 式 是 point-to-point 模 式 ; 在 multipoint 的 帧 中 继 subinterface 的 OSPF 模 式 是 NBMA(nonbroadcast) 模 式 ; 在 帧 中 继 物 理 接 口 的 OSPF 模 式 也 是 NBMA 模 式 下 图 就 是 一 个 point-to-point subinterface 的 例 子 : 如 图 每 条 VC 要 求 一 个 单 独 的 子 网 下 图 是 一 个 multipoint subinterface 的 例 子 : 如 图, 第 一 个 subinterface S1.1 为 point-to-point 模 式 ;OSPF 把 第 二 个 multipoint subinterface S1.2 当 作 NBMA 模 式 下 图 是 几 种 模 式 的 一 个 比 较 : 15
debug ip ospf adj: 用 来 跟 踪 OSPF 邻 居 信 息 Types of OSPF Routers 当 OSPF area 过 大 的 话, 带 来 的 负 面 影 响 有 : 1. 太 过 频 繁 的 SPF 计 算, 造 成 路 由 器 CPU 负 载 过 重 2. 路 由 表 过 大 3.LSDB 过 大 解 决 方 案 是 划 分 层 次 化 的 area 路 由 (hierarchical area routing), 减 少 了 SPF 运 算 的 频 率, 减 小 了 路 由 表 的 体 积, 减 少 了 LSU 的 负 载 OSPF 路 由 器 的 类 型 如 下 图 : internal routers: 所 有 的 接 口 在 一 个 area 里, 拥 有 相 同 的 LSDB backbone router: 至 少 一 个 有 接 口 连 接 到 area 0 里, 和 internal routers 保 持 相 同 的 OSPF 进 程 和 算 法 ABR: 接 口 连 接 了 多 个 area, 每 个 接 口 保 持 它 所 连 的 area 的 单 独 的 LSDB ASBR: 至 少 有 一 个 接 口 连 接 到 外 部 网 络 比 如 其 他 的 AS, 非 OSPF 网 络 当 然, 一 个 路 由 器 同 时 可 以 扮 演 上 述 多 个 角 色 OSPF LSA Types 一 些 LSA 的 类 型 如 下 : 类 型 1:router LSA 类 型 2:network LSA 类 型 3/4:summary LSA 类 型 5:AS external LSA 类 型 6:multicast OSPF LSA, 使 用 在 OSPF 多 播 应 用 程 序 里 类 型 7: 使 用 在 Not-So-Stubby area(nssa) 里 类 型 8: 特 殊 的 LSA 用 来 连 接 OSPF 和 BGP 类 型 9/10/11:opaque LSA, 用 于 今 后 OSPF 的 升 级 等 LSA 类 型 1(router LSA), 如 下 图 : 16
类 型 1 的 LSA 只 在 一 个 area 里 传 播, 不 会 穿 越 ABR. 描 述 了 和 路 由 器 直 接 相 连 的 链 路 集 体 状 态 信 息.RID 鉴 别 类 型 1 的 LSA,LSA 描 述 了 链 路 的 网 络 号 和 掩 码 ( 即 link ID). 另 外 类 型 1 的 LSA 还 描 述 了 路 由 器 是 否 是 ABR 或 ASBR 类 型 1 的 LSA 不 同 的 链 路 类 型 的 link ID 如 下 : 1.point-to-point 的 link ID 是 邻 居 的 RID 2.transit network 的 link ID 是 DR 的 接 口 地 址 3.stub network 的 link ID 是 IP 网 络 号 4.virtual link 的 link ID 是 邻 居 的 RID LSA 类 型 2(network LSA), 如 下 图 : 类 型 2 的 LSA 只 在 一 个 区 域 里 传 播, 不 会 穿 越 ABR. 描 述 了 组 成 transit network 的 直 连 的 路 由 器.transit network 直 连 至 少 2 台 OSPF 路 由 器.DR 负 责 宣 告 类 型 2 的 LSA, 然 后 在 transit network 的 一 个 area 里 进 行 洪 泛. 类 型 2 的 LSA ID 是 DR 进 行 宣 告 的 那 个 接 口 的 IP 地 址 LSA 类 型 3(summary LSA), 如 下 图 : 类 型 3 的 LSA 由 ABR 发 出. 默 认 OSPF 不 会 对 连 续 子 网 进 行 汇 总. 可 在 ABR 上 进 行 人 工 设 定 启 用 汇 总. 类 型 3 的 LSA 可 以 在 整 个 AS 内 进 行 洪 泛 LSA 类 型 4(summary LSA), 如 下 图 : 17
类 型 4 的 LSA 只 使 用 在 area 里 存 在 ASBR 的 时 候, 类 型 4 的 LSA 鉴 别 ASBR 和 提 供 到 达 ASBR 的 路 由. 类 型 4 的 LSA 只 包 含 了 ASBR 的 RID 信 息. 类 型 4 的 LSA 由 ABR 生 成, 并 在 整 个 AS 里 进 行 洪 泛 LSA 类 型 5(external LSA), 如 下 图 : 类 型 5 的 LSA 描 述 了 到 达 外 部 AS 的 路 由, 由 ASBR 生 成 并 在 整 个 AS 内 洪 泛 Interpreting the OSPF LSDB and Routing Table 使 用 show ip ospf database 来 查 看 OSPF 的 LSDB 信 息 一 些 route designator 如 下 : 1.O: 代 表 OSPF area 内 (intra-area) 路 由, 为 router LSA 2.O IA: 在 一 个 AS 里 的 area 之 间 (inter-area) 的 路 由, 为 summary LSA 3.O E1/O E2:AS 外 路 由, 为 external LSA SPF 算 法 根 据 LSDB 运 算 出 SPF 树 来 决 定 最 佳 路 径, 步 骤 如 下 : 1. 所 有 在 各 自 的 area 里 的 路 由 器 计 算 出 最 佳 路 径 并 放 进 路 由 表 里, 为 LSA 类 型 1 和 类 型 2. 用 O 来 标 记 2.area 之 间 的 路 由 器 计 算 出 最 佳 路 径, 这 些 最 佳 路 径 是 area 间 路 由 条 目, 或 LSA 类 型 3 和 LSA 类 型 4. 用 O IA 来 标 记 3. 所 有 的 除 了 stub area 的 路 由 器 计 算 出 到 达 外 部 AS 的 最 佳 路 径 (LSA 类 型 5), 标 记 为 O E1 或 O E2 O E1 和 O E2 的 区 别 为 是 到 达 外 部 网 络, 前 者 要 加 内 部 cost, 后 者 不 加, 如 下 图 : 18
一 般 只 有 一 个 ASBR 宣 告 到 达 外 部 AS 的 外 部 路 由 的 时 候, 就 使 用 O E2(O E2 为 默 认 类 型 ); 如 果 有 多 个 ASBR 宣 告 一 条 到 达 同 一 个 外 部 AS 的 外 部 路 由 的 时 候, 就 应 该 使 用 O E2 Changing the Cost Metric 默 认 情 况 下,Cisco 根 据 100Mbps/bandwidth 来 计 算 metric, 比 如 64Kbps 链 路 的 metric 约 为 1562,T1 的 为 64,100Mbps 的 链 路 为 1. 当 链 路 速 率 大 于 100Mbps 的 时 候, 应 该 在 OSPF 进 程 下 使 用 如 下 命 令 : RouterA(config-router)#auto-cost reference-bandwidth 在 接 口 自 定 义 cost 的 命 令 如 下 : RouterA(config-if)#ip ospf cost [value] 这 条 命 令 将 使 得 超 越 默 认 的 cost 计 算, 具 有 更 高 的 优 先 权.value 范 围 为 1 到 65535. 值 越 低, 就 越 优 先 采 用 该 接 口 OSPF Route Summarization Concepts OSPF 路 由 汇 总 可 以 减 少 路 由 表 条 目, 减 少 类 型 3 和 类 型 5 的 LSA 的 洪 泛, 节 约 带 宽 资 源 和 减 轻 路 由 器 CPU 负 载, 还 能 够 对 拓 扑 的 变 化 本 地 化 OSPF 路 由 汇 总 的 两 种 类 型 如 下 : 1.inter-area(IA) route summarization: 发 生 在 ABR 上 2.external route summarization: 发 生 在 ASBR 上 Configuring Route Summarization 因 为 OSPF 是 基 于 无 类 的 路 由 协 议, 它 不 会 进 行 自 动 汇 总. 手 动 在 ABR 上 做 IA route summarization 的 命 令 如 下 : Router(config-router)#area [area-id] range [address] [mask] 在 ASBR 上 做 external route summarization 的 命 令 如 下 : Router(config-router)#summary-address [address] [mask] [not-advertise] [tag tag] 19
如 下 图 就 是 一 个 ASBR 上 的 external route summarization 的 例 子 : R1(config-router)#network 172.16.64.1 0.0.0.0 area 1 R1(config-router)#summary-address 172.16.32.0 255.255.224.0 Default Routes in OSPF OSPF 路 由 器 默 认 不 会 产 生 默 认 路 由 到 一 般 性 的 area 里, 但 是 可 以 通 过 相 关 命 令 启 用 默 认 路 由. 默 认 路 由 作 为 LSA 类 型 5 出 现 在 LSDB 中 创 建 OSPF 默 认 路 由 的 命 令 如 下 : Router(config-router)#default-information originate [always] [metric value] [metric-type type-value] [route-map map-name] 参 数 always 是 不 管 路 由 表 里 是 否 存 在 默 认 路 由, 都 会 宣 告 一 条 默 认 路 由 0.0.0.0 metric value 是 指 定 默 认 路 由 的 metric, 默 认 为 10 type-value 可 以 为 1 或 者 2.1 为 O E1,2 为 O E2, 默 认 是 2 route-map map-name 是 如 果 满 足 route map 的 话 就 产 生 默 认 路 由 实 例 如 下 图 : R1(config)#router ospf 100 R1(config-router)#netw 10.1.1.1 0.0.0.0 area 0 R1(config-router)#default-information originate metric 10 R2(config)#router ospf 100 R2(config-router)#netw 10.2.1.1 0.0.0.0 area 0 R2(config-router)#default-information originate metric 100 Types of OSPF Areas 一 些 OSPF area 的 类 型 如 下 : 1.standard area: 接 收 链 路 更 新, 路 由 汇 总 和 外 部 路 由 2.backbone area(transit area): 标 记 为 area 0, 拥 有 standard area 的 一 切 属 性 20
3.stub area: 不 可 以 包 含 ASBR. 不 接 收 外 部 路 由 信 息 (LSA 类 型 5), 如 果 要 到 达 外 部 AS 的 话 就 使 用 标 记 为 0.0.0.0 的 默 认 路 由. 好 处 是 可 以 减 少 路 由 表 的 条 目.stub area 没 有 虚 链 路 (virtual link) 穿 越 它 们 4.totally stubby area:cisco 私 有, 不 接 收 外 部 路 由 信 息 和 路 由 汇 总 信 息 (LSA 类 型 3,4 和 5). 不 可 以 包 含 ASBR. 如 果 要 到 达 外 部 AS 的 话 就 使 用 标 记 为 0.0.0.0 的 默 认 路 由. 好 处 是 最 小 化 路 由 表 条 目 5.not-so-stubby area(nssa):nssa 是 OSPF RFC 的 补 遗. 定 义 了 特 殊 的 LSA 类 型 7. 提 供 类 似 stub area 和 totally stubby area 的 优 点, 可 以 包 含 的 有 ASBR Stub Area Configuration stub area 的 配 置 命 令 如 下 : RouterA(config-router)#area [area-id] stub 所 有 在 stub area 里 的 路 由 器 必 须 都 使 用 stub 命 令, 例 子 如 下 图 : R3(config)#router ospf 100 R3(config-router)#netw 192.168.14.0 0.0.0.255 area 0 R3(config-router)#netw 192.168.15.0 0.0.0.255 area 2 R3(config-router)#area 2 stub R4(config)#router ospf 10 R4(config-router)#netw 192.168.15.0 0.0.0.255 area 2 R4(config-router)#area 2 stub 如 上 是 把 area 2 配 置 为 stub area,r3 做 为 ABR 自 动 向 area 2(stub area) 宣 告 一 条 metric 为 1 的 默 认 路 由 0.0.0.0 Totally Stubby Area Configuration totally stubby area 的 配 置 命 令 如 下 : RouterA(config-router)#area [area-id] stub no-summary ABR 默 认 宣 告 一 条 metric 为 1 的 默 认 路 由 到 totally stubby area, 修 改 这 个 metric 的 命 令 如 下 : RouterA(config-router)# area [area-id] default-cost [cost] 配 置 实 例 如 下 图 : R3(config)#router ospf 100 R3(config-router)#netw 130.130.0.0 0.0.255.255 area 1 21
R3(config-router)#area 1 stub R4(config)#router ospf 50 R4(config-router)#netw 130.130.0.0 0.0.255.255 area 1 R4(config-router)#netw 130.135.0.0 0.0.255.255 area 0 R4(config-router)#area 1 stub no-summary R4(config-router)#area 1 default-cost 10 R4(config)#router ospf 50 R2(config-router)#netw 130.130.0.0 0.0.255.255 area 1 R2(config-router)#netw 130.135.0.0 0.0.255.255 area 0 R2(config-router)#area 1 stub no-summary R2(config-router)#area 1 default-cost 5 如 上, 默 认 路 由 将 选 用 R2 上 的, 因 为 R2 的 metric 更 低 Not-So-Stubby Areas 之 前 说 过 stub area 和 totally stub area 不 可 以 包 含 的 有 ASBR, 但 是 假 如 你 想 使 用 ASBR, 又 想 使 其 具 有 stub area 和 totally stub area 的 优 点 ( 减 少 路 由 表 条 目 ) 的 话, 就 可 以 采 用 NSSA, 如 下 图 : RIP 经 过 再 发 布 (redistribution) 到 NSSA 以 后,NSSA 的 ASBR 将 产 生 只 存 在 于 NSSA 中 的 LSA 类 型 7, 然 后 ABR 将 LSA 类 型 7 转 换 成 LSA 类 型 5 NSSA 的 配 置 命 令 为 在 OSPF 进 程 下 使 用 area [area-id] nssa, 所 有 位 于 NSSA 里 的 路 由 器 都 要 使 用 这 条 命 令. 如 下 图 是 配 置 实 例 : R2(config)#router ospf 100 R2(config-router)#summary-address 150.150.0.0 255.255.0.0 R2(config-router)#netw 130.130.20.0 0.0.0.255 area 1 R2(config-router)#netw 130.130.0.0 0.0.255.255 area 0 R2(config-router)#area 1 nssa default-information-originate 使 用 default-information-originate 参 数 创 建 一 条 area 0 到 NSSA 的 默 认 路 由. 并 且 类 型 5 的 LSA 将 不 会 进 入 NSSA( 类 似 stub area) R1(config)#router ospf 100 22
R1(config-router)#redistribute rip subnets R1(config-router)#default metric 150 R1(config-router)#netw 130.130.0.0 0.0.255.255 area 1 R1(config-router)#area 1 nssa 还 可 以 将 NSSA 配 置 成 具 有 totally-stub 的 特 性, 如 下 : R1(config)#router ospf 100 R1(config-router)#redistribute rip subnets R1(config-router)#default metric 150 R1(config-router)#netw 130.130.0.0 0.0.255.255 area 1 R1(config-router)#area 1 nssa R2(config)#router ospf 100 R2(config-router)#summary-address 150.150.0.0 255.255.0.0 R2(config-router)#netw 130.130.20.0 0.0.0.255 area 1 R2(config-router)#netw 130.130.0.0 0.0.255.255 area 0 R2(config-router)#area 1 nssa no-summary 这 样 类 型 3,4 和 5 的 LSA 将 不 会 进 入 NSSA,no-summary 参 数 只 应 用 在 ABR 上 就 可 以 了,NSSA 里 的 其 他 路 由 器 只 需 使 用 area 1 nssa The show Commands for Stub and NSSA 一 些 验 证 性 命 令 如 下 : show ip ospf: 显 示 area 类 型 show ip ospf database: 显 示 LSA 类 型 7 show ip ospf database nssa-external: 显 示 LSDB 中 每 条 类 型 7 的 LSA 的 信 息 show ip route: 显 示 标 记 为 O N1/N2 的 NSSA 路 由 条 目 ( 默 认 为 O N2) Defining an OSPF Virtual Link 在 OSPF 里 所 有 的 area 都 要 和 area 0 相 连, 但 是 假 如 某 个 区 域 没 有 和 area 0 相 连 的 话, 就 可 以 采 用 虚 链 路 来 连 接 它 们, 如 下 图 : 虚 链 路 一 般 是 做 为 备 份 连 接 或 者 是 临 时 连 接 虚 链 路 的 配 置 命 令 如 下 : Router(config-router)#area [area-id] virtual-link [RID] 一 些 其 他 可 选 参 数 如 下 : authentication [message-digest null]: 指 定 验 证 方 式 为 MD5 加 密 还 是 明 文 口 令 hello-intervals [second]: 定 义 hello 包 发 送 时 间 间 隔, 默 认 为 10 秒 23
配 置 实 例 如 下 图 : R2(config)#router ospf 100 R2(config-router)#netw 10.3.0.0 0.0.0.255 area 1 R2(config-router)#netw 10.7.0.0 0.0.0.255 area 3 R2(config-router)#area 1 virtual-link 10.3.10.5 注 意 上 面 的 RID, 是 指 定 虚 链 路 中 对 方 的 RID,R1 的 配 置 如 下 : R1(config)#router ospf 200 R1(config-router)#netw 10.2.3.0 0.0.0.255 area 0 R1(config-router)#netw 10.3.2.0 0.0.0.255 area 1 R1(config-router)#area 1 virtual-link 10.7.20.123 注 意 area-id 都 为 area 1, 因 为 area 1 做 为 虚 链 路 的 transit area 使 用 show ip ospf virtual-links 命 令 验 证 虚 链 路 的 配 置 24
Module5 Configuring the IS-IS Protocol IS-IS Routing Intermediate System-to-Intermediate System(IS-IS) 一 般 用 于 大 型 的 ISP 网 络 中, 实 现 起 来 要 比 OSPF 容 易 些 商 业 网 络 一 般 选 择 OSPF 因 为 它 更 广 泛 的 支 持 IP 协 议 ; 而 一 些 大 型 ISP 网 络 仍 在 使 用 IS-IS IS-IS 拥 有 它 特 有 的 包 (packet),is-is 信 息 不 会 运 载 在 其 他 的 可 路 由 协 议 (routed protocol) 里.IS-IS 支 持 IPv4,IPv6 和 OSI 的 CLNS(Connectionless Network Service) 协 议 Integrated IS-IS ISO 把 路 由 器 定 义 为 中 间 系 统 (intermediate system).is-is 做 为 一 种 IGP, 收 敛 快 速, 稳 定, 有 效 的 节 约 带 宽, 路 由 器 内 存 和 减 少 CPU 负 载.IS-IS 和 综 合 IS-IS(Integrated IS-IS) 的 区 别 在 于 前 者 支 持 OSI 协 议, 后 者 支 持 OSI 和 IP 协 议 IS-IS 路 由 器 使 用 IS-IS Hellos(IIH) 来 建 立 和 维 持 邻 居 关 系, 一 旦 邻 居 关 系 建 立 起 来 以 后,IS-IS 路 由 器 就 通 过 LSP(Link State Packet) 交 换 链 路 状 态 信 息.IS-IS 路 由 器 也 使 用 Dijkstra 算 法 IS-IS 支 持 2 个 路 由 级 别 (routing level): 1.L1: 学 习 本 地 area(intra-area) 的 路 由 2.L2: 学 习 area 之 间 (inter-area) 的 路 由 额 外 的 还 有 一 种 L1/L2, 类 似 OSPF 里 的 ABR, 如 下 图 : 有 一 点 和 OSPF 不 一 样 的 是 :OSPF 的 area 是 以 路 由 器 为 边 界 ; 而 IS-IS 是 由 链 路 为 边 界 良 好 的 综 合 IS-IS 的 设 计 原 则 要 考 虑 的 因 素 有 :IP 地 址 和 CLNS 地 址 的 规 划 问 题 ; 类 似 OSPF 里 的 双 层 结 构 ; 路 由 汇 总 IS-IS 里 接 口 的 度 (metric) 最 大 为 6 位, 即 63; 路 径 的 度 最 大 为 10 位, 即 1023. 在 IS-IS 里 有 4 种 类 型 的 度 : 默 认 ; 延 迟 (delay); 花 费 (expense) 和 错 误 (error). 而 Cisco IOS 只 支 持 默 认 的 度. 并 且 1
Cisco 默 认 把 所 有 IS-IS 路 由 器 的 接 口 度 设 置 为 10. 如 下 图 : ES-IS Discovery Protocol Operations 主 机 (host) 在 OSI 术 语 里 也 叫 做 端 系 统 (end system,es).es 和 IS 它 们 之 间 的 发 现 过 程 可 以 由 下 图 表 示 : IS 之 间 相 互 发 送 IIH 来 建 立 邻 居 关 系,IS 会 给 ES 发 送 ISH,ES 会 给 IS 发 送 ESH 保 证 IS 和 ES 知 道 对 方 的 存 在.IP 系 统 不 会 使 用 ES-IS, 它 有 他 自 身 的 过 程 和 应 用 程 序 来 实 现 相 同 的 功 能, 比 如 ICMP,ARP 和 DHCP. 虽 然 综 合 IS-IS 支 持 IP, 但 是 IS-IS 仍 然 使 用 ES-IS 来 形 成 邻 居 关 系 和 使 用 CLNS 来 传 输 信 息 OSI Routing Levels OSI 的 几 个 路 由 级 别, 如 下 图 : 1.L0: 通 过 监 听 ISH 包,ES 发 现 最 近 的 IS.ES-IS 实 施 以 下 任 务 : 鉴 别 到 达 ES 的 area 前 缀 在 IS 和 ES 之 间 建 立 邻 居 关 系 创 建 数 据 链 路 和 网 络 地 址 的 映 射 2
当 ES 要 发 送 包 给 其 他 ES 的 时 候, 就 发 送 包 给 和 它 最 近 的 那 个 IS, 这 就 是 L0 的 路 由 2.L1: 在 相 同 area 里 之 间 的 路 由 3.L2:area 之 间 的 路 由 4.L3: 不 同 的 域 (domain) 之 间 的 路 由 Comparing IS-IS and OSPF 综 合 IS-IS 是 做 为 IS-IS 的 扩 展, 融 合 了 ISO CLNS 和 IP 环 境.IS-IS 和 OSPF 都 是 开 放 式 (open standard) 链 路 状 态 路 由 协 议, 都 支 持 VLSM, 并 且 收 敛 都 很 快 IS-IS 最 早 是 由 DEC 提 出 的, 并 提 交 给 ANSI 成 为 OSI IGP, 那 时 候 的 IS-IS 仅 仅 支 持 CLNS, 后 来 产 生 了 支 持 IP 的 综 合 IS-IS IS-IS 和 OSPF 的 一 些 类 似 的 地 方 如 下 : 1. 它 们 都 是 链 路 状 态 路 由 协 议 2. 使 用 相 同 的 机 制 来 维 持 LSDB 的 正 常 3. 适 合 大 型 网 络 4. 网 络 拓 扑 发 生 变 化 以 后 能 比 较 快 速 的 收 敛 另 外 IS-IS 的 可 扩 展 性 比 OSPF 要 好 点, 比 如 你 想 扩 展 骨 干 area, 只 需 要 添 加 L1/L2 路 由 器 就 可 以 了.IS-IS 检 测 错 误 的 速 度 要 稍 快 于 OSPF, 因 此 收 敛 也 相 对 较 快. 而 且 IS-IS 对 路 由 器 CPU 资 源 占 用 要 比 OSPF 的 少. 但 是 现 今 IS-IS 的 文 档 资 料 相 对 OSPF 较 为 难 找 NSAP Address NSAP(network service access point) 地 址 最 大 为 20 字 节 长, 高 位 (high-order bit) 定 义 了 area 间 的 结 构 ; 低 位 (low-order bit) 用 来 鉴 别 area 里 的 唯 一 的 系 统.OSI 的 网 络 层 (network-layer) 地 址 是 由 NSAP 地 址 来 实 现 的,NSAP 地 址 用 来 鉴 别 OSI 网 络 中 的 系 统. 不 同 的 协 议 的 NSAP 地 址 长 度 可 能 有 变 每 个 IS-IS 路 由 器 就 需 要 1 个 OSI 地 址. 这 些 IS-IS 的 PDU 直 接 封 装 在 OSI 数 据 链 路 层 帧, 里 面 不 包 括 CLNP 头 和 IP 头.IS-IS 通 过 使 用 LSP 里 的 OSI 地 址 来 鉴 别 IS-IS 路 由 器 并 建 立 拓 扑 表 和 基 本 的 IS-IS 路 由 树 (SPF 算 法, 和 OSPF 的 路 由 树 类 似 ) OSI 地 址 也 叫 NSAP 地 址, 包 含 以 下 信 息 : 1. 设 备 的 OSI 地 址 2. 到 高 层 链 接 的 过 程 实 际 上 NSAP 地 址 就 等 于 IP 地 址 和 IP 头 部 信 息 中 的 上 层 协 议 的 结 合 产 物 IS-IS NSAP Address Structure Cisco 对 综 合 IS-IS 里 的 NSAP 是 这 样 实 现 的, 分 为 3 个 字 段 如 下 : 1.area address: 变 长,1 到 13 字 节 长 2.system ID: 定 长,6 字 节 长, 标 明 area 内 的 系 统 为 是 否 为 IS 或 ES 3
3.NSAP selector(nsel):1 字 节 长, 服 务 标 识 符 ( 类 似 IP 协 议 里 的 协 议 号 ) 所 以 NSAP 地 址 总 长 的 范 围 为 8 到 20 字 节 ISO 10589 标 准 中 定 义 的 NSAP 如 下 图 : 可 以 看 出 Cisco 定 义 的 和 ISO 10589 中 定 义 的 可 以 很 好 的 兼 容 通 常 把 IS-IS 作 为 IGP 来 运 行 的 时 候, 把 AFI 设 置 为 49, 这 样 做 以 后 就 使 得 NSAP 地 址 类 似 IP 中 的 私 有 地 址 一 样, 属 于 可 本 地 化 管 理 的 地 址 ;area ID 至 少 要 为 1 个 字 节 长 ;system ID 为 6 字 节 ; 对 于 路 由 器 而 言 把 NSEL 设 置 为 0 比 如 1 个 NSAP 地 址 49.0001.0000.0c12.3456.00. 其 中 49 就 为 AFI,area ID 为 0001,system ID 为 0000.0c12.3456(LAN 接 口 的 MAC 地 址 ),00 为 NSEL. 当 NSEL 设 置 为 0 以 后 NSAP 就 被 叫 做 NET(net entity title) Identifying Systems in IS-IS 如 上 图,area1 的 area ID 为 49.0001,area4 的 area ID 为 49.0004, 所 有 在 1 个 area 里 的 IS-IS 路 由 器 必 须 使 用 相 同 的 area ID; 当 ES 和 L1 路 由 器 处 于 1 个 子 网 的 时 候 ES 才 能 认 识 该 area 的 IS 和 其 他 的 ES;L1 路 由 基 于 system ID, 因 此 ES 和 IS 的 标 识 必 须 是 唯 一 的 ; 所 有 的 L2 的 IS 也 必 须 是 拥 有 唯 一 的 system ID.system ID 是 针 对 1 个 系 统 而 非 单 独 的 一 个 接 口,system ID 可 以 根 据 MAC 地 址 进 行 设 置, 或 者 在 综 合 IS-IS 里, 可 以 根 据 IP 地 址 来 设 置, 比 如 (0000.0c99.9999 或 1921.6800.0001) NET 是 NSAP 中 NSEL 设 置 为 0 的 名 称. 如 果 需 要 CLNS 路 由 的 话,AFI 就 不 能 设 置 为 49 因 为 AFI 为 49 是 用 在 本 地 话 的 类 似 IP 私 有 地 址 空 间 里 的 Identifying Systems: Subnetwork and Circuit 4
一 些 额 外 的 IS-IS 术 语 如 下 图 : 1.SNPA(subnetwork point of attachment): 在 LAN 接 口 里 就 从 接 口 的 MAC 地 址 得 来 ; 对 于 X.25 或 ATM 即 为 VC 的 ID; 对 于 帧 中 继 即 为 DLCI; 对 于 HDLC 即 为 封 装 类 型 2.circuit( 电 路 ): 电 路 是 IS-IS 中 接 口 的 术 语,NSAP 和 NET 代 表 整 个 设 备, 而 电 路 代 表 接 口. 对 于 点 到 点 的 接 口 电 路 ID 为 1 个 字 节 长, 比 如 HDLC 为 电 路 ID 为 0x00; 对 于 广 播 型 网 络 比 如 LAN 中, 通 常 是 结 合 system ID 构 成 7 字 节 长 的 电 路 ID, 比 如 1921.6800.0001.01. 而 在 Cisco 的 路 由 器 中 主 机 名 可 以 用 来 代 替 system ID, 所 以 你 看 到 的 LAN 接 口 中 电 路 ID 可 能 为 P6R4.01 Intra-Area and Inter-Area Addressing and Routing 当 ES 和 IS 在 同 1 个 area 里 的 时 候 才 可 以 互 相 通 信.NSAP 里 area ID 部 分 用 来 进 行 area 之 间 路 由 的 判 定,system ID 不 予 以 考 虑 ;system ID 是 用 在 鉴 别 area 内 路 由 的, 此 时 不 考 虑 area ID.L1 路 由 器 掌 握 着 本 地 的 拓 扑 信 息, 当 有 数 据 要 传 输 到 其 他 area 的 时 候, 就 要 经 过 和 它 距 离 最 近 的 L1/L2 路 由 器 L1 路 由 器 比 较 它 收 到 的 包 的 目 标 地 址 的 area ID 和 它 自 己 所 在 的 area ID, 如 果 不 等, 就 把 包 交 给 最 近 的 L1/L2 路 由 器 ; 如 果 相 等, 通 过 查 找 自 己 L1 的 数 据 库 来 比 较 system ID 进 行 包 的 路 由 L1/L2 路 由 器 比 较 它 收 到 的 包 的 目 标 地 址 的 area ID 和 它 自 己 所 在 的 area ID, 如 果 不 等, 就 通 过 查 找 L2 的 数 据 路 来 比 较 area ID 把 包 交 给 L2 路 由 器 ; 如 果 相 等, 通 过 查 找 自 己 L1 的 数 据 库 来 比 较 system ID 进 行 包 的 路 由 L1 area 是 L1 和 L1/L2 路 由 器 的 集 合,L1 路 由 器 类 似 OSPF 里 的 nonbackbone 路 由 器, 负 责 area 内 路 由 使 ES 之 间 能 够 相 互 通 信, 保 存 L1 area 的 LSDB;L1/L2 路 由 器 类 似 OSPF 里 的 ABR, 负 责 area 间 和 area 内 路 由, 并 保 存 的 有 单 独 的 L1 和 L2 的 LSDB,L1/L2 路 由 器 宣 告 一 条 默 认 路 由 到 L1 路 由 器 ;L2 路 由 器 类 似 OSPF 里 的 BR, 负 责 area 间 路 由,L2 area 是 连 续 的 L1/L2 路 由 器 和 L2 路 由 器 的 集 合, 保 存 L2 area 的 LSDB 当 ES 需 要 传 送 包 给 其 他 的 ES 的 时 候, 包 先 发 送 给 和 该 ES 直 接 相 连 的 L1 IS,IS 查 找 目 标 地 址 并 选 择 最 佳 路 径, 如 果 IS 通 过 监 听 ESH 意 识 到 目 标 ES 的 位 置 是 和 源 ES 位 于 同 一 个 area 里, 就 把 包 转 发 给 目 标 ES 如 果 目 标 ES 和 源 ES 不 在 同 一 个 area 里,L1 IS 发 送 包 给 最 近 的 L1/L2 IS, 通 过 L2 IS 对 包 的 转 发, 直 到 转 发 到 和 目 标 ES 位 于 同 一 个 area 的 L2 IS 为 止,L2 IS 再 把 包 L1 IS,L1 IS 把 包 交 给 目 标 ES 因 为 每 个 IS 都 有 自 己 计 算 出 的 最 佳 的 路 由 决 策, 因 此, 按 上 述 例 子, 当 目 标 ES 要 把 包 返 回 给 源 ES 的 时 候, 就 不 一 定 走 和 来 的 时 候 一 样 的 路 径. 如 下 图 : 5
包 由 X 到 Y 的 时 候,X 把 包 交 给 最 近 的 L1/L2 路 由 器 A,A 发 现 到 C 和 到 B 的 耗 费 均 为 10, 但 是 经 过 C 的 话 要 穿 越 2 个 area, 而 经 过 B 的 话 只 需 要 穿 越 1 个 area, 于 是 A 把 包 交 给 L1/L2 路 由 器 B,B 计 算 出 到 达 Y 的 最 佳 路 径 ( 如 上 图 绿 线 所 示 ) 当 包 要 从 Y 回 到 X 的 时 候,Y 发 现 2 个 L1/L2 路 由 器 F 和 E 的 耗 费 为 15 和 10, 于 是 B 把 包 交 给 E,E 再 经 过 D 和 C 回 到 A, 最 后 交 给 X IS-IS Protocol Data Units IS-IS PDU 是 直 接 封 装 在 数 据 链 路 (data link) 帧 里 的. 并 且 PDU 里 没 有 包 含 CLNP 或 IP 头.IS-IS PDU 有 如 下 几 种 类 型 : 1.hello( 包 括 IIH,ISH,ESH): 用 来 建 立 和 维 持 邻 接 关 系 2.LSP(link-state PDU): 用 来 分 发 链 路 状 态 信 息 3.PSNP(partial sequence number PDU): 用 于 确 认 和 请 求 丢 失 的 链 路 状 态 信 息 4.CSNP(complete sequence number PDU): 用 来 描 述 路 由 器 的 LSDB 中 LSP 的 完 全 列 表 如 下 图 分 别 是 ES-IS,IS-IS 和 CLNP 用 到 的 PDU: 可 以 看 出 它 们 都 是 直 接 封 装 在 数 据 链 路 帧 里 的, 而 真 正 的 CLNP 是 包 含 了 CLNP 头 的 在 IS-IS 里, 路 由 器 的 特 征 是 由 LSP 描 述 的, 如 下 图 : 6
LSP 头 部 包 括 PDU 类 型, 长 度,LSP ID, 顺 序 号 (sequence number), 剩 余 生 存 期 (remaining lifetime);tlv 字 段 是 变 长 字 段, 包 含 的 信 息 有 IS neighbors,es neighbors, 验 证 类 型 等 等 LSP 头 部 里 的 顺 序 号 起 始 为 1, 顺 序 号 越 高 表 明 LSP 越 新, 顺 序 号 避 免 了 LSP 在 LSDB 中 的 重 复 出 现. 当 路 由 器 重 启 后, 顺 序 号 归 为 1.remaining lifetime 是 用 来 倒 数, 当 倒 数 为 0 以 后 LSP 标 记 为 无 效, 起 始 值 为 1200 IS-IS 支 持 广 播 型 网 络 ( 比 如 LAN 和 多 点 WAN 连 接 ) 和 点 到 点 型 的 网 络,IS-IS 中 没 有 NBMA 的 概 念, 所 以 对 于 一 些 比 如 帧 中 继,ATM 和 X.25 等 NBMA 网 络, 可 以 通 过 划 分 子 接 口 的 方 式 使 用 点 到 点 型 的 网 络 要 在 NBMA 网 络 中 实 现 IS-IS, 要 把 CLNS 和 DLCI 做 个 映 射, 并 加 上 broadcast 参 数, 比 如 frame-relay map clns <dlci-number> broadcast. 建 议 把 NBMA 网 络 当 成 点 到 点 的 环 境 来 配 置 Broadcast Networks 广 播 型 的 网 络 有 LAN 接 口 和 多 点 WAN 连 接 ( 推 荐 IS-IS 中 广 播 型 只 使 用 在 LAN 接 口 里 ). 在 LAN 里, 路 由 器 通 过 IIH 和 其 他 所 有 的 路 由 器 都 建 立 邻 接 关 系 (OSPF 里 是 和 DR 邻 接 ).IIH 里 包 含 了 area ID, 邻 接 关 系 的 形 成 是 基 于 area 地 址 和 路 由 器 类 型 (L1,L2) 的,L1 和 L2 的 路 由 器 分 别 接 收 L1 和 L2 的 IIH, 建 立 各 自 等 级 的 邻 接 关 系 (L1 和 L1,L2 和 L2) Dijkstra 算 法 要 求 要 有 1 个 虚 拟 路 由 器 (virtual router), 叫 做 DIS(designated intermediate system),dis 用 来 建 立 整 个 广 播 环 境 的 快 照.DIS 选 举 的 原 则 是 优 先 级 最 高 ( 可 以 人 工 配 置 ),MAC 地 址 等 级 最 高.Cisco 默 认 L1 和 L2 的 优 先 级 都 是 64, 可 以 通 过 isis priority 命 令 进 行 修 改, 范 围 是 0 到 127.L1 的 DIS 和 L2 的 DIS 可 能 不 是 同 1 个 路 由 器, 因 为 接 口 L1 和 L2 的 优 先 级 可 以 不 同 DIS 选 举 以 后, 并 不 是 永 久 性 的, 当 某 个 路 由 器 的 优 先 级 高 于 现 有 的, 它 就 自 动 取 代 现 有 DIS 的 位 置.IS-IS 里 没 有 备 份 DIS( 和 OSPF 不 同 ). 如 下 图 : 7
和 OSPF 中 路 由 器 和 DR 邻 接 不 同 的 是,IS-IS 中,IS 之 间 相 互 邻 接 同 时 也 和 DIS 邻 接, 所 以 如 果 DIS 出 问 题 down 掉 了, 对 网 络 基 本 没 什 么 影 响 Point-to-Point Networks 由 于 IS-IS 也 使 用 的 是 双 层 结 构, 所 以 每 个 级 别 的 LSP 是 单 独 分 发 的, 就 有 了 L1 LSP 和 L2 LSP, 并 且 每 个 IS 产 生 单 独 的 LSP(1 种 是 L1 LSP, 另 1 种 是 L2 LSP).LSP 在 广 播 型 网 络 中 以 多 播 方 式 发 送, 在 点 到 点 环 境 是 以 单 播 方 式 发 送 广 播 型 和 点 到 点 的 一 些 比 较 如 下 图 : Link-State Database Synchronization L1 LSP 只 在 local area 洪 泛,L2 LSP 将 在 整 个 backbone 洪 泛. 每 个 IS 生 成 的 单 独 的 L1 LSP 和 L2 LSP,LSP 通 过 system ID 和 LSP number 鉴 别,LSP number 起 始 为 0, 如 果 LSP 超 过 了 MTU, 就 把 LSP 分 片 为 1,2,3 等 等. 当 IS 接 收 到 LSP 的 时 候 校 验 checksum( 检 验 和 ) 并 丢 弃 无 效 的 LSP( 超 出 lifetime); 如 果 接 收 到 的 LSP 版 本 更 新, 就 把 它 放 进 自 己 的 LSDB 中, 把 lifetime 设 置 为 1200 秒 考 试 倒 数. 当 倒 数 到 0 以 后, 还 会 保 持 额 外 的 60 秒,60 秒 之 后, 计 为 无 效, 丢 弃 SNP(sequence number PDU) 对 接 收 方 进 行 确 认 并 保 持 LSDB 的 同 步. 有 2 种 类 型 的 SNP,PSNP 和 CSNP.PSNP 和 CSNP 享 有 共 同 的 格 式, 不 同 点 在 于 前 者 是 部 分, 后 者 是 完 全.PSNP 用 于 点 到 8
点 链 路 中 LSP 的 确 认 和 请 求 丢 失 的 某 一 部 分 的 LSP;CSNP 用 于 LAN 内 由 DIS 周 期 性 发 送 的, 确 保 LAN 的 可 靠 性, 在 点 到 点 链 路 状 态 由 down 变 为 up 以 后 将 只 发 送 1 次 CSNP, 之 后 传 输 的 是 PSNP 下 图 是 LAN( 广 播 型 网 络 ) 中 CSNP 和 PSNP 的 示 意 图 : DIS 每 10 秒 发 送 1 次 CSNP, 而 R1 只 丢 失 了 LSP 77, 它 就 只 需 要 发 送 PSNP 请 求 LSP 77 LAN and WAN Adjacencies 看 看 LAN 中 IS-IS 的 邻 接 关 系, 如 下 图 : WAN 中 的 邻 接 关 系 如 下 图 : 9
可 以 看 出, 比 较 area ID 是 能 否 邻 接 的 其 中 一 个 因 素, 并 且 同 等 级 的 相 互 对 应 比 如 L1 对 L1 和 L1/L2 Integrated IS-IS NET Addressing NET 地 址 是 用 来 鉴 别 设 备 ( 比 如 IS 或 ES) 而 非 设 备 接 口 的. 即 使 在 IP 环 境,CLNS 参 数 (NET 地 址 ) 和 area 的 规 划 也 要 考 虑 进 去, 即 使 你 使 用 综 合 IS-IS 只 用 于 IP 路 由, 但 是 路 由 器 仍 然 建 立 CLNS 邻 接 关 系, 并 且 仍 然 使 用 CLNS 包 Criteria and Path Selection for IS-IS Area Routing 为 建 立 转 发 数 据 库,CLNS 路 由 表, 路 由 器 会 经 历 以 下 过 程 : 1. 当 LSDB 同 步 以 后,Dijkstra 算 法 进 行 计 算 出 SPF 树,IS-IS 使 用 OSI 转 发 数 据 库 (forwording database, 路 由 表 ) 来 选 择 到 达 目 的 地 的 最 佳 路 径 2. 由 于 L1 和 L2 在 LSDB 中 是 独 立 开 来 的, 因 此 路 由 器 会 运 算 2 次 SPF 算 法, 每 个 级 别 创 建 单 独 的 1 条 SPF 树 3. 根 据 L1 和 L2 的 SPF 树 通 过 PRC(partial route calculation) 计 算 出 ES 的 可 达 性 (reachability). 在 综 合 IS-IS 单 独 的 IP 环 境 中, 是 没 有 OSI ES 的 4. 把 最 佳 路 径 放 进 CLNS 路 由 表 里 (OSI 转 发 数 据 库 ) PRC 参 与 IP 可 达 性 的 计 算, 但 是 IP 和 ES 不 会 参 与 SPF 的 运 算. 最 佳 路 径 放 进 IP 转 发 数 据 库 (IP 路 由 表 ) 里, 将 以 L1,L2 的 形 式 标 记 Using the show Commands show clns: 显 示 CLNS 网 络 的 信 息 show clns protocol [tag]: 显 示 协 议 特 性 信 息 show clns interface [type umber]: 显 示 接 口 的 CLNS 特 定 信 息 show clns neighbors [type number] [detail]: 显 示 ES 和 IS 的 邻 居 信 息 show isis route: 显 示 IS-IS L1 的 路 由 表 ( 查 看 的 是 CLNS 路 由, 必 须 启 用 CLNS 路 由 ) 10
show clns route: 显 示 CLNS 的 路 由 表 (L2) show isis database: 显 示 IS-IS 的 LSDB 信 息 show isis topology: 显 示 IS-IS 到 达 目 的 地 耗 费 最 低 的 路 径 来 看 下 show 命 令 实 例, 如 下 图 : R1#show isis topology IS-IS paths to level-1 routers System Id Metric Next-Hop Interface SNPA R1 -- R2 10 R2 Se0 *HDLC* R4 10 R4 Se1 *HDLC* R2#show isis topology IS-IS paths to level-1 routers System Id Metric Next-Hop Interface SNPA R1 10 R1 Se0 *HDLC* R2 -- R4 10 R4 Se1 *HDLC* IS-IS paths to level-2 routers System Id Metric Next-Hop Interface SNPA R2 -- R5 10 R5 Et0 0010.7bb5.9e20 注 意 serial 接 口 和 Ethernet 接 口 SNPA 分 别 为 封 装 类 型 和 MAC 地 址. 再 注 意 R1 为 L1,R2 为 L1/L2, 它 们 在 show isis topology 输 出 中 不 同 的 内 容 R1#show clns route CLNS Prefix Routing Table 49.0001.0000.0000.0001.00, Local NET Entry R1#show isis route IS-IS Level-1 Routing Table - version 312 System Id Next-Hop Interface SNPA Metric State R2 R2 Se0 *HDLC* 10 Up L2-IS R4 R4 Se1 *HDLC* 10 Up R1 -- Default route out of area - (via 1 L2-attached IS) 11
System Id Next-Hop Interface SNPA Metric State R2 Se0 *HDLC* 10 Up 注 意 在 R1 上 show isis route 输 出 里 显 示 的 R2 最 后 有 个 L2-IS. 同 时 也 要 注 意 show clns route 的 输 出 R2#show clns route CLNS Prefix Routing Table 49.0001.0000.0000.0002.00, Local NET Entry 49.0002 [110/10] via R5, IS-IS, Up, Ethernet0 49.0001 [110/0] via R2, IS-IS, Up R2# show isis route IS-IS Level-1 Routing Table - version 47 System Id Next-Hop Interface SNPA Metric State R4 R4 Se1 *HDLC* 10 Up R1 R1 Se0 *HDLC* 10 Up 注 意 在 R2(L2) 上 使 用 show clns route 命 令 的 输 出 和 之 前 在 R1(L1) 上 内 容 的 不 同. 以 及 show isis route 的 输 出 只 显 示 了 和 L1 相 关 联 的, 而 没 显 示 和 L2 相 关 联 的. 注 意 管 理 距 离 AD 是 110(CLNS), 对 于 IP 管 理 距 离 是 115 Integrated IS-IS Configuration Steps 综 合 IS-IS 的 配 置 步 骤 如 下 : 1. 定 义 area 和 地 址 规 划, 要 考 虑 的 问 题 有 : 对 于 IP 而 言 要 考 虑 汇 总 问 题 ; 对 于 CLNS 要 考 虑 system ID 唯 一 性 的 问 题 2. 启 用 IS-IS, 命 令 如 下 : router(config)#router isis [tag] tag 为 IS-IS 进 程 标 记, 类 似 OSPF 里 的 进 程 ID, 可 选, 如 果 省 略 的 话,IOS 默 认 IS-IS 进 程 号 为 0. 而 CLNS 路 由 默 认 是 没 有 被 启 用 的, 默 认 启 用 的 是 IP 路 由, 所 以 要 启 用 CLNS 路 由 的 话, 还 需 要 输 入 如 下 命 令 : router(config)#clns routing 额 外 的, 你 还 需 要 在 接 口 启 用 CLNS 路 由 3. 配 置 NET, 命 令 如 下 : Router(config-router)#net [network-entity-title] 注 意 是 在 全 局 配 置 模 式 下, 记 得 默 认 的 NSEL 值 写 为 00 4. 启 用 综 合 IS-IS, 命 令 如 下 : router(config-if)#clns router isis [tag] router(config-if)#ip router isis [tag] 选 择 参 与 IS-IS 进 程 的 接 口, 同 样, 如 果 有 多 个 IS-IS 进 程, 那 接 口 也 要 配 置 IS-IS 进 程 ID(tag), 省 略 的 话 IOS 默 认 为 0 一 般 来 说,IOS 默 认 把 IS-IS 路 由 器 当 成 是 L1/L2 路 由 器 更 改 路 由 器 路 由 级 别, 默 认 为 L1/L2, 如 下 : Router(config-router)#is-type {level-1 level-1-2 level-2-only} 12
更 改 路 由 器 接 口 的 路 由 级 别, 默 认 为 L1/L2, 如 下 : Router(config-if)#isis circuit-type {level-1 level-1-2 level-2-only} 更 改 IS-IS 路 由 器 接 口 的 metric 值, 如 下 : Router(config-if)#isis metric [metric] {level-1 level-2} L1 和 L2 的 metric 值 可 以 不 一 样 综 合 IS-IS 做 IP 路 由 汇 总 的 命 令 如 下 : Router(config-router)#summary-address {prefix} {mask} [level-1 level-2 level-1-2] 比 如 :P3R1(config-router)# summary-address 10.3.2.0 255.255.254.0 level-2 默 认 为 L2 一 些 验 证 性 的 命 令, 如 下 : Router#show ip protocols Routing Protocol is "isis" Sending updates every 0 seconds Invalid after 0 seconds, hold down 0, flushed after 0 Outgoing update filter list for all interfaces is Incoming update filter list for all interfaces is Redistributing: isis Address Summarization: None Routing for Networks: Serial0 Ethernet0 Routing Information Sources: Gateway Distance Last Update 11.0.0.1 115 00:11:44 13.0.0.1 115 00:11:44 14.0.0.1 115 00:11:44 Distance: (default is 115) ( 略 ) 查 看 路 由 表, 如 下 : router#show ip route <address [mask]> <protocol [process-id]> 实 例 如 下 : R2#show ip route isis i L1 11.0.0.0/8 [115/10] via 192.168.20.1, Serial0 i L1 13.0.0.0/8 [115/10] via 192.168.220.3, Ethernet0 i L1 14.0.0.0/8 [115/20] via 192.168.220.3, Ethernet0 13
Module6 Manipulating Routing Updates Migrating to a New IP Routing Protocol redistribution( 再 发 布 ) 是 用 来 连 接 不 同 的 路 由 域 (routing domain, 或 AS), 使 得 运 行 了 不 同 的 路 由 协 议 的 路 由 器 能 够 共 享 路 由 信 息. 再 发 布 的 两 种 方 法 如 下 : 1.two-way redistribution: 双 向 2.one-way redistribution: 单 向 如 下 情 况 可 能 就 会 使 用 多 种 路 由 协 议 : 1. 迁 移 旧 的 IGP 到 新 的 IGP 2. 可 能 一 些 旧 的 部 门 不 想 让 它 们 的 路 由 器 运 行 新 的 3. 混 合 厂 商 设 备 之 间, 比 如 Cisco 设 备 和 非 Cisco 设 备 下 图 是 一 个 再 发 布 的 例 子 : 左 边 是 OSPF 网 络, 右 边 是 EIGRP 网 络,A 作 为 边 界 路 由 器, 在 A 上 做 再 发 布,B 把 EIGRP 网 络 汇 总 路 由 192.168.5.0 宣 告 给 A;C 把 OSPF 网 络 的 汇 总 路 由 172.16.0.0 宣 告 给 B. 同 时 C 的 路 由 表 里 出 现 1 条 条 目 O E2 192.168.5.0,E2 表 外 部 路 由 ; 而 B 的 路 由 表 也 出 现 一 条 条 目 D EX2 172.16.0.0, 表 示 这 条 路 由 是 从 外 部 学 来 的 如 果 上 图 那 个 例 子,A 没 有 做 路 由 再 发 布 的 话, 就 叫 SIN(ships-in-the-night) routing.a 将 在 参 与 了 OSPF 进 程 的 接 口 上 传 输 OSPF 路 由 更 新 包 给 OSPF 邻 居 ; 而 在 参 与 了 EIGRP 进 程 的 接 口 上 传 输 EIGRP 路 由 更 新 包 给 EIGRP 邻 居. 参 与 不 同 路 由 协 议 进 程 2 边 的 接 口 之 间 不 会 交 换 路 由 信 息 的 Seed Metrics 在 做 路 由 再 发 布 的 时 候, 如 果 2 边 使 用 不 同 的 路 由 协 议, 就 要 进 行 metric 的 翻 译, 使 得 它 们 兼 容.seed metric(default metric) 是 定 义 在 路 由 再 发 布 里 的. 在 路 由 配 置 模 式 使 用 default-metric 命 令 在 建 立 seed metric. 如 下 图 是 一 些 IP 路 由 协 议 的 default seed metric: 1
Redistribution Implementation Considerations 做 路 由 再 发 布 应 该 考 虑 到 的 一 些 问 题, 如 下 : 1.routing feedback(loops) 2. 路 由 信 息 的 兼 容 问 题 3. 不 一 致 的 收 敛 时 间 比 较 安 全 的 办 法 是 在 边 界 路 由 器 上 采 用 one-way redistribution. 还 要 决 定 核 心 (core) 路 由 协 议 和 边 缘 (edge) 路 由 协 议. 在 对 路 由 协 议 进 行 翻 译 的 时 候, 核 心 路 由 协 议 做 为 新 的 路 由 协 议, 边 缘 路 由 协 议 作 为 旧 的 路 由 协 议. 如 果 你 想 做 two-way redistribution, 要 把 路 由 循 环 的 问 题 考 虑 进 去 Configuring Redistribution 只 有 支 持 相 同 协 议 栈 的 路 由 协 议 才 能 做 再 发 布, 比 如 IP 的 RIP 和 OSPF; 反 之 IPX 的 RIP 就 不 能 和 OSPF 做 再 发 布. 还 有 一 些 路 由 协 议 比 如 IGRP 和 EIGRP, 在 1 个 AS 里 的 话 会 自 动 再 发 布 ; 但 是 其 他 的 路 由 协 议 要 进 行 人 工 配 置, 还 有 一 些 其 他 的 路 由 协 议 在 配 置 再 发 布 的 时 候 要 进 行 metric 的 配 置 路 由 再 发 布 的 步 骤 如 下 : 1. 定 位 要 做 再 发 布 的 边 界 路 由 器, 尽 量 选 举 一 个 路 由 器 做 为 边 界 路 由 器 来 减 少 路 由 循 环 的 可 能 性 2. 决 定 哪 个 路 由 协 议 做 为 核 心 路 由 协 议 3. 定 义 哪 个 路 由 协 议 做 为 边 缘 路 由 协 议 ( 做 为 过 渡 ) 4. 选 择 注 入 边 缘 路 由 协 议 到 核 心 路 由 协 议 里 的 方 法, 可 以 通 过 在 网 络 边 界 使 用 汇 总 来 减 少 核 心 路 由 表 的 条 目 the redistribute Command for RIP 再 发 布 到 RIP 的 命 令 如 下 : Router(config-router)#redistribute <protocol> [process-id] <match [route-type]> <metric [value]> <route-map [map-tag]> 2
参 数 含 义 如 下 : protocol: 需 要 做 再 发 布 的 一 些, 比 如 OSPF,IS-IS,IGRP 等 等 process-id: 对 于 EIGRP,IGRP,BGP 和 EGP 就 是 AS 号 ; 对 于 OSPF 就 是 进 程 ID match [route-type]: 可 选, 用 来 再 发 布 OSPF 的 时 候 用 的, 可 选 参 数 为 internal,external 1(O E1) 和 external 2(O E2) metric [value]: 可 选, 为 经 过 再 发 布 以 后 的 路 由 定 义 RIP 的 seed metric, 默 认 是 0, 即 无 限 (infinity) route-map [map-tag]: 可 选, 定 义 route map 如 下 图 : 把 OSPF 进 程 1 再 发 布 到 RIP 中 去, 并 定 义 metric 为 3 the redistribute Command for OSPF 再 发 布 到 OSPF 的 命 令 如 下 : Router(config-router)#redistribute <protocol> [process-id] <metric [value]> <metric-type [value]> <route-map [map-tag]> [subnets] <tag [value]> 参 数 含 义 如 下 : metric [value]: 可 选, 当 其 他 路 由 再 发 布 到 OSPF 里 的 时 候, 默 认 的 seed metric 为 20(BGP 例 外,BGP 为 1) metric-type [value]: 可 选, 定 义 外 部 路 由 类 型, 默 认 为 external 2(O E2) subnets: 可 选, 如 果 不 加 这 个 参 数, 将 不 会 将 子 网 路 由 信 息 再 发 布 到 OSPF 里 去 如 下 图 : 3
如 上 是 把 EIGRP 再 发 布 到 OSPF 里, 并 指 定 子 网 信 息 (172.16.1.0, 如 果 没 有 加 上 subnets 参 数, 这 里 可 能 就 是 172.16.0.0), 并 指 定 外 路 路 由 类 型 为 O E1.seed metric 采 用 默 认 的 值 20 the redistribute Command for EIGRP 再 发 布 到 EIGRP 的 命 令 如 下 : Router(config-router)#redistribute <protocol> [process-id] <match [internal external 1 external 2]> <metric [value]> <route-map [map-tag]> 参 数 含 义 如 下 : metric [value]: 可 选, 定 义 seed metric, 参 数 顺 序 为 bandwidth,delay,reliability,load 和 MTU match [internal external 1 external 2]: 可 选, 用 来 再 发 布 OSPF 到 EIGRP 里 定 义 外 部 路 由 类 型 如 下 图 : 如 上 是 把 OSPF 进 程 1 再 发 布 到 EIGRP 里, 并 指 定 带 宽 为 10000Kb, 延 迟 为 100, 可 靠 性 最 大 255, 负 载 最 小 1 以 及 MTU 为 1500 the redistribute Command for IS-IS 再 发 布 到 IS-IS 的 命 令 如 下 : Router(config-router)#redistribute <protocol> [process-id] <metric [value]> <level [value]> <metric-type [value]> <route-map [map-tag]> <tag [value]> 参 数 含 义 如 下 : level [value]: 可 选, 外 部 路 由 再 发 布 的 级 别, 默 认 为 L2,value 可 选 参 数 为 level-1,level-1-2 和 level-2 如 下 图 : 4
如 上 是 把 EIGRP 再 发 布 到 IS-IS 里, 默 认 为 L2 如 下 图 是 一 个 没 有 做 再 发 布 的 配 置 实 例 : B(config)#router rip B(config-router)#netw 10.0.0.0 B(config-router)#version 2 B(config-router)#passive-interface s2 最 后 1 行 命 令 的 作 用 是 不 需 要 在 serial 2 上 启 用 RIPv2 B(config)#router ospf 1 B(config-router)#netw 10.0.0.8 0.0.0.3 area 0 而 此 时 A,B 和 C 的 路 由 表 的 条 目 如 下 图 : 现 在 在 B 上 做 路 由 再 发 布, 如 下 : B(config)#router ospf 1 B(config-router)#netw 10.0.0.8 0.0.0.3 area 0 B(config-router)#redistribute rip subnets metric 300 如 上 是 把 RIP 再 发 布 到 OSPF 中 同 时 定 义 子 网 信 息 的 发 布 和 metric 的 值 为 300 B(config)#router rip B(config-router)#netw 10.0.0.0 B(config-router)#version 2 B(config-router)#passive-interface s2 B(config-router)#redistribute static metric 5 如 上 的 再 发 布 一 条 静 态 路 由 到 RIP 中 去, 注 意 metric 为 5( 高 于 RIP 网 络 默 认 的 metric) 5
下 图 是 经 过 再 发 布 以 后,A,B 和 C 路 由 表 的 条 目 : 还 可 以 通 过 路 由 汇 总 来 减 少 路 由 表 的 条 目, 如 下 图 : 对 于 A, 创 建 汇 总, 如 下 : A(config)#int s0 A(config-if)#ip summary-address rip 10.0.0.0 255.252.0.0 对 于 C, 创 建 汇 总, 如 下 : C(config)#router ospf 1 C(config-router)#area 1 range 10.8.0.0 255.252.0.0 之 后 路 由 表 条 目 如 下 图 : 可 以 看 出 路 由 汇 总 有 效 的 减 少 了 路 由 表 的 条 目 Passive Interface 如 果 你 在 路 由 器 上 配 置 某 种 路 由 协 议, 但 是 你 又 想 让 某 个 接 口 不 参 与 到 其 中 去, 就 可 以 用 passive-interface 命 令. 这 个 命 令 的 作 用 是 防 止 路 由 协 议 的 路 由 更 新 通 过 这 个 接 口 发 送 出 去. 如 果 要 把 全 部 的 接 口 全 部 设 置 为 这 样 的 1 个 状 态 就 可 以 使 用 passive-interface default 命 令, 再 使 用 no passive-interface 命 令 开 启 个 别 需 要 发 送 路 由 更 新 的 接 口 如 下 图 就 是 1 个 实 例 : 6
在 B 上 的 配 置 如 下 : B(config)#router rip B(config-router)#netw 10.0.0.0 B(config-router)#passive-interface s1 在 A 上 的 配 置 如 下 : A(config)#router rip A(config-router)#netw 10.0.0.0 A(config-router)#passive-interface default A(config-router)#no passive-interface s1 Route Filtering 控 制 路 由 更 新 包 的 一 些 办 法 如 下 : 1.passive-interface 2. 默 认 路 由 3. 静 态 路 由 还 可 以 使 用 distribute-list 来 对 路 由 更 新 包 进 行 控 制, 流 程 图 如 下 : Configuring distribute-list 配 置 distribute-list 的 步 骤 如 下 : 1. 根 据 网 络 需 要 创 建 ACL 2. 决 定 是 在 过 滤 方 向 3. 创 建 distribute-list out 方 向 的 命 令 如 下 : 7
Router(config-router)#distribute-list {access list-number name} out <interface name routing process [autonomous system number]> in 方 向 的 命 令 如 下 : Router(config-router)#distribute list {access list-number name} in [interface-type number] 配 置 实 例 如 下 图 : 如 上 图, 将 只 允 许 来 自 172.16.0.0 的 路 由 更 新 包 经 过 s0 口 传 输 到 192.168.5.0 中 去, 因 为 结 尾 默 认 隐 含 deny any, 所 以 来 自 10.0.0.0 的 包 被 过 滤 掉 了 下 图 是 一 个 用 distribute-list 控 制 再 发 布 的 例 子 : B(config)#access-list 2 deny 10.3.0.0 0.0.255.255 B(config)#permit any B(config)#access-list 3 permit 10.9.0.0 B(config)#router ospf 1 B(config-router)#netw 10.0.0.8 0.0.0.3 area 0 B(config-router)#redistribute rip subnets B(config-router)#distribute-list 2 out rip B(config-router)#^Z B(config)#router rip B(config-router)#netw 10.0.0.0 B(config-router)#version 2 B(config-router)#passive-interface s3 B(config-router)#redistribute ospf 1 metric 5 B(config-router)#distribute-list 3 out ospf 1 如 上 配 置, 将 只 有 路 由 10.9.0.0 再 发 布 到 RIP 里 去 ; 而 再 发 布 到 OSPF 里 的 只 有 10.1.0.0 和 10.2.0.0 Route Map Operation 8
route map 的 作 用 如 下 : 1. 再 发 布 路 由 的 过 滤 2. 基 于 策 略 的 路 由 (policy-based routing,pbr) 3.NAT 4.BGP 路 由 策 略 Route Map Commands 通 过 route map 控 制 路 由 的 再 发 布 命 令, 如 下 : Router(config-router)#redistribute [protocol] [process id] route-map [map-tag] 创 建 route map 的 步 骤 如 下 : 1. 定 义 route map 的 条 件, 如 下 : Router(config)#route-map [map-tag] [permit deny] [sequence-number] 2. 定 义 需 要 满 足 的 条 件, 如 下 : Router(config-route-map)#match {conditions} 3. 满 足 条 件 以 后 所 采 取 的 措 施, 如 下 : Router(config-route-map)#set {actions} 其 中 {conditions} 参 数 和 {actions} 参 数 可 以 通 过? 来 提 示 查 看 一 个 通 过 route map 控 制 路 由 再 发 布 的 例 子 如 下 : Router(config)#access-list 23 permit 10.1.0.0 0.0.255.255 Router(config)#access-list 29 permit 172.16.1.0 0.0.0.255 Router(config)#access-list 37 permit 10.0.0.0 0.255.255.255 如 上 设 置 ACL Router(config)#route-map redis-rip permit 10 Router(config-route-map)#match ip address 23 29 Router(config-route-map)#set metric 500 Router(config-route-map)#set metric-type type-1 Router(config-route-map)#^Z Router(config)#route-map redis-rip deny 20 Router(config-route-map)#match ip address 37 Router(config-route-map)#^Z Router(config)#route-map redis-rip permit 30 Router(config-route-map)#set metric 5000 Router(config-route-map)#set metric-type type-2 Router(config-route-map)#^Z 如 上,route map 10 是 把 匹 配 ACL 23 和 29 的 地 址, 设 置 cost 为 500 并 且 为 类 型 1;route map 20 是 符 合 ACL 37 的 IP 地 址 将 不 会 被 再 发 布 ;route map 30 是 把 其 他 的 路 由 的 cost 设 置 为 5000, 类 型 2 Router(config)#router ospf 10 Router(config-router)#redistribute rip route-map redis-rip 9
Commands for Changing Administrative Distance 手 动 修 改 管 理 距 离 的 命 令 如 下 : Router(config-router)#distance [value] <address wildcard-mask [access-list-number name]> 以 上 命 令 用 在 配 置 OSPF,IS-IS 和 RIP 等 路 由 配 置 模 式 下 使 用 (BGP 和 EIGRP 例 外 ) 对 于 EIGRP 的 管 理 距 离 修 改 的 命 令 如 下 : Router(config-router)#distance eigrp [internal-distance] [external-distance] Policy-Based Routing PBR 的 一 些 优 点 如 下 : 1. 一 般 的 IP 路 由 的 策 略 是 基 于 目 标 地 址 的,PBR 允 许 你 可 以 基 于 源 地 址 对 包 进 行 路 由 2.Qos 3. 节 省 开 支, 负 载 共 享 PBR 是 应 用 于 incoming packet 上 的 ( 即 包 进 入 路 由 器 的 那 个 接 口 ), 并 通 过 route map 来 做 路 由 决 策. 规 则 如 下 : 1. 如 果 在 route map 里, 陈 述 标 记 为 deny 的 话, 符 合 这 个 匹 配 原 则 的 包 就 按 照 正 常 方 式 进 行 路 由 2. 如 果 在 route map 里, 陈 述 标 记 为 permit 的 话, 符 合 这 个 匹 配 原 则 的 包 就 按 照 set 命 令 进 行 处 理 ; 如 果 没 有 找 到 可 以 匹 配 的 包, 就 按 照 正 常 方 式 进 行 路 由 3. 如 果 你 想 把 不 符 合 匹 配 原 则 的 包 丢 弃 而 非 按 正 常 情 况 处 理 的 话, 就 要 在 route map 的 最 后 1 行 加 上 1 行 set 语 句 : 把 那 些 包 路 由 到 null0 接 口 一 些 常 用 的 PBR 的 match 命 令 如 下 : Router(config-route-map)#match ip address {access-list-number name} [access-list-number name] 如 上 是 根 据 IP 地 址 进 行 匹 配 Router(config-route-map)#match length [min] [max] 如 上 是 根 据 layer 3 的 包 的 长 度 来 进 行 匹 配 一 些 常 用 的 PBR 的 set 命 令 如 下 : Router(config-route-map)#set ip [default] next-hop [ip-address] [...ip-address] 定 义 下 1 跳 的 出 口 地 址 Router(config-route-map)#set [default] interface [type number] [...type number] 定 义 出 口 的 接 口, 推 荐 使 用 在 点 到 点 链 路 上 以 上 的 default 参 数 都 用 在 路 由 表 里 没 有 到 达 目 标 地 址 的 明 确 条 目 的 情 况 下 对 PBR 的 应 用 命 令 如 下 : Router(config-if)#ip policy route-map [map-tag] 注 意 是 在 incoming 接 口 ( 入 口 ) 应 用, 而 表 示 应 用 在 outgoing 接 口 ( 出 口 ) 上 Router(config-if)#ip route-cache policy 启 用 快 速 交 换 路 由 策 略, 快 速 交 换 路 由 策 略 支 持 所 有 的 match 命 令 和 大 部 分 set 命 令, 但 是 set ip default next hop 命 令 不 被 支 持 10
PBR 的 实 例 如 下 图 : 如 图, 现 需 要 将 1.1.0.0 的 网 络 的 数 据 包 送 到 ISP A 去 ; 将 1.2.0.0 的 数 据 包 送 到 ISP B 去, 配 置 如 下 : RouterA(config)#access-list 1 permit ip 1.1.0.0 0.0.255.255 RouterA(config)#access-list 2 permit ip 1.2.0.0 0.0.255.255 根 据 需 要 先 创 建 ACL RouterA(config)#route-map equal-access permit 10 RouterA(config-route-map)#match ip address 1 RouterA(config-route-map)#set ip default next-hop 6.6.6.6 RouterA(config-route-map)#route-map equal-access permit 20 RouterA(config-route-map)#match ip address 2 RouterA(config-route-map)#set ip default next-hop 7.7.7.7 RouterA(config-route-map)#route-map equal-access permit 30 RouterA(config-route-map)#set default interface null0 创 建 route map RouterA(config)#interface ethernet 0 RouterA(config-if)#ip address 1.1.1.1 255.255.255.0 RouterA(config-if)#ip policy route-map equal-access 在 incoming 接 口 上 应 用 route map PBR 的 一 些 验 证 性 的 命 令 如 下 : show ip policy: 显 示 在 接 口 上 配 置 的 route map show route-map [map-name]: 显 示 某 个 route map debug ip policy: 显 示 IP PDR 包 的 活 动 状 态 11