第1章 功能说明 1
1.1 功能特点 1
1.2 实现机制 4
1.3 OSPF 路由选择守护进程:ospfd 4
1.4 OSPF 路由选择仿真器 5
1.5 申明 6
第2章 安装指导 8
2.1 ospfd 安装(只适用于 Linux) 8
2.2 安装 OSPF 路由选择仿真器 ospf_sim 10
2.3 安装 OSPF 源 13
3.1 数据流 14
第3章 软件体系结构 14
3.2 主要数据结构 18
3.3 文件组织 29
第4章 移植指导 36
4.1 移植概述 36
4.2 系统接口 38
4.3 API 44
4.4 移植注意事项 47
第5章 构造模块 51
第6章 链路状态数据库 72
6.1 链路状态数据库基本原理 72
6.2 数据库操作 77
6.3 LSA 列表 86
6.4 LSA 老化 89
6.5 DoNotAge LSA 94
第7章 创建 LSA 102
7.1 支撑程序 102
7.2 router-LSA 107
7.3 Network-LSA:Spflfc::nl_orig() 112
7.4 接收自创建的 LSA 115
7.5 创建延迟 117
7.6 刷新 LSA 119
7.7 LS 序列数滚动 119
7.8 提前老化 120
第8章 相邻路由器维护 122
8.1 相邻路由器状态机 122
8.2 发现相邻路由器 128
8.3 数据库交换 131
8.4 接口状态变化 134
第9章 泛洪 139
9.1 数据结构 140
9.2 接收链路状态更新分组:SpfNbr::recv_update() 142
9.3 泛洪 LSA:LSA::flood() 150
9.4 接收确认:SpfNbr::recv_ack() 154
9.5 重发 LSA:SpfNbr::rxmt_update() 155
9.6 建立更新分组 158
第10章 OSPF 层次结构 161
10.1 区边界准则 161
10.2 实现区路由选择 163
10.3 实现外部路由选择 170
第11章 路由选择计算 184
11.1 路由选择计算触发:OSPF::rtsched() 184
11.2 intra-AS 路由选择计算:OSPF::full_calculation() 186
11.3 多路径计算 199
11.4 处理 LSA 199
11.5 到达 ASBR 的路由 201
11.6 外部路由:INrte::run_external() 203
第12章 MOSPF 实现 205
12.1 MOSPF 数据结构 206
12.2 IGMPv2实现 208
12.3 传播组成员身份:Group-membership-LSA 210
12.4 路由选择计算 212
12.5 缓存维护和 MOSPF—IGMP 交互 220
12.6 与其他路由选择协议的交互 220
第13章 配置和监控 222
13.1 全局参数 223
13.2 OSPF 接口参数 224
13.3 密码验证密钥 226
13.4 区参数 227
13.5 区路由聚合 228
13.6 虚链路参数 228
13.7 非广播网络上的相邻路由器 229
13.8 回送地址和附属主机 229
13.9 外部路由 230
13.10 文明退出 231
13.11 重新读取完整的配置(见 My document) 234
13.12 主机路由侦听 235
13.13 监控接口 237
第14章 一个 Linux 路由选择守护进程 243
14.1 ospfd 配置 243
14.2 改变配置语法 250
14.3 动态重配置 252
14.4 文明关闭 252
14.5 监控 ospfd 操作 252
14.6 申告 253
14.7 实现细节 254
15.1 软件体系结构 263
第15章 OSPF 仿真器 263
15.2 仿真控制器进程:ospf_sim 269
15.3 一个仿真的 OSPF 路由器:ospfd_sim 进程 272
15.4 监控和调试 276
附录 A 参考手册 277
附录 B OSPFD 日志消息 291
B.1 配置和管理消息 292
B.2 错误报告消息 292
B.3 信息类消息 296
B.4 停机消息 301
附录 C 开发项目 303
附录 D GNU GPL 305
参考文献 311