| < draft-ietf-mospf-mospf-00.txt | draft-ietf-mospf-mospf-01.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Moy | Network Working Group J. Moy | |||
| Internet Draft Ascend Communications, Inc. | Internet Draft Ascend Communications, Inc. | |||
| Expiration Date: February 1999 August 1998 | Expiration Date: May 1999 December 1998 | |||
| File name: draft-ietf-mospf-mospf-00.txt | File name: draft-ietf-mospf-mospf-01.txt | |||
| Multicast Extensions to OSPF | Multicast Extensions to OSPF | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft. Internet-Drafts are working | This document is an Internet-Draft. Internet-Drafts are working | |||
| documents of the Internet Engineering Task Force (IETF), its areas, | documents of the Internet Engineering Task Force (IETF), its areas, | |||
| and its working groups. Note that other groups may also distribute | and its working groups. Note that other groups may also distribute | |||
| working documents as Internet-Drafts. | working documents as Internet-Drafts. | |||
| skipping to change at page 4, line 43 ¶ | skipping to change at page 4, line 43 ¶ | |||
| C Sample datagram shortest-path trees ................... 92 | C Sample datagram shortest-path trees ................... 92 | |||
| C.1 An intra-area tree .................................... 93 | C.1 An intra-area tree .................................... 93 | |||
| C.2 The effect of areas ................................... 95 | C.2 The effect of areas ................................... 95 | |||
| C.3 The effect of virtual links ........................... 96 | C.3 The effect of virtual links ........................... 96 | |||
| D Differences from RFC 1584 ............................. 97 | D Differences from RFC 1584 ............................. 97 | |||
| D.1 Bug Fixes ............................................. 97 | D.1 Bug Fixes ............................................. 97 | |||
| D.1.1 Merging datagram shortest-path trees .................. 97 | D.1.1 Merging datagram shortest-path trees .................. 97 | |||
| D.1.2 Candidate list initialization for stub areas .......... 97 | D.1.2 Candidate list initialization for stub areas .......... 97 | |||
| D.1.3 Sources on multiply addressed segments ................ 97 | D.1.3 Sources on multiply addressed segments ................ 97 | |||
| D.1.4 Local group database modifications .................... 98 | D.1.4 Local group database modifications .................... 98 | |||
| D.1.5 Setting the W-bit in backbone router-LSAs ............. 98 | ||||
| D.1.6 Post-processing a cache entry's outgoing interfaces ... 98 | ||||
| D.2 Changes required by RFC 2328 .......................... 98 | D.2 Changes required by RFC 2328 .......................... 98 | |||
| D.2.1 Deleting the TOS routing option ....................... 98 | D.2.1 Deleting the TOS routing option ....................... 98 | |||
| D.2.2 Giving more-specific sources precedence ............... 98 | D.2.2 Giving more-specific sources precedence ............... 98 | |||
| D.3 Changes required by IGMPv2 ............................ 98 | D.3 Changes required by IGMPv2 ............................ 98 | |||
| D.4 Clarifications ........................................ 99 | D.4 Clarifications ........................................ 99 | |||
| Security Considerations .............................. 100 | Security Considerations .............................. 100 | |||
| Author's Address ..................................... 100 | Author's Address ..................................... 100 | |||
| 1. Introduction | 1. Introduction | |||
| This memo documents enhancements to OSPF Version 2 to support IP | This memo documents enhancements to OSPF Version 2 to support IP | |||
| skipping to change at page 12, line 39 ¶ | skipping to change at page 12, line 39 ¶ | |||
| state advertisements, the group-membership-LSA is flooded | state advertisements, the group-membership-LSA is flooded | |||
| throughout the Autonomous System. A MOSPF router's group- | throughout the Autonomous System. A MOSPF router's group- | |||
| membership-LSA for Group A lists those local transit | membership-LSA for Group A lists those local transit | |||
| vertices (i.e., the router itself and/or any directly | vertices (i.e., the router itself and/or any directly | |||
| connected transit networks) that should not be pruned from | connected transit networks) that should not be pruned from | |||
| Group A's datagram shortest-path trees. The router lists | Group A's datagram shortest-path trees. The router lists | |||
| itself in its group-membership-LSA for Group A if either 1) | itself in its group-membership-LSA for Group A if either 1) | |||
| one or more of the router's attached stub networks contain | one or more of the router's attached stub networks contain | |||
| Group A members or 2) the router itself is a member of Group | Group A members or 2) the router itself is a member of Group | |||
| A. The router lists a directly connected transit network in | A. The router lists a directly connected transit network in | |||
| the group-membership-LSA for Group A if both 1) the router | ||||
| Router local group database | Router local group database | |||
| ____________________________________________________ | ____________________________________________________ | |||
| RT1 [Group B, N1], [Group B, N3] | RT1 [Group B, N1], [Group B, N3] | |||
| RT2 [Group A, N2], [Group B, N2], [Group B, N3] | RT2 [Group A, N2], [Group B, N2], [Group B, N3] | |||
| RT3 [Group B, N3] | RT3 [Group B, N3] | |||
| RT4 [Group B, N3] | RT4 [Group B, N3] | |||
| Table 1: Sample local group databases | Table 1: Sample local group databases | |||
| the group-membership-LSA for Group A if both 1) the router | ||||
| is Designated Router on the network and 2) the network | is Designated Router on the network and 2) the network | |||
| contains one or more Group A members. | contains one or more Group A members. | |||
| In Figure 1, if Router RT3 has been elected Designated | In Figure 1, if Router RT3 has been elected Designated | |||
| Router for Network N3, then each of the routers RT1, RT2 and | Router for Network N3, then each of the routers RT1, RT2 and | |||
| RT3 will originate a group-membership-LSA for Group B. In | RT3 will originate a group-membership-LSA for Group B. In | |||
| addition, RT2 will also be originating a group-membership- | addition, RT2 will also be originating a group-membership- | |||
| LSA for Group A. RT1 and RT2's group-membership-LSAs will | LSA for Group A. RT1 and RT2's group-membership-LSAs will | |||
| list solely the routers themselves (N1 and N2 are stub | list solely the routers themselves (N1 and N2 are stub | |||
| networks). RT3's group-membership-LSA will list the transit | networks). RT3's group-membership-LSA will list the transit | |||
| skipping to change at page 14, line 4 ¶ | skipping to change at page 13, line 51 ¶ | |||
| datagram's shortest-path tree is a pruned shortest-path tree | datagram's shortest-path tree is a pruned shortest-path tree | |||
| rooted at the datagram's source. Two datagrams having | rooted at the datagram's source. Two datagrams having | |||
| differing [source net, multicast destination] pairs may | differing [source net, multicast destination] pairs may | |||
| have, and in fact probably will have, different pruned | have, and in fact probably will have, different pruned | |||
| shortest-path trees. | shortest-path trees. | |||
| A datagram's shortest path tree is built "on demand"[3], | A datagram's shortest path tree is built "on demand"[3], | |||
| i.e., when the first multicast datagram is received having a | i.e., when the first multicast datagram is received having a | |||
| particular [source net, multicast destination] combination. | particular [source net, multicast destination] combination. | |||
| To build the datagram's shortest-path tree, the following | To build the datagram's shortest-path tree, the following | |||
| calculations are performed. First, the datagram's source IP | ||||
| **FROM** | **FROM** | |||
| |RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT| | |RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT|RT| | |||
| |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|N3|N6|N8|N9| | |1 |2 |3 |4 |5 |6 |7 |8 |9 |10|11|12|N3|N6|N8|N9| | |||
| ----- --------------------------------------------- | ----- --------------------------------------------- | |||
| RT1| | | | | | | | | | | | |0 | | | | | RT1| | | | | | | | | | | | |0 | | | | | |||
| RT2| | | | | | | | | | | | |0 | | | | | RT2| | | | | | | | | | | | |0 | | | | | |||
| RT3| | | | | |6 | | | | | | |0 | | | | | RT3| | | | | |6 | | | | | | |0 | | | | | |||
| RT4| | | | |8 | | | | | | | |0 | | | | | RT4| | | | |8 | | | | | | | |0 | | | | | |||
| RT5| | | |8 | |6 |6 | | | | | | | | | | | RT5| | | |8 | |6 |6 | | | | | | | | | | | |||
| skipping to change at page 15, line 5 ¶ | skipping to change at page 15, line 5 ¶ | |||
| Figure 2: The MOSPF database. | Figure 2: The MOSPF database. | |||
| Networks and routers are represented by vertices. | Networks and routers are represented by vertices. | |||
| An edge of cost X connects Vertex A to Vertex B iff | An edge of cost X connects Vertex A to Vertex B iff | |||
| the intersection of Column A and Row B is marked | the intersection of Column A and Row B is marked | |||
| with an X. In addition, RT1, RT2 and N3 are labelled | with an X. In addition, RT1, RT2 and N3 are labelled | |||
| with multicast group A and RT1, N6 and RT9 are | with multicast group A and RT1, N6 and RT9 are | |||
| labelled with multicast group B. | labelled with multicast group B. | |||
| calculations are performed. First, the datagram's source IP | ||||
| network is located in the link state database. Then using | network is located in the link state database. Then using | |||
| the router-LSAs and network-LSAs in the link state database, | the router-LSAs and network-LSAs in the link state database, | |||
| a shortest-path tree is built having the source network as | a shortest-path tree is built having the source network as | |||
| root. To complete the process, the branches that do not | root. To complete the process, the branches that do not | |||
| contain routers/transit networks that have been labelled | contain routers/transit networks that have been labelled | |||
| with the particular multicast destination (via a group- | with the particular multicast destination (via a group- | |||
| membership-LSA) are pruned from the tree. | membership-LSA) are pruned from the tree. | |||
| As an example of the building of a datagram's shortest path | As an example of the building of a datagram's shortest path | |||
| tree, again consider the Autonomous System in Figure 1. The | tree, again consider the Autonomous System in Figure 1. The | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at page 15, line 49 ¶ | |||
| would be indicated by a forwarding cache entry having no | would be indicated by a forwarding cache entry having no | |||
| upstream node or an empty list of downstream interfaces. | upstream node or an empty list of downstream interfaces. | |||
| As an example of a router describing its position on the | As an example of a router describing its position on the | |||
| datagram's shortest-path tree, consider Router RT10 in | datagram's shortest-path tree, consider Router RT10 in | |||
| Figure 3. Router RT10's upstream node for the datagram is | Figure 3. Router RT10's upstream node for the datagram is | |||
| Router RT6, and there are two downstream interfaces: one | Router RT6, and there are two downstream interfaces: one | |||
| connecting to Network N6 and the other connecting to Network | connecting to Network N6 and the other connecting to Network | |||
| N8. | N8. | |||
| 2.3.3. Support for Non-broadcast networks | ||||
| When forwarding multicast datagrams over non-broadcast | ||||
| networks, the datagram cannot be sent as a link-level | ||||
| o RT3 (N4, origin) | o RT3 (N4, origin) | |||
| / \ | / \ | |||
| 1/ \8 | 1/ \8 | |||
| / \ | / \ | |||
| N3 (Mb) o o RT6 | N3 (Mb) o o RT6 | |||
| / \ | / \ | |||
| 0/ \7 | 0/ \7 | |||
| / \ | / \ | |||
| RT2 (Ma,Mb) o o RT10 | RT2 (Ma,Mb) o o RT10 | |||
| / \ | / \ | |||
| skipping to change at page 16, line 34 ¶ | skipping to change at page 16, line 33 ¶ | |||
| / | / | |||
| N9 o | N9 o | |||
| / | / | |||
| 0/ | 0/ | |||
| / | / | |||
| RT9 (Ma) o | RT9 (Ma) o | |||
| Figure 3: Sample datagram's shortest-path tree, | Figure 3: Sample datagram's shortest-path tree, | |||
| source N4, destination Group A | source N4, destination Group A | |||
| 2.3.3. Support for Non-broadcast networks | ||||
| When forwarding multicast datagrams over non-broadcast | ||||
| networks, the datagram cannot be sent as a link-level | ||||
| multicast (since neither link-level multicast nor broadcast | multicast (since neither link-level multicast nor broadcast | |||
| are supported on these networks), but must instead be | are supported on these networks), but must instead be | |||
| forwarded separately to specific neighbors. To facilitate | forwarded separately to specific neighbors. To facilitate | |||
| this, forwarding cache entries can also contain downstream | this, forwarding cache entries can also contain downstream | |||
| neighbors as well as downstream interfaces. | neighbors as well as downstream interfaces. | |||
| The IGMP protocol is not defined over non-broadcast | The IGMP protocol is not defined over non-broadcast | |||
| networks. For this reason, there cannot be group members | networks. For this reason, there cannot be group members | |||
| directly attached to non-broadcast networks, nor do non- | directly attached to non-broadcast networks, nor do non- | |||
| broadcast networks ever appear in local group database | broadcast networks ever appear in local group database | |||
| skipping to change at page 18, line 35 ¶ | skipping to change at page 18, line 31 ¶ | |||
| (reflected by a change in group-membership-LSAs), all cache | (reflected by a change in group-membership-LSAs), all cache | |||
| entries associated with the particular multicast destination | entries associated with the particular multicast destination | |||
| group must be cleared. Other than these two cases, | group must be cleared. Other than these two cases, | |||
| forwarding cache entries need not ever be deleted or | forwarding cache entries need not ever be deleted or | |||
| otherwise modified; in particular, the forwarding cache | otherwise modified; in particular, the forwarding cache | |||
| entries do not have to be aged. However, forwarding cache | entries do not have to be aged. However, forwarding cache | |||
| entries can be freely deleted after some period of | entries can be freely deleted after some period of | |||
| inactivity (i.e., garbage collected), if router memory | inactivity (i.e., garbage collected), if router memory | |||
| resources are in short supply. | resources are in short supply. | |||
| 3. Inter-area multicasting | ||||
| Up to this point this memo has discussed multicast forwarding when | ||||
| the entire Autonomous System is a single OSPF area. The logic for | ||||
| when the multicast datagram's source and its destination group | ||||
| members belong to the same OSPF area is the same. This section | ||||
| Router Upstream Downstream interfaces | Router Upstream Downstream interfaces | |||
| node (interface:hops) | node (interface:hops) | |||
| ___________________________________________ | ___________________________________________ | |||
| RT10 Router RT6 (N6:1), (N8:2) | RT10 Router RT6 (N6:1), (N8:2) | |||
| RT11 Net N8 (N9:1) | RT11 Net N8 (N9:1) | |||
| RT3 Net N4 (N3:1), (RT6:3) | RT3 Net N4 (N3:1), (RT6:3) | |||
| RT6 Router RT3 (RT10:2) | RT6 Router RT3 (RT10:2) | |||
| RT2 Net N3 (N2:1) | RT2 Net N3 (N2:1) | |||
| Table 2: Sample forwarding cache entries, | Table 2: Sample forwarding cache entries, | |||
| for source N4 and destination Group A. | for source N4 and destination Group A. | |||
| 3. Inter-area multicasting | ||||
| Up to this point this memo has discussed multicast forwarding when | ||||
| the entire Autonomous System is a single OSPF area. The logic for | ||||
| when the multicast datagram's source and its destination group | ||||
| members belong to the same OSPF area is the same. This section | ||||
| explains the behavior of the MOSPF protocol when the datagram's | explains the behavior of the MOSPF protocol when the datagram's | |||
| source and (at least some of) its destination group members belong | source and (at least some of) its destination group members belong | |||
| to different OSPF areas. This situation is called inter-area | to different OSPF areas. This situation is called inter-area | |||
| multicast. | multicast. | |||
| Inter-area multicast brings up the following issues, which are | Inter-area multicast brings up the following issues, which are | |||
| resolved in succeeding sections: | resolved in succeeding sections: | |||
| o Are the group-membership-LSAs specific to a single area? And if | o Are the group-membership-LSAs specific to a single area? And if | |||
| they are, how is group membership information conveyed from one | they are, how is group membership information conveyed from one | |||
| skipping to change at page 20, line 8 ¶ | skipping to change at page 20, line 5 ¶ | |||
| Figure 4 as an example. This figure, taken from the OSPF | Figure 4 as an example. This figure, taken from the OSPF | |||
| specification, shows an Autonomous System split into three areas | specification, shows an Autonomous System split into three areas | |||
| (Area 1, Area 2 and Area 3). A single backbone area has been | (Area 1, Area 2 and Area 3). A single backbone area has been | |||
| configured (everything outside of the shading). Since the backbone | configured (everything outside of the shading). Since the backbone | |||
| area must be contiguous, a single virtual link has been configured | area must be contiguous, a single virtual link has been configured | |||
| between the area border routers RT10 and RT11. Additionally, an area | between the area border routers RT10 and RT11. Additionally, an area | |||
| address range has been configured in Router RT11 so that Networks | address range has been configured in Router RT11 so that Networks | |||
| N9-N11 and Host H1 will be reported as a single route outside of | N9-N11 and Host H1 will be reported as a single route outside of | |||
| Area 3 (via summary-LSAs). | Area 3 (via summary-LSAs). | |||
| 3.1. Extent of group-membership-LSAs | ||||
| Group-membership-LSAs are specific to a single OSPF area. This | ||||
| means that, just as with OSPF router-LSAs, network-LSAs and | ||||
| summary-LSAs, a group-membership-LSA is flooded throughout a | ||||
| single area only[6]. A router attached to multiple areas (i.e., | ||||
| an area border router) may end up originating several group- | ||||
| membership-LSAs concerning a single multicast destination, one | ||||
| for each attached area. However, as we will see below, the | ||||
| contents of these group-membership-LSAs will vary depending on | ||||
| their associated areas. | ||||
| Just as in OSPF, each MOSPF area has its own link state | ||||
| database. The MOSPF database is simply the OSPF link state | ||||
| database enhanced by the group-membership-LSAs. Consider again | ||||
| the area configuration pictured in Figure 4. The result of | ||||
| adding the group-membership-LSAs to the area databases yields | ||||
| the databases pictured in Figures 6 and 7. Figure 6 shows Area | ||||
| 1's MOSPF database. RT1, RT2 and N3 are labelled with multicast | ||||
| group A, RT1 is labelled with multicast group B, and both RT3 | ||||
| and RT4 are labelled as wild-card multicast receivers. Summary- | ||||
| LSAs and ASE-external-LSAs are also included, as links | ||||
| originating from routers RT3 and RT4, and from routers RT5 and | ||||
| RT7, respectively. | ||||
| Similarly, Figure 7 shows the backbone's MOSPF database. Note | ||||
| that Router RT11 has condensed its routes to Networks N9-N11 and | ||||
| Host H1 into a single summary-LSA. | ||||
| Suppose an OSPF router has a local group database entry for | ||||
| [Group Y, Network X], and that the router has been elected | ||||
| Designated Router on Network X. The router then originates a | ||||
| group-membership-LSA for Group Y into the area containing | ||||
| Network X. For example, in the area configuration pictured in | ||||
| Figure 4, Router RT1 originates a group-membership-LSA for Group | ||||
| B. This group-membership-LSA is flooded throughout Area 1, and | ||||
| no further. Likewise, assuming that Router RT3 has been elected | ||||
| Designated Router for Network N3, RT3 originates a group- | ||||
| membership-LSA into Area 1 listing the transit Network N3 as | ||||
| having group members. Note that in the link state database for | ||||
| Area 1 (Figure 6) both Router RT1 and Network N3 have | ||||
| accordingly been labelled with Group B. | ||||
| .................................. | .................................. | |||
| . + . | . + . | |||
| . | 3+---+ +--+ +--+ . N12 N14 | . | 3+---+ +--+ +--+ . N12 N14 | |||
| . N1|--|RT1|\1 |Mb| |H4| . \ N13 / | . N1|--|RT1|\1 |Mb| |H4| . \ N13 / | |||
| . _| +---+ \ +--+ /+--+ . 8\ |8/8 | . _| +---+ \ +--+ /+--+ . 8\ |8/8 | |||
| . | + \ _|__/ . \|/ | . | + \ _|__/ . \|/ | |||
| . +--+ +--+ / \ 1+---+8. 8+---+6 | . +--+ +--+ / \ 1+---+8. 8+---+6 | |||
| . |Mb| |Mb| * N3 *---|RT4|------|RT5|--------+ | . |Mb| |Mb| * N3 *---|RT4|------|RT5|--------+ | |||
| . +--+ /+--+ \____/ +---+ . +---+ | | . +--+ /+--+ \____/ +---+ . +---+ | | |||
| . + / | . |7 | | . + / | . |7 | | |||
| skipping to change at page 22, line 4 ¶ | skipping to change at page 21, line 4 ¶ | |||
| . +--+ 10+----+ ..N8 +---+ . | . +--+ 10+----+ ..N8 +---+ . | |||
| . |H1|-----|RT12| .. |RT8| . | . |H1|-----|RT12| .. |RT8| . | |||
| . +--+SLIP +----+ .. +---+ +--+. | . +--+SLIP +----+ .. +---+ +--+. | |||
| . |2 .. |4 _|H5|. | . |2 .. |4 _|H5|. | |||
| . | .. | / +--+. | . | .. | / +--+. | |||
| . +---------+ .. +--------+ . | . +---------+ .. +--------+ . | |||
| . N10 Area 3..Area 2 N7 . | . N10 Area 3..Area 2 N7 . | |||
| ............................................................. | ............................................................. | |||
| Figure 4: A sample MOSPF area configuration | Figure 4: A sample MOSPF area configuration | |||
| 3.1. Extent of group-membership-LSAs | ||||
| Group-membership-LSAs are specific to a single OSPF area. This | ||||
| means that, just as with OSPF router-LSAs, network-LSAs and | ||||
| summary-LSAs, a group-membership-LSA is flooded throughout a | ||||
| single area only[6]. A router attached to multiple areas (i.e., | ||||
| an area border router) may end up originating several group- | ||||
| membership-LSAs concerning a single multicast destination, one | ||||
| for each attached area. However, as we will see below, the | ||||
| contents of these group-membership-LSAs will vary depending on | ||||
| their associated areas. | ||||
| Just as in OSPF, each MOSPF area has its own link state | ||||
| database. The MOSPF database is simply the OSPF link state | ||||
| database enhanced by the group-membership-LSAs. Consider again | ||||
| the area configuration pictured in Figure 4. The result of | ||||
| adding the group-membership-LSAs to the area databases yields | ||||
| the databases pictured in Figures 6 and 7. Figure 6 shows Area | ||||
| 1's MOSPF database. RT1, RT2 and N3 are labelled with multicast | ||||
| group A, RT1 is labelled with multicast group B, and both RT3 | ||||
| and RT4 are labelled as wild-card multicast receivers. Summary- | ||||
| LSAs and ASE-external-LSAs are also included, as links | ||||
| originating from routers RT3 and RT4, and from routers RT5 and | ||||
| RT7, respectively. | ||||
| Similarly, Figure 7 shows the backbone's MOSPF database. Note | ||||
| that Router RT11 has condensed its routes to Networks N9-N11 and | ||||
| Host H1 into a single summary-LSA. | ||||
| Suppose an OSPF router has a local group database entry for | ||||
| [Group Y, Network X], and that the router has been elected | ||||
| Designated Router on Network X. The router then originates a | ||||
| group-membership-LSA for Group Y into the area containing | ||||
| Network X. For example, in the area configuration pictured in | ||||
| Figure 4, Router RT1 originates a group-membership-LSA for Group | ||||
| B. This group-membership-LSA is flooded throughout Area 1, and | ||||
| no further. Likewise, assuming that Router RT3 has been elected | ||||
| Designated Router for Network N3, RT3 originates a group- | ||||
| membership-LSA into Area 1 listing the transit Network N3 as | ||||
| having group members. Note that in the link state database for | ||||
| Area 1 (Figure 6) both Router RT1 and Network N3 have | ||||
| accordingly been labelled with Group B. | ||||
| In OSPF, the area border routers forward routing information and | In OSPF, the area border routers forward routing information and | |||
| data traffic between areas. In MOSPF. a subset of the area | data traffic between areas. In MOSPF. a subset of the area | |||
| border routers, called the inter-area multicast forwarders, | border routers, called the inter-area multicast forwarders, | |||
| forward group membership information and multicast datagrams | forward group membership information and multicast datagrams | |||
| between areas. Whether a given OSPF area border router is also a | between areas. Whether a given OSPF area border router is also a | |||
| MOSPF inter-area multicast forwarder is configuration dependent | MOSPF inter-area multicast forwarder is configuration dependent | |||
| (see Section B.1). In Figure 4 we assume that all area border | (see Section B.1). In Figure 4 we assume that all area border | |||
| routers are also inter-area multicast forwarders. | routers are also inter-area multicast forwarders. | |||
| In order to convey group membership information between areas, | In order to convey group membership information between areas, | |||
| skipping to change at page 22, line 40 ¶ | skipping to change at page 22, line 35 ¶ | |||
| MOSPF is asymmetric. While a non-backbone area's group | MOSPF is asymmetric. While a non-backbone area's group | |||
| membership is summarized to the backbone, this information is | membership is summarized to the backbone, this information is | |||
| not then readvertised into other non-backbone areas. Nor is the | not then readvertised into other non-backbone areas. Nor is the | |||
| backbone's group membership summarized for the non-backbone | backbone's group membership summarized for the non-backbone | |||
| areas. Going back to the example in Figure 4, while the presence | areas. Going back to the example in Figure 4, while the presence | |||
| of Area 3's group (Group A) is advertised to the backbone, this | of Area 3's group (Group A) is advertised to the backbone, this | |||
| information is not then redistributed to Area 1. In other words, | information is not then redistributed to Area 1. In other words, | |||
| routers internal to Area 1 have no idea of Area 3's group | routers internal to Area 1 have no idea of Area 3's group | |||
| membership. | membership. | |||
| At this point, if no extra functionality was added to MOSPF, | ||||
| multicast traffic originating in Area 1 destined for Multicast | ||||
| Group A would never be forwarded to those Group A members in | ||||
| Area 3. To accomplish this, the notion of wild-card multicast | ||||
| membership +------------------+ datagrams | membership +------------------+ datagrams | |||
| + > > > >>| Backbone |< < < < + | + > > > >>| Backbone |< < < < + | |||
| ^ +------------------+ ^ | ^ +------------------+ ^ | |||
| ^ / | \ ^ | ^ / | \ ^ | |||
| ^ / | \ ^ | ^ / | \ ^ | |||
| +----^-----+/ +----------+ \+----^-----+ | +----^-----+/ +----------+ \+----^-----+ | |||
| | Area 1 | | Area 2 | | Area 3 | | | Area 1 | | Area 2 | | Area 3 | | |||
| +----------+ +----------+ +----------+ | +----------+ +----------+ +----------+ | |||
| Figure 5: Inter-area routing architecture | Figure 5: Inter-area routing architecture | |||
| At this point, if no extra functionality was added to MOSPF, | ||||
| multicast traffic originating in Area 1 destined for Multicast | ||||
| Group A would never be forwarded to those Group A members in | ||||
| Area 3. To accomplish this, the notion of wild-card multicast | ||||
| receivers is introduced. A wild-card multicast receiver is a | receivers is introduced. A wild-card multicast receiver is a | |||
| router to which all multicast traffic, regardless of multicast | router to which all multicast traffic, regardless of multicast | |||
| destination, should be forwarded. A router's wild-card multicast | destination, should be forwarded. A router's wild-card multicast | |||
| reception status is per-area. In non-backbone areas, all inter- | reception status is per-area. In non-backbone areas, all inter- | |||
| area multicast forwarders[7] are wild-card multicast receivers. | area multicast forwarders[7] are wild-card multicast receivers. | |||
| This ensures that all multicast traffic originating in a non- | This ensures that all multicast traffic originating in a non- | |||
| backbone area will be forwarded to its inter-area multicast | backbone area will be forwarded to its inter-area multicast | |||
| forwarders, and hence to the backbone area. Since the backbone | forwarders, and hence to the backbone area. Since the backbone | |||
| has complete knowledge of all areas' group membership, the | has complete knowledge of all areas' group membership, the | |||
| datagram can then be forwarded to all group members. Note that | datagram can then be forwarded to all group members. Note that | |||
| skipping to change at page 24, line 5 ¶ | skipping to change at page 23, line 48 ¶ | |||
| use of wild-card multicast receivers and OSPF summary-LSAs. | use of wild-card multicast receivers and OSPF summary-LSAs. | |||
| When it first receives a datagram for a particular [source net, | When it first receives a datagram for a particular [source net, | |||
| destination group] pair, a router calculates a separate datagram | destination group] pair, a router calculates a separate datagram | |||
| shortest-path tree for each of the router's attached areas. Each | shortest-path tree for each of the router's attached areas. Each | |||
| datagram shortest-path tree is built solely from LSAs belonging | datagram shortest-path tree is built solely from LSAs belonging | |||
| to the particular area's link state database. Suppose that a | to the particular area's link state database. Suppose that a | |||
| router is calculating a datagram shortest-path tree for Area A. | router is calculating a datagram shortest-path tree for Area A. | |||
| It is useful then to separate out two cases. | It is useful then to separate out two cases. | |||
| The first case, Case 1: The source of the datagram belongs to | ||||
| Area A has already been described in Section 2.3.2. However, in | ||||
| the presence of OSPF areas, during tree pruning care must be | ||||
| taken so that the branches leading to other areas remain, since | ||||
| **FROM** | **FROM** | |||
| |RT|RT|RT|RT|RT|RT| | |RT|RT|RT|RT|RT|RT| | |||
| |1 |2 |3 |4 |5 |7 |N3| | |1 |2 |3 |4 |5 |7 |N3| | |||
| ----- ------------------- | ----- ------------------- | |||
| RT1| | | | | | |0 | | RT1| | | | | | |0 | | |||
| RT2| | | | | | |0 | | RT2| | | | | | |0 | | |||
| RT3| | | | | | |0 | | RT3| | | | | | |0 | | |||
| * RT4| | | | | | |0 | | * RT4| | | | | | |0 | | |||
| * RT5| | |14|8 | | | | | * RT5| | |14|8 | | | | | |||
| skipping to change at page 25, line 41 ¶ | skipping to change at page 25, line 41 ¶ | |||
| Figure 7: The backbone's MOSPF database. | Figure 7: The backbone's MOSPF database. | |||
| Networks and routers are represented by vertices. | Networks and routers are represented by vertices. | |||
| An edge of cost X connects Vertex A to Vertex B iff | An edge of cost X connects Vertex A to Vertex B iff | |||
| the intersection of Column A and Row B is marked | the intersection of Column A and Row B is marked | |||
| with an X. In addition, RT3 and RT4 are labelled | with an X. In addition, RT3 and RT4 are labelled | |||
| with both multicast groups A and B, and RT7, RT10, | with both multicast groups A and B, and RT7, RT10, | |||
| and RT11 are labelled with multicast group A. | and RT11 are labelled with multicast group A. | |||
| The first case, Case 1: The source of the datagram belongs to | ||||
| Area A has already been described in Section 2.3.2. However, in | ||||
| the presence of OSPF areas, during tree pruning care must be | ||||
| taken so that the branches leading to other areas remain, since | ||||
| it is unknown whether there are group members in these (remote) | it is unknown whether there are group members in these (remote) | |||
| areas. For this reason, only those branches having no group | areas. For this reason, only those branches having no group | |||
| members nor wild-card multicast receivers are pruned when | members nor wild-card multicast receivers are pruned when | |||
| producing the datagram shortest-path tree. | producing the datagram shortest-path tree. | |||
| As an example, suppose in Figure 4 that Host H2 sends a | As an example, suppose in Figure 4 that Host H2 sends a | |||
| multicast datagram to destination Group A. Then the datagram's | multicast datagram to destination Group A. Then the datagram's | |||
| shortest-path tree for Area 1, built identically by all routers | shortest-path tree for Area 1, built identically by all routers | |||
| in Area 1 that receive the datagram, is shown in Figure 8. Note | in Area 1 that receive the datagram, is shown in Figure 8. Note | |||
| that both inter-area multicast forwarders (RT3 and RT4) are on | that both inter-area multicast forwarders (RT3 and RT4) are on | |||
| skipping to change at page 26, line 37 ¶ | skipping to change at page 26, line 33 ¶ | |||
| As an example, suppose again that Host H2 in Figure 4 sends | As an example, suppose again that Host H2 in Figure 4 sends | |||
| a multicast datagram to destination Group A. The datagram's | a multicast datagram to destination Group A. The datagram's | |||
| shortest-path tree for the backbone is shown in Figure 9. | shortest-path tree for the backbone is shown in Figure 9. | |||
| The neighborhood around the source (Network N4) has been | The neighborhood around the source (Network N4) has been | |||
| approximated by the summary links advertised by routers RT3 | approximated by the summary links advertised by routers RT3 | |||
| and RT4. Note that all links in Figure 9's datagram | and RT4. Note that all links in Figure 9's datagram | |||
| shortest-path tree have arrows pointing in the reverse | shortest-path tree have arrows pointing in the reverse | |||
| direction, towards Network N4 instead of away from it. | direction, towards Network N4 instead of away from it. | |||
| The reverse costs used for the entire tree in Case 2 are forced | ||||
| because summary-LSAs only specify the cost towards the datagram | ||||
| source. In the presence of asymmetric link costs, this may lead | ||||
| o RT3 (W, origin=N4) | o RT3 (W, origin=N4) | |||
| | | | | |||
| 1| | 1| | |||
| | | | | |||
| N3 (Mb) o | N3 (Mb) o | |||
| / \ | / \ | |||
| 0/ \0 | 0/ \0 | |||
| / \ | / \ | |||
| RT2 (Ma,Mb) o o RT4 (W) | RT2 (Ma,Mb) o o RT4 (W) | |||
| skipping to change at page 27, line 27 ¶ | skipping to change at page 27, line 27 ¶ | |||
| | | | | |||
| 2| | 2| | |||
| | | | | |||
| RT11 (Ma) o | RT11 (Ma) o | |||
| Figure 9: Datagram shortest-path tree: Backbone, | Figure 9: Datagram shortest-path tree: Backbone, | |||
| source N4, destination Group A. Note that | source N4, destination Group A. Note that | |||
| reverse costs (i.e., toward origin) are | reverse costs (i.e., toward origin) are | |||
| used throughout. | used throughout. | |||
| The reverse costs used for the entire tree in Case 2 are forced | ||||
| because summary-LSAs only specify the cost towards the datagram | ||||
| source. In the presence of asymmetric link costs, this may lead | ||||
| to less efficient routes when forwarding multicasts between | to less efficient routes when forwarding multicasts between | |||
| areas. | areas. | |||
| Those routers attached to multiple areas must calculate multiple | Those routers attached to multiple areas must calculate multiple | |||
| trees and then merge them into a single forwarding cache entry. | trees and then merge them into a single forwarding cache entry. | |||
| As shown in Section 2.3.2, when connected to a single area the | As shown in Section 2.3.2, when connected to a single area the | |||
| router's position on the datagram shortest-path tree determines | router's position on the datagram shortest-path tree determines | |||
| (in large part) its forwarding cache entry. When attached to | (in large part) its forwarding cache entry. When attached to | |||
| multiple areas, and hence calculating multiple datagram | multiple areas, and hence calculating multiple datagram | |||
| shortest-path trees, each tree contributes to the forwarding | shortest-path trees, each tree contributes to the forwarding | |||
| skipping to change at page 30, line 22 ¶ | skipping to change at page 30, line 18 ¶ | |||
| tree indicates that the routers expect the datagram to enter | tree indicates that the routers expect the datagram to enter | |||
| the Autonomous System at Router RT7, and then to enter the | the Autonomous System at Router RT7, and then to enter the | |||
| area at Router RT4. | area at Router RT4. | |||
| Note that in those cases where the "best" inter-AS multicast | Note that in those cases where the "best" inter-AS multicast | |||
| forwarder is not directly attached to the area, the | forwarder is not directly attached to the area, the | |||
| neighborhood of the source is actually approximated by the | neighborhood of the source is actually approximated by the | |||
| concatenation of a summary link and a multicast-capable AS | concatenation of a summary link and a multicast-capable AS | |||
| external link. This is in fact the case in Figure 10. | external link. This is in fact the case in Figure 10. | |||
| In Case 3 (datagram source in another AS) the requirement that | ||||
| all tree links point in the reverse direction (towards the | ||||
| source) accommodates the fact that summary links and AS external | ||||
| links already point in the reverse direction. This also leads to | ||||
| o N12 | o N12 | |||
| | | | | |||
| 2| | 2| | |||
| | | | | |||
| o RT7 | o RT7 | |||
| | | | | |||
| 14| | 14| | |||
| | | | | |||
| o RT4 (W) | o RT4 (W) | |||
| | | | | |||
| skipping to change at page 31, line 5 ¶ | skipping to change at page 31, line 5 ¶ | |||
| / | \ | / | \ | |||
| RT1 (Mb) o | o RT3 (W) | RT1 (Mb) o | o RT3 (W) | |||
| o | o | |||
| RT2 (Ma,Mb) | RT2 (Ma,Mb) | |||
| Figure 10: Datagram shortest-path tree: Area 1, | Figure 10: Datagram shortest-path tree: Area 1, | |||
| source N12, destination Group B. Note that | source N12, destination Group B. Note that | |||
| reverse costs (i.e., toward origin) are | reverse costs (i.e., toward origin) are | |||
| used throughout. | used throughout. | |||
| In Case 3 (datagram source in another AS) the requirement that | ||||
| all tree links point in the reverse direction (towards the | ||||
| source) accommodates the fact that summary links and AS external | ||||
| links already point in the reverse direction. This also leads to | ||||
| the requirement that the inter-AS multicast routing protocol | the requirement that the inter-AS multicast routing protocol | |||
| operate in a reverse path forwarding fashion (see condition 2 of | operate in a reverse path forwarding fashion (see condition 2 of | |||
| Section 4). Note that Reverse path forwarding can lead to sub- | Section 4). Note that Reverse path forwarding can lead to sub- | |||
| optimal routing when costs are configured asymmetrically. And it | optimal routing when costs are configured asymmetrically. And it | |||
| can even lead to non-delivery of multicast datagrams in the case | can even lead to non-delivery of multicast datagrams in the case | |||
| of asymmetric reachability. | of asymmetric reachability. | |||
| Inter-AS multicast forwarders may end up calculating a | Inter-AS multicast forwarders may end up calculating a | |||
| forwarding cache entry's upstream node as being external to the | forwarding cache entry's upstream node as being external to the | |||
| AS. As an example, Router RT7 in Figure 10 will end up | AS. As an example, Router RT7 in Figure 10 will end up | |||
| skipping to change at page 33, line 4 ¶ | skipping to change at page 32, line 48 ¶ | |||
| (pictured as a box containing a question mark) is made, and the | (pictured as a box containing a question mark) is made, and the | |||
| packet is (possibly) forwarded out certain interfaces. If these | packet is (possibly) forwarded out certain interfaces. If these | |||
| interfaces are not capable of receiving their own multicasts, a copy | interfaces are not capable of receiving their own multicasts, a copy | |||
| of the datagram must be internally looped back to appropriately | of the datagram must be internally looped back to appropriately | |||
| joined applications. | joined applications. | |||
| The advantages to the RFC 1112 representation are as follows: | The advantages to the RFC 1112 representation are as follows: | |||
| o It is the standard for the way an IP host joins multicast | o It is the standard for the way an IP host joins multicast | |||
| groups. It is simplest to use the same membership model for | groups. It is simplest to use the same membership model for | |||
| hosts and routers; most would consider an IP router to be a | ||||
| special case of an IP host anyway. | ||||
| +-------+ | +-------+ | |||
| |receive| | |receive| | |||
| +-------+ | +-------+ | |||
| | | | | |||
| |---> To application | |---> To application | |||
| | | | | |||
| +-------------------+ | +-------------------+ | |||
| |forwarding decision| | |forwarding decision| | |||
| +-------------------+ | +-------------------+ | |||
| | | | | |||
| skipping to change at page 33, line 26 ¶ | skipping to change at page 33, line 27 ¶ | |||
| / \------> To application | / \------> To application | |||
| / \ | / \ | |||
| / \ | / \ | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| |transmit| |transmit| | |transmit| |transmit| | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| Figure 11: RFC 1112 representation of internal | Figure 11: RFC 1112 representation of internal | |||
| group membership | group membership | |||
| hosts and routers; most would consider an IP router to be a | ||||
| special case of an IP host anyway. | ||||
| o It is the way group membership has been implemented in BSD UNIX. | o It is the way group membership has been implemented in BSD UNIX. | |||
| Existing multicast applications are written to join multicast | Existing multicast applications are written to join multicast | |||
| groups on specific interfaces. | groups on specific interfaces. | |||
| o The possibility of receiving multiple datagram copies may | o The possibility of receiving multiple datagram copies may | |||
| improve fault tolerance. If the datagram is dropped due to an | improve fault tolerance. If the datagram is dropped due to an | |||
| error on the path to some interface, another interface may still | error on the path to some interface, another interface may still | |||
| receive a copy. | receive a copy. | |||
| o The ability to specify a particular receiving interface may | o The ability to specify a particular receiving interface may | |||
| skipping to change at page 34, line 27 ¶ | skipping to change at page 34, line 24 ¶ | |||
| o The application does not need to have knowledge of the router | o The application does not need to have knowledge of the router | |||
| interfaces. It does not need to know what kind or how many | interfaces. It does not need to know what kind or how many | |||
| interfaces there are; this will be taken care of by the MOSPF | interfaces there are; this will be taken care of by the MOSPF | |||
| protocol itself. | protocol itself. | |||
| o As long as any interface is operational, the application will | o As long as any interface is operational, the application will | |||
| continue to receive multicast datagrams. This happens | continue to receive multicast datagrams. This happens | |||
| automatically, without the application modifying its group | automatically, without the application modifying its group | |||
| membership. | membership. | |||
| o The application receives only one copy of the datagram. Using | ||||
| the RFC1112 representation, whenever an application joins on | ||||
| more than one interface (which must be done if the application | ||||
| +-------+ | +-------+ | |||
| |receive| | |receive| | |||
| +-------+ | +-------+ | |||
| | | | | |||
| | | | | |||
| | | | | |||
| +-------------------+ | +-------------------+ | |||
| |forwarding decision|---> to application | |forwarding decision|---> to application | |||
| +-------------------+ | +-------------------+ | |||
| | | | | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 35, line 4 ¶ | |||
| / \ | / \ | |||
| / \ | / \ | |||
| / \ | / \ | |||
| / \ | / \ | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| |transmit| |transmit| | |transmit| |transmit| | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| Figure 12: MOSPF-specific representation of internal | Figure 12: MOSPF-specific representation of internal | |||
| group membership | group membership | |||
| o The application receives only one copy of the datagram. Using | ||||
| the RFC1112 representation, whenever an application joins on | ||||
| more than one interface (which must be done if the application | ||||
| does not want to rely on a single interface), multiple datagram | does not want to rely on a single interface), multiple datagram | |||
| copies will be received during normal operation. | copies will be received during normal operation. | |||
| 6. Additional capabilities | 6. Additional capabilities | |||
| This section describes the MOSPF configuration options that allow | This section describes the MOSPF configuration options that allow | |||
| routers of differing capabilities to be mixed together in the same | routers of differing capabilities to be mixed together in the same | |||
| routing domain. Note that these options handle special circumstances | routing domain. Note that these options handle special circumstances | |||
| that may not be encountered in normal operation. Default values for | that may not be encountered in normal operation. Default values for | |||
| the configuration settings are specified in Appendix B. | the configuration settings are specified in Appendix B. | |||
| skipping to change at page 38, line 4 ¶ | skipping to change at page 37, line 50 ¶ | |||
| on those router interfaces attaching to the network (see Section | on those router interfaces attaching to the network (see Section | |||
| B.2). As an example, in Figure 13 the routers in AS #2 could be | B.2). As an example, in Figure 13 the routers in AS #2 could be | |||
| configured so that Router C would send the multicast datagram | configured so that Router C would send the multicast datagram | |||
| out onto Network X as a data-link unicast addressed directly to | out onto Network X as a data-link unicast addressed directly to | |||
| Router D. Router D would accept this data-link unicast, but | Router D. Router D would accept this data-link unicast, but | |||
| would reject any data-link multicast forwarded by Router A. This | would reject any data-link multicast forwarded by Router A. This | |||
| would eliminate replication of multicast datagrams downstream | would eliminate replication of multicast datagrams downstream | |||
| from Network X. In addition, if the IPMulticastForwarding | from Network X. In addition, if the IPMulticastForwarding | |||
| parameter is set to data-link unicast on Network X, group | parameter is set to data-link unicast on Network X, group | |||
| membership will not be monitored on the network. This will | membership will not be monitored on the network. This will | |||
| prevent group members attached directly to Network X from | ||||
| receiving multiple datagram copies, since group membership on | ||||
| the boundary network will be monitored from only one AS (AS #1 | ||||
| <-Datagram path->* | <-Datagram path->* | |||
| * * | * * | |||
| * * | * * | |||
| * .....*......... | * .....*......... | |||
| .........*..... | . * AS #2 | .........*..... | . * AS #2 | |||
| AS #1 * . |*****+---+ | AS #1 * . |*****+---+ | |||
| +---+*****|*----|RTC| | +---+*****|*----|RTC| | |||
| |RTA|----*|* . +---+ | |RTA|----*|* . +---+ | |||
| +---+ . *|* . | +---+ . *|* . | |||
| . *|* . | . *|* . | |||
| skipping to change at page 38, line 25 ¶ | skipping to change at page 38, line 25 ¶ | |||
| +---+ . *|*----|RTD| | +---+ . *|*----|RTD| | |||
| |RTB|----*|*****+---+ | |RTB|----*|*****+---+ | |||
| +---+*****| .....*.......... | +---+*****| .....*.......... | |||
| .........*.... | * | .........*.... | * | |||
| * | * | * | * | |||
| * Network X * | * Network X * | |||
| * | * | |||
| Figure 13: Networks on AS boundaries | Figure 13: Networks on AS boundaries | |||
| prevent group members attached directly to Network X from | ||||
| receiving multiple datagram copies, since group membership on | ||||
| the boundary network will be monitored from only one AS (AS #1 | ||||
| in our example). | in our example). | |||
| It should be noted that forwarding IP multicasts as data-link | It should be noted that forwarding IP multicasts as data-link | |||
| unicasts has some disadvantages when three or more MOSPF routers | unicasts has some disadvantages when three or more MOSPF routers | |||
| are attached to the network. First of all, it is more work for a | are attached to the network. First of all, it is more work for a | |||
| router to send multiple unicasts than a single multicast. | router to send multiple unicasts than a single multicast. | |||
| Second, the multiple unicasts consume more network bandwidth | Second, the multiple unicasts consume more network bandwidth | |||
| than a single multicast. And last, it increases the delay for | than a single multicast. And last, it increases the delay for | |||
| some group members since multiple unicasts also take longer to | some group members since multiple unicasts also take longer to | |||
| send than a single multicast. | send than a single multicast. | |||
| skipping to change at page 55, line 40 ¶ | skipping to change at page 55, line 40 ¶ | |||
| This section describes how a MOSPF router forwards a multicast | This section describes how a MOSPF router forwards a multicast | |||
| datagram that has been originated by one of the router's own | datagram that has been originated by one of the router's own | |||
| internal applications. The process begins with one of the | internal applications. The process begins with one of the | |||
| router's internal applications formatting and addressing the | router's internal applications formatting and addressing the | |||
| datagram. Forwarding the locally originated multicast then | datagram. Forwarding the locally originated multicast then | |||
| consists of the following steps: | consists of the following steps: | |||
| (1) Find the router interface whose IP address matches the | (1) Find the router interface whose IP address matches the | |||
| datagram's source address. Multicast the datagram out that | datagram's source address. Multicast the datagram out that | |||
| interface, according to the Host extensions for IP | interface, according to the Host extensions for IP | |||
| multicasting specified in [RFC 1112]. | ||||
| Network Mask Cost MC-bit | Network Mask Cost MC-bit | |||
| ______________________________________________________ | ______________________________________________________ | |||
| 10.1.1.0 255.255.255.0 Type 1: 10 clear | 10.1.1.0 255.255.255.0 Type 1: 10 clear | |||
| 10.1.0.0 255.255.0.0 Type 2: LSInfinity set | 10.1.0.0 255.255.0.0 Type 2: LSInfinity set | |||
| 10.0.0.0 255.0.0.0 Type 2: 1 set | 10.0.0.0 255.0.0.0 Type 2: 1 set | |||
| Table 3: Sample AS-external-LSAs | Table 3: Sample AS-external-LSAs | |||
| multicasting specified in [RFC 1112]. | ||||
| (2) Set the receiving MOSPF interface to that interface. | (2) Set the receiving MOSPF interface to that interface. | |||
| (3) Execute the MOSPF forwarding process described in Section | (3) Execute the MOSPF forwarding process described in Section | |||
| 11, beginning with its Step 4. | 11, beginning with its Step 4. | |||
| The above algorithm amounts to the router always multicasting | The above algorithm amounts to the router always multicasting | |||
| the datagram out the source interface, and the executing the | the datagram out the source interface, and the executing the | |||
| basic forwarding algorithm (in Section 11) as if the datagram | basic forwarding algorithm (in Section 11) as if the datagram | |||
| had actually been received on the source interface. In those | had actually been received on the source interface. In those | |||
| cases where the router receives its own multicast transmissions, | cases where the router receives its own multicast transmissions, | |||
| skipping to change at page 57, line 19 ¶ | skipping to change at page 57, line 19 ¶ | |||
| initially set to NULL. After completing Area A's datagram | initially set to NULL. After completing Area A's datagram | |||
| shortest-path tree, the calculation in Section 12.2.6 will | shortest-path tree, the calculation in Section 12.2.6 will | |||
| determine whether Area A is the datagram's RootArea. | determine whether Area A is the datagram's RootArea. | |||
| (3) Update the forwarding cache entry's list of outgoing interfaces, | (3) Update the forwarding cache entry's list of outgoing interfaces, | |||
| according to the contents of the local group database. This | according to the contents of the local group database. This | |||
| ensures multicast delivery to group members residing on the | ensures multicast delivery to group members residing on the | |||
| calculating router's directly attached networks. This process is | calculating router's directly attached networks. This process is | |||
| described in Section 12.3. | described in Section 12.3. | |||
| (4) Ensure that none of the outgoing interfaces connect to the | ||||
| upstream node. If they do, remove them from the cache entry's | ||||
| list of outgoing interfaces. (An interface to the upstream node | ||||
| may have mistakenly been added to the forwarding cache entry if | ||||
| SourceNet is a locally advertised stub network). | ||||
| These main steps are described in more detail below. The detailed | These main steps are described in more detail below. The detailed | |||
| description begins with an explanation of the major data structure | description begins with an explanation of the major data structure | |||
| used by the datagram shortest-path tree calculation: The Vertex data | used by the datagram shortest-path tree calculation: The Vertex data | |||
| structure. | structure. | |||
| 12.1. The Vertex data structure | 12.1. The Vertex data structure | |||
| A datagram shortest-path tree is built by the Dijkstra or SPF | A datagram shortest-path tree is built by the Dijkstra or SPF | |||
| algorithm. The algorithm is stated herein using graph-oriented | algorithm. The algorithm is stated herein using graph-oriented | |||
| language: vertices and links. Vertices are the area's routers | language: vertices and links. Vertices are the area's routers | |||
| skipping to change at page 60, line 41 ¶ | skipping to change at page 60, line 46 ¶ | |||
| SourceNet (i.e., has the smallest Cost value). If there are | SourceNet (i.e., has the smallest Cost value). If there are | |||
| multiple possibilities, select transit networks over | multiple possibilities, select transit networks over | |||
| routers. If there are still multiple possibilities | routers. If there are still multiple possibilities | |||
| remaining, select the vertex having the highest Vertex ID. | remaining, select the vertex having the highest Vertex ID. | |||
| Call the chosen vertex Vertex V. Remove Vertex V from the | Call the chosen vertex Vertex V. Remove Vertex V from the | |||
| candidate list, and install it on the shortest-path tree. | candidate list, and install it on the shortest-path tree. | |||
| Next, determine whether Vertex V has been labelled with the | Next, determine whether Vertex V has been labelled with the | |||
| Destination multicast Group G. If so, it may cause the | Destination multicast Group G. If so, it may cause the | |||
| forwarding cache entry's list of outgoing | forwarding cache entry's list of outgoing | |||
| interfaces/neighbors to be updated. See Section 12.2.6 for | interfaces/neighbors to be updated. See Section 12.2.5 for | |||
| details. | details. | |||
| (5) Examine Vertex V's neighbors for possible inclusion in the | (5) Examine Vertex V's neighbors for possible inclusion in the | |||
| candidate list. Consider Vertex V's LSA. Each link in the | candidate list. Consider Vertex V's LSA. Each link in the | |||
| LSA describes a connection to a neighboring router/network. | LSA describes a connection to a neighboring router/network. | |||
| If the link connects to a stub network, examine the next | If the link connects to a stub network, examine the next | |||
| link in the LSA. Otherwise, the link (Link L) connects to a | link in the LSA. Otherwise, the link (Link L) connects to a | |||
| neighboring transit node. Call this node Vertex W. Perform | neighboring transit node. Call this node Vertex W. Perform | |||
| the following steps on Vertex W: | the following steps on Vertex W: | |||
| a. If W is already on the shortest-path tree, or if W's LSA | a. If W is already on the shortest-path tree, or if W's LSA | |||
| does not contain a link back to vertex V, or if W's LSA | does not contain a link back to vertex V, or if W's LSA | |||
| has LS age of MaxAge, or if W is not multicast-capable | has LS age of MaxAge, or if W is not multicast-capable | |||
| (indicated by the MC-bit in the LSA's Options field), | (indicated by the MC-bit in the LSA's Options field), | |||
| examine the next link in V's LSA. | examine the next link in V's LSA. | |||
| skipping to change at page 75, line 23 ¶ | skipping to change at page 75, line 25 ¶ | |||
| 14.6. Originating Router-LSAs | 14.6. Originating Router-LSAs | |||
| This functionality is described in Section 12.4.1 of [OSPF]. A | This functionality is described in Section 12.4.1 of [OSPF]. A | |||
| MOSPF router sets the MC-bit in the Options field of its | MOSPF router sets the MC-bit in the Options field of its | |||
| router-LSA. This allows the router to be included in datagram | router-LSA. This allows the router to be included in datagram | |||
| shortest-path trees (see Step 5a of Section 12.2). | shortest-path trees (see Step 5a of Section 12.2). | |||
| In addition, MOSPF has introduced a new flag in the router-LSA's | In addition, MOSPF has introduced a new flag in the router-LSA's | |||
| rtype field: the W-bit. When the W-bit is set, the router is | rtype field: the W-bit. When the W-bit is set, the router is | |||
| included on all datagram shortest-path trees, regardless of | included on all datagram shortest-path trees, regardless of | |||
| multicast group (see Section 12.2.6). Such a router is called a | multicast group (see Section 12.2.5). Such a router is called a | |||
| wild-card multicast receiver. The router sets the W-bit when it | wild-card multicast receiver. The router sets the W-bit when it | |||
| wishes to receive all multicast datagrams, regardless of | wishes to receive all multicast datagrams, regardless of | |||
| destination. This will sometimes be true of inter-area multicast | destination. This will sometimes be true of inter-area multicast | |||
| forwarders (see Section 3.1), and inter-AS multicast forwarders | forwarders (see Section 3.1), and inter-AS multicast forwarders | |||
| (see Section 4). | (see Section 4). In addition, an inter-area multicast forwarder | |||
| must set the W-bit in its backbone router-LSA if there are | ||||
| inter-AS multicast forwarders interior to any of its attached | ||||
| non-zero areas. This can be detected by the presence of a | ||||
| router-LSA in one of its attached non-zero areas which does not | ||||
| have bit B (area border router) set but does have the W-bit set. | ||||
| A router must originate a new instance of its router-LSA | A router must originate a new instance of its router-LSA | |||
| whenever an event occurs that would invalidate the LSA's current | whenever an event occurs that would invalidate the LSA's current | |||
| contents. In particular, if the router's multicast capability or | contents. In particular, if the router's multicast capability or | |||
| its ability to function as either an inter-area or inter-AS | its ability to function as either an inter-area or inter-AS | |||
| multicast forwarder changes, its router-LSA must be | multicast forwarder changes, its router-LSA must be | |||
| reoriginated. | reoriginated. | |||
| 14.7. Originating Network-LSAs | 14.7. Originating Network-LSAs | |||
| This functionality is described in Section 12.4.2 of [OSPF]. In | This functionality is described in Section 12.4.2 of [OSPF]. In | |||
| OSPF, a transit network's network-LSA is originated by the | OSPF, a transit network's network-LSA is originated by the | |||
| network's Designated Router. The Designated Router sets the MC- | network's Designated Router. The Designated Router sets the MC- | |||
| bit in the Options field of the network-LSA if and only if both | bit in the Options field of the network-LSA if and only if both | |||
| a) the Designated Router is multicast-capable (i.e., running | a) the Designated Router is multicast-capable (i.e., running | |||
| MOSPF) and b) the Designated Router's interface's | MOSPF) and b) the Designated Router's interface's | |||
| IPMulticastForwarding parameter has been set to a value other | IPMulticastForwarding parameter has been set to a value other | |||
| than disabled (see Section B.2). When the network-LSA has the | than disabled (see Section B.2). When the network-LSA has the | |||
| MC-bit set, the network can be included in datagram shortest- | MC-bit set, the network can be included in datagram shortest- | |||
| path trees (see Section 12.2.6). | path trees (see Section 12.2). | |||
| It is intended that all routers attached to a common network | It is intended that all routers attached to a common network | |||
| agree on the network's IPMulticastForwarding capability. | agree on the network's IPMulticastForwarding capability. | |||
| However, this agreement is not enforced. When there are | However, this agreement is not enforced. When there are | |||
| disagreements, incorrect routing of multicast datagrams can | disagreements, incorrect routing of multicast datagrams can | |||
| result. | result. | |||
| 14.8. Originating Summary-LSAs | 14.8. Originating Summary-LSAs | |||
| This functionality is described in Section 12.4.3 of [OSPF]. | This functionality is described in Section 12.4.3 of [OSPF]. | |||
| Inter-area multicast forwarders always set the MC-bit in the | Inter-area multicast forwarders always set the MC-bit in the | |||
| Options field of their summary-link-LSAs, regardless of whether | Options field of their summary-link-LSAs, regardless of whether | |||
| the path described by the summary-LSA is actually multicast- | the path described by the summary-LSA is actually multicast- | |||
| skipping to change at page 98, line 18 ¶ | skipping to change at page 99, line 18 ¶ | |||
| processing. First, all MOSPF routers (and not just the | processing. First, all MOSPF routers (and not just the | |||
| Designated Router and Backup Designated Router) maintain | Designated Router and Backup Designated Router) maintain | |||
| local group database entries for their attached segments by | local group database entries for their attached segments by | |||
| listening to IGMP membership Reports. Second, only those | listening to IGMP membership Reports. Second, only those | |||
| local group database entries associated with stub networks | local group database entries associated with stub networks | |||
| cause outgoing interfaces to be added to multicast | cause outgoing interfaces to be added to multicast | |||
| forwarding cache entries. | forwarding cache entries. | |||
| See Sections 2.3.1, 2.3.4, 9, 9.1, and 12.3 for details. | See Sections 2.3.1, 2.3.4, 9, 9.1, and 12.3 for details. | |||
| D.1.5 Setting the W-bit in backbone router-LSAs | ||||
| An inter-area multicast forwarder must set the W-bit in its | ||||
| backbone router-LSA if there are inter-AS multicast | ||||
| forwarders interior to any of its attached non-zero areas. | ||||
| See Section 14.6 for details. | ||||
| D.1.6 Post-processing a cache entry's outgoing interfaces | ||||
| If a cache entry's SourceNet is a locally advertised stub | ||||
| network, interfaces to the cache entry's upstream node may | ||||
| have been mistakenly added to the cache entry's list of | ||||
| outgoing interfaces. These interfaces must be removed from | ||||
| the cache entry's list of outgoing interfaces at the end of | ||||
| the multicast routing calculation (see Section 12). | ||||
| The two places where an interface to the upstream node may | ||||
| have been mistakenly added are when a) SourceNet has entries | ||||
| in the local group database (see Section 12.3) and b) | ||||
| SourceNet is the address of the other end of a point-to- | ||||
| point link (see Section 12.2.6). | ||||
| D.2 Changes required by RFC 2328 | D.2 Changes required by RFC 2328 | |||
| The following changes were made to stay in step with the latest | The following changes were made to stay in step with the latest | |||
| OSPFv2 base specification [OSPF]. | OSPFv2 base specification [OSPF]. | |||
| D.2.1 Deleting the TOS routing option | D.2.1 Deleting the TOS routing option | |||
| As was done for the base OSPFv2 specification, TOS routing | As was done for the base OSPFv2 specification, TOS routing | |||
| has now been removed from the MOSPF specification, due to | has now been removed from the MOSPF specification, due to | |||
| lack of deployment experience. | lack of deployment experience. | |||
| skipping to change at page 100, line 26 ¶ | skipping to change at page 102, line 26 ¶ | |||
| Author's Address | Author's Address | |||
| John Moy | John Moy | |||
| Ascend Communications, Inc. | Ascend Communications, Inc. | |||
| 1 Robbins Road | 1 Robbins Road | |||
| Westford, MA 01886 | Westford, MA 01886 | |||
| Phone: 978-952-1367 | Phone: 978-952-1367 | |||
| Fax: 978-392-2075 | Fax: 978-392-2075 | |||
| Email: jmoy@casc.com | Email: jmoy@casc.com | |||
| This document expires in February 1999. | This document expires in May 1999. | |||
| End of changes. 37 change blocks. | ||||
| 88 lines changed or deleted | 127 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||