SPECIAL OFFERS
Keep up with new releases and promotions. Sign up to hear from us.
Register your product to gain access to bonus material or receive a coupon.
Written by the creator of the OSPF (Open Shortest Path First) protocol, this book demonstrates the protocol in action with a complete OSPF implementation. It shows how the protocol's theory is realized in a real-time distributed software system, reveals many of the finer points of OSPF, and offers experienced-based optimization and porting techniques.
The implementation described and examined in this book is written in C++ and designed with porting in mind. The book details the software architecture of the implementation and describes in-depth key OSPF functions, illustrated by numerous code samples. It also includes a guide to porting OSPF software to different environments, with an explanation of the software layer between the OSPF implementation and the operating system. In addition, two sample ports are included–a routing daemon for Linux and an OSPF routing simulator for Linux and Windows.
Key topics covered include:
Together, OSPF: Anatomy of an Internet Routing Protocol and OSPF Complete Implementation provide an in-depth view into the theory and inner workings of OSPF, and the knowledge you need to make full use of this important protocol in Internet-based applications.
Click below for Source Code related to this title:
Code Corrections
List of Tables.
List of Figures.
Preface.
1. Functional Specifications.
Feature Set.
Implementation Mechanics.
An OSPF Routing Daemon: OSPFD.
An OSPF Routing Simulator.
Caveats.
2. Installation Instructions.
Installation of OSPFD (Linux Only).
Installation of the OSPF Routing Simulator: OSPF_SIM.
Installing the OSPF Sources.
3. Software Architecture.
Data Flow.
Major Data Structures.
File Organization.
4. Porting Guide.
Porting Overview.
System Interface.
Application Programming Interface.
Porting Considerations.
5. Building Blocks.
6. The Link-State Database.
Link-State Database Fundamentals.
Database Operations.
LSA Lists.
Aging LSAs.
DoNotAge LSAs.
7. Originating LSAs.
Support Routines.
Router-LSAs.
Network-LSAs: SpfIfc::nl_orig().
Receiving Self-Originated LSAs.
Deferred Originations.
Refreshing LSAs.
LS Sequence Number Rollover.
Premature Aging.
8. Neighbor Maintenance.
Neighbor State Machine.
Neighbor Discovery.
Database Exchange.
Interface State Changes.
9. Flooding.
Data Structures.
Receiving Link State Updates: SpfNbr::recv_update().
Flooding LSAs: LSA::flood().
Receiving Acknowledgments: SpfNbr::recv_ack().
Retransmitting LSAs: SpfNbr::rxmt_update().
Building Update Packets.
10. OSPF Hierarchy.
Guidelines for Area Boundaries.
Implementing Area Routing.
Implementing External Routing.
11. Routing Calculations.
Triggering the Routing Calculation: OSPF::rtsched().
The Intra-AS Routing Calculation: OSPF::full_calculation().
Multipath Calculations.
Preprocessing LSAs.
Routes to ASBRs.
External Routes: INrte::run_external().
12. MOSPF Implementation.
MOSPF Data Structures.
IGMPv2 Implementation.
Propagating Group Membership: Group-Membership-LSAs.
Routing Calculations.
Cache Maintenance and MOSPF IGMP Interaction.
Interaction with Other Routing Protocols.
13. Configuration and Monitoring.
Global Parameters.
Interface Parameters.
Cryptographic Authentication Keys.
Area Parameters.
Area Route Aggregation.
Virtual Link Parameters.
Nonbroadcast Neighbors.
Loopback Addresses and Attached Hosts.
External Routes.
Graceful Exit.
Rereading Entire Configuration.
Host Wiretapping.
Monitor Interface.
14. A Routing Daemon for Linux.
The OSPFD Configuration.
Changing Configuration Syntax.
Dynamic Reconfiguration.
Graceful Shutdown.
Monitoring OSPFD Operation.
Caveats.
Implementation Details.
15. An OSPF Simulator.
Software Architecture.
The Simulation Controller Process: OSPF_SIM.
A Simulated OSPF Router: The OSPFD_SIM Process.
Monitoring and Debugging.
Appendix A. Manual Pages.
Appendix B. OSPFD Logging Messages.
Configuration and Management Messages.
Error Messages.
Informational Messages.
Halt Messages.
Appendix C. Projects.
Appendix D. GNU General Public License.
Bibliography.
Index.