RFC 6549

OSPFv2 Multi-Instance Extensions

πŸ“… published March 2012, from ietf

RFC 6549: OSPFv2 Multi-Instance Extensions ✨

  • Who wrote it: A. Lindem (Ericsson), A. Roy and S. Mirtorabi (Cisco Systems) πŸ’…
  • Category: Standards Track, which means it's an official Internet standard πŸŽ€
  • Date: March 2012 🌸
  • Updates: RFC 2328 (this one changes OSPFv2 a bit, so 2328 is the one getting the glow-up πŸ”₯)
  • Obsoletes: nothing is listed in the title block 🧚
  • ISSN: 2070-1721

Abstract

okay so OSPFv3 already has a way to run multiple instances of the protocol on the same interface πŸ¦‹ and OSPFv2 can borrow that idea so you can have multiple routing domains sitting on the same subnet. lowkey iconic πŸ’œ

this doc introduces the OSPFv2 Instance ID, which is what lets separate OSPFv2 instances share one interface. the main difference from OSPFv3 is that over there the Instance ID can do multiple jobs (like putting the same interface into multiple areas), but in OSPFv2 it's strictly for telling protocol instances apart. no side quests πŸ™…β€β™€οΈ

this document updates RFC 2328. ✨

Status of This Memo

this is an Internet Standards Track document πŸŽ€

it's a product of the Internet Engineering Task Force (IETF), it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication. if you want more info on Internet Standards, check Section 2 of RFC 5741 πŸ“š

info about the current status of this doc, any errata, and how to send feedback is over at http://www.rfc-editor.org/info/rfc6549 πŸ”—

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. ⭐

this document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stood on the publication date. please actually read these, because they spell out your rights and restrictions for this doc 🫢

if you pull Code Components out of this document, they have to include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License says πŸ’…

Table of Contents

1. Introduction ....................................................2
   1.1. Requirements Notation ......................................3
2. OSPFv2 Instance Packet Encoding .................................3
3. OSPFv2 Interface Instance ID ....................................4
   3.1. Sending and Receiving OSPFv2 Packets .......................4
   3.2. Interface Instance ID Values ...............................4
4. State Sharing Optimizations between OSPFv2 Instances ............5
5. OSPFv2 Authentication Impacts ...................................5
6. Backward Compatibility and Deployment Considerations ............5
7. Security Considerations .........................................6
8. IANA Considerations .............................................6
9. References ......................................................7
   9.1. Normative References .......................................7
   9.2. Informative References .....................................7
Appendix A. Acknowledgments.... ....................................8

1. Introduction 🌈

OSPFv3 [OSPFV3] has a mechanism for running multiple instances of a protocol on one interface. OSPFv2 [OSPFV2] can use that same mechanism to support multiple routing domains on a single subnet. the glow-up is real πŸ¦‹

this document defines the OSPFv2 Instance ID to let separate OSPFv2 protocol instances live on the same interface. again, OSPFv3's Instance ID can be used for multiple purposes, like putting one interface into several areas. OSPFv2's Instance ID is reserved for identifying protocol instances, and that's it πŸ’–

1.1. Requirements Notation

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC-KEYWORDS]. these words carry their official meanings, so read them carefully πŸ™ˆ

2. OSPFv2 Instance Packet Encoding πŸŽ€

this document extends OSPFv2 so that packets for different instances, sent and received on the same interface, can be told apart. to make that work, the packet header changes: the Authentication Type field gets split into an Instance ID and an AuType πŸ’…

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version #   |     Type      |         Packet length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Router ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Area ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Checksum             |  Instance ID  |  AuType       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Authentication                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        The OSPFv2 Packet Header

all the fields work exactly as defined in [OSPFV2], with two changes. first, there's a brand-new Instance ID field. second, AuType shrinks from 16 bits to 8 bits, and its meaning stays the same ✨ here's the Instance ID field:

Instance ID

  • it lets multiple OSPFv2 instances run on a single interface 🧚
  • each protocol instance gets its own Instance ID, and the Instance ID only matters on the local subnet 🌸
  • received packets whose Instance ID doesn't match any of the configured OSPFv2 Instances for the receiving interface MUST be discarded. no exceptions, bestie πŸ™…β€β™€οΈ

3. OSPFv2 Interface Instance ID πŸ’œ

Section 9 of [OSPFV2] describes the conceptual interface data structure. this document adds the OSPFv2 Interface Instance ID to that structure πŸ¦‹ by default it's 0, and you can set it to a non-zero value through configuration.

3.1. Sending and Receiving OSPFv2 Packets πŸ“¬

when you send an OSPFv2 packet, the OSPFv2 Interface Instance ID goes into the OSPFv2 packet header. when you receive one, the OSPFv2 Header Instance ID is used to demultiplex the packet and link it to the right OSPFv2 instance 🫢 packets with an Instance ID that doesn't match one of the configured OSPFv2 Instance IDs on the receiving interface MUST be discarded πŸ’€

3.2. Interface Instance ID Values πŸ“

these are the OSPFv2 Instance IDs that have been defined so far:

0      Base IPv4 Instance - This is the default IPv4 routing instance
       corresponding to default IPv4 unicast routing and the
       attendant IPv4 routing table.  Use of this Instance ID
       provides backward compatibility with the base OSPF
       specification [OSPFV2].

1      Base IPv4 Multicast Instance - This IPv4 instance corresponds
       to the separate IPv4 routing table used for the Reverse Path
       Forwarding (RPF) checking performed on IPv4 multicast traffic.

2      Base IPv4 In-band Management Instance - This IPv4 instance
       corresponds to a separate IPv4 routing table used for network
       management applications.

3-127  Private Use - These Instance IDs are reserved for definition
       and semantics defined by the local network administrator.  For
       example, separate Interface Instance IDs and their
       corresponding OSPFv2 instances could be used to support
       independent non-congruent topologies for different classes of
       IPv4 unicast traffic.  The details of such deployments are
       beyond the scope of this document.

the first three Interface Instance IDs are analogous to the topology IDs defined in [RFC4915]. 🌈

🧡 to be continued...

8. IANA Considerations πŸŽ€

okay so the AuType field got a glow-up and went from 16 octets down to 8 octets πŸ’… ✨ This changes the OSPF Authentication Codes registry: the values 256-65535 are no longer defined and are therefore deprecated πŸ₯€ No backward compatibility drama here, bestie, because that range was previously defined as "Reserved and should not be assigned" 🫢

Also, a brand new registry was created just for OSPFv2 Instance IDs πŸ¦‹ The initial allocation is listed below, and you can check Section 3.2 for more details 🌸

+-------------+----------------------+--------------------+
| Value/Range | Designation          | Assignment Policy  |
+-------------+----------------------+--------------------+
| 0           | Base IPv4 Unicast    | Assigned           |
|             | Instance             |                    |
|             |                      |                    |
| 1           | Base IPv4 Multicast  | Assigned           |
|             | Instance             |                    |
|             |                      |                    |
| 2           | Base IPv4 In-band    | Assigned           |
|             | Management Instance  |                    |
|             |                      |                    |
| 3-127       | Private Use          | Reserved for local |
|             |                      | policy assignment  |
|             |                      |                    |
| 128-255     | Unassigned           | Standards Action   |
+-------------+----------------------+--------------------+

                      OSPFv2 Instance ID

9. References πŸ“š

9.1. Normative References πŸ’œ

[OSPFV2]   Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.

[OSPFV3]   Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
           for IPv6", RFC 5340, July 2008.

[RFC-KEYWORDS]
           Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

9.2. Informative References 🌈

[OSPF-MIB] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed.,
           Coltun, R., and F. Baker, "OSPF Version 2 Management
           Information Base", RFC 4750, December 2006.

[RFC3413]  Levi, D., Meyer, P., and B. Stewart, "Simple Network
           Management Protocol (SNMP) Applications", STD 62, RFC
           3413, December 2002.

[RFC4915]  Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P.
           Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", RFC
           4915, June 2007.

[RFC5709]  Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M.,
           Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic
           Authentication", RFC 5709, October 2009.

Appendix A. Acknowledgments 🫢

Huge thanks to Adrian Farrel for reviewing and suggesting improvements during the IESG review ✨

Thanks to Paul Wells for commenting on the backward compatibility issues πŸ’–

Thanks to Paul Wells and Vladica Stanisic for commenting during the OSPF WG last call 🌸

Thanks to Manav Bhatia for comments and for being the document shepherd πŸ‘‘

Thanks to Magnus Nystrom for comments under the auspices of the Security Directorate review πŸ”

Thanks to Dan Romascanu for comments during the IESG review 🧚

Thanks to Pete McCann for comments under the auspices of the Gen-ART review πŸ¦‹

Authors' Addresses πŸ’…

Acee Lindem Ericsson 102 Carric Bend Court Cary, NC 27519 USA

EMail: acee.lindem@ericsson.com

Abhay Roy Cisco Systems 225 West Tasman Drive San Jose, CA 95134 USA

EMail: akr@cisco.com

Sina Mirtorabi Cisco Systems 3 West Plumeria Drive San Jose, CA 95134 USA

EMail: sina@cisco.com

πŸ“¦ where this page comes from