| < draft-ietf-pim-anycast-rp-06.txt | draft-ietf-pim-anycast-rp-07.txt > | |||
|---|---|---|---|---|
| Network Working Group Dino Farinacci | Network Working Group Dino Farinacci | |||
| INTERNET-DRAFT Yiqun Cai | INTERNET-DRAFT Yiqun Cai | |||
| Expiration Date: August 2006 cisco Systems | Expiration Date: August 2006 cisco Systems | |||
| February 4, 2006 | February 7, 2006 | |||
| Anycast-RP using PIM | Anycast-RP using PIM | |||
| <draft-ietf-pim-anycast-rp-06.txt> | <draft-ietf-pim-anycast-rp-07.txt> | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that other | Task Force (IETF), its areas, and its working groups. Note that other | |||
| skipping to change at page 4, line 13 ¶ | skipping to change at page 4, line 13 ¶ | |||
| consistently configured in all RPs in the set. | consistently configured in all RPs in the set. | |||
| 3.0 Mechanism | 3.0 Mechanism | |||
| The following diagram illustrates a domain using 3 RPs where | The following diagram illustrates a domain using 3 RPs where | |||
| receivers are joining to the closest RP according to where unicast | receivers are joining to the closest RP according to where unicast | |||
| routing metrics take them and 2 sources sending packets to their | routing metrics take them and 2 sources sending packets to their | |||
| respective RPs. | respective RPs. | |||
| The rules described in this section do not override the rules in | The rules described in this section do not override the rules in | |||
| [N1]. They are intended to blend with the rules in [N1]. If there is | [N1]. They are intended to blend with the rules in [N1]. If there is | |||
| any question on the interpretation, precedent is given to [N1]. | any question on the interpretation, precedent is given to [N1]. | |||
| S1-----RP1 RP2 RP3------S3 | S1-----RP1 RP2 RP3------S3 | |||
| / \ | | / \ | | |||
| / \ | | / \ | | |||
| R1 R1’ R2 | R1 R1' R2 | |||
| Assume the above scenario is completely connected where R1, R1’, and | Assume the above scenario is completely connected where R1, R1', and | |||
| R2 are receivers for a group, and S1 and S3 send to that group. | R2 are receivers for a group, and S1 and S3 send to that group. | |||
| Assume RP1, RP2 and RP3 are all assigned the same IP address which is | Assume RP1, RP2 and RP3 are all assigned the same IP address which is | |||
| used as the Anycast-RP address (let’s say the IP address is RPA). | used as the Anycast-RP address (let's say the IP address is RPA). | |||
| Note, the address used for the RP address in the domain (the Anycast- | Note, the address used for the RP address in the domain (the | |||
| RP address) needs to be different than the addresses used by the | Anycast-RP address) needs to be different than the addresses used by | |||
| Ancyast-RP routers to communicate with each other. | the Anycast-RP routers to communicate with each other. | |||
| The following procedure is used when S1 starts sourcing traffic: | The following procedure is used when S1 starts sourcing traffic: | |||
| o S1 sends a multicast packet. | o S1 sends a multicast packet. | |||
| o The DR directly attached to S1 will form a PIM Register | o The DR directly attached to S1 will form a PIM Register | |||
| message to send to the Anycast-RP address (RPA). The unicast | message to send to the Anycast-RP address (RPA). The unicast | |||
| routing system will deliver the PIM Register message to the | routing system will deliver the PIM Register message to the | |||
| nearest RP, in this case RP1. | nearest RP, in this case RP1. | |||
| o RP1 will receive the PIM Register message, decapsulate it, send the | o RP1 will receive the PIM Register message, decapsulate it, send the | |||
| packet down the shared-tree to get the packet to receivers R1 and | packet down the shared-tree to get the packet to receivers R1 and | |||
| R1’. | R1'. | |||
| o RP1 is configured with RP2 and RP3’s IP address. Since the | o RP1 is configured with RP2 and RP3's IP address. Since the | |||
| Register message did not come from one of the RPs in the | Register message did not come from one of the RPs in the | |||
| anycast-RP set, RP1 assumes the packet came from a DR. If the | anycast-RP set, RP1 assumes the packet came from a DR. If the | |||
| Register is not addressed to the Anycast-RP address, an error | Register is not addressed to the Anycast-RP address, an error | |||
| has occurred and it should be rate-limited logged. | has occurred and it should be rate-limited logged. | |||
| o RP1 will then send a copy of the Register message from S1’s | o RP1 will then send a copy of the Register message from S1's | |||
| DR to both RP2 and RP3. RP1 will use its own IP address as | DR to both RP2 and RP3. RP1 will use its own IP address as | |||
| the source address for the PIM Register message. | the source address for the PIM Register message. | |||
| o RP1 MAY join back to the source-tree by triggering a (S1,G) Join | o RP1 MAY join back to the source-tree by triggering a (S1,G) Join | |||
| message toward S1. However, RP1 MUST create (S1,G) state. | message toward S1. However, RP1 MUST create (S1,G) state. | |||
| o RP1 sends a Register-Stop back to the DR. If, for some reason, | o RP1 sends a Register-Stop back to the DR. If, for some reason, | |||
| the Register messages to RP2 and RP3 are lost, then when the | the Register messages to RP2 and RP3 are lost, then when the | |||
| Register suppression timer expires in the DR, it will resend | Register suppression timer expires in the DR, it will resend | |||
| Registers to allow another chance for all RPs in the Anycast-RP | Registers to allow another chance for all RPs in the Anycast-RP | |||
| skipping to change at page 5, line 42 ¶ | skipping to change at page 5, line 42 ¶ | |||
| o RP3 sends a Register-Stop back to the RP1. | o RP3 sends a Register-Stop back to the RP1. | |||
| o RP3 creates (S1,G) state so when a receiver joins after S1 starts | o RP3 creates (S1,G) state so when a receiver joins after S1 starts | |||
| sending, RP3 can join quickly to the source-tree for S1. | sending, RP3 can join quickly to the source-tree for S1. | |||
| o RP1 processes the Register-Stop from each of RP2 and RP3. There | o RP1 processes the Register-Stop from each of RP2 and RP3. There | |||
| is no specific action taken when processing Register-Stop messages. | is no specific action taken when processing Register-Stop messages. | |||
| The procedure for S3 sending follows the same as above but it is RP3 | The procedure for S3 sending follows the same as above but it is RP3 | |||
| which sends a copy of the Register originated by S3’s DR to RP1 and | which sends a copy of the Register originated by S3's DR to RP1 and | |||
| RP2. Therefore, this example shows how sources anywhere in the | RP2. Therefore, this example shows how sources anywhere in the | |||
| domain, associated with different RPs, can reach all receivers, also | domain, associated with different RPs, can reach all receivers, also | |||
| associated with different RPs, in the same domain. | associated with different RPs, in the same domain. | |||
| 4.0 Observations and Guidelines about this Proposal | 4.0 Observations and Guidelines about this Proposal | |||
| o An RP will send a copy of a Register only if the Register is | o An RP will send a copy of a Register only if the Register is | |||
| received from an IP address not in the Anycast-RP list (i.e. the | received from an IP address not in the Anycast-RP list (i.e. the | |||
| Register came from a DR and not another RP). An implementation | Register came from a DR and not another RP). An implementation | |||
| MUST safeguard against inconsistently configured anycast-RP sets | MUST safeguard against inconsistently configured anycast-RP sets | |||
| in each RP by copying the TTL from a Register message to the | in each RP by copying the TTL from a Register message to the | |||
| Register messages it copies and sends to other RPs. | Register messages it copies and sends to other RPs. | |||
| o Each DR that PIM registers for a source will send the message to | o Each DR that PIM registers for a source will send the message to | |||
| the anycast-RP address (which results in the packet getting to the | the anycast-RP address (which results in the packet getting to the | |||
| closest physical RP). Therefore there are no changes to the DR | closest physical RP). Therefore there are no changes to the DR | |||
| logic. | logic. | |||
| o Packets flow to all receivers no matter what RP they have joined | o Packets flow to all receivers no matter what RP they have joined | |||
| to. | to. | |||
| o The source gets Registered to a single RP by the DR. It’s the | o The source gets Registered to a single RP by the DR. It's the | |||
| responsibility of the RP that receives the PIM Register | responsibility of the RP that receives the PIM Register | |||
| messages from the DR (the closest RP to the DR based on routing | messages from the DR (the closest RP to the DR based on routing | |||
| metrics) to get the packet to all other RPs in the Anycast-RP | metrics) to get the packet to all other RPs in the Anycast-RP | |||
| set. | set. | |||
| o Logic is changed only in the RPs. The logic change is for | o Logic is changed only in the RPs. The logic change is for | |||
| sending copies of Register messages. Register-Stop processing is | sending copies of Register messages. Register-Stop processing is | |||
| unchanged. However, an implementation MAY suppress sending | unchanged. However, an implementation MAY suppress sending | |||
| Register-Stop messages in response to a Register received from | Register-Stop messages in response to a Register received from | |||
| an RP. | an RP. | |||
| skipping to change at page 6, line 39 ¶ | skipping to change at page 6, line 39 ¶ | |||
| end-to-end. That is from DR -> RP1 -> {RP2 and RP3}. There is no | end-to-end. That is from DR -> RP1 -> {RP2 and RP3}. There is no | |||
| need for specific rate-limiting logic between the RPs. | need for specific rate-limiting logic between the RPs. | |||
| o When topology changes occur, the existing source-tree adjusts | o When topology changes occur, the existing source-tree adjusts | |||
| as it does today according to [N1]. The existing shared-trees, | as it does today according to [N1]. The existing shared-trees, | |||
| as well, adjust as it does today according to [N1]. | as well, adjust as it does today according to [N1]. | |||
| o Physical RP changes are as fast as unicast route convergence. | o Physical RP changes are as fast as unicast route convergence. | |||
| Retaining the benefit of [I1]. | Retaining the benefit of [I1]. | |||
| o An RP that doesn’t support this specification can be mixed with | o An RP that doesn't support this specification can be mixed with | |||
| RPs that do support this specification. However, the non-supporter | RPs that do support this specification. However, the non-supporter | |||
| RPs should not have sources registering to it but may have | RPs should not have sources registering to it but may have | |||
| receivers joined to it. | receivers joined to it. | |||
| o If Null Registers are sent (Registers with an IP header and no IP | o If Null Registers are sent (Registers with an IP header and no IP | |||
| payload), they MUST be replicated to all of the RPs in the Anycast- | payload), they MUST be replicated to all of the RPs in the Anycast- | |||
| RP set so that source state remains alive for active sources. | RP set so that source state remains alive for active sources. | |||
| o The number of RPs in the Anycast-RP set should remain small so the | o The number of RPs in the Anycast-RP set should remain small so the | |||
| amount of non-native replication is kept to a minimum. | amount of non-native replication is kept to a minimum. | |||
| skipping to change at page 9, line 4 ¶ | skipping to change at page 9, line 4 ¶ | |||
| domains together by using Anycast-PIM inside a transit domain. | domains together by using Anycast-PIM inside a transit domain. | |||
| 6.0 IANA Considerations | 6.0 IANA Considerations | |||
| This document makes no request to IANA. | This document makes no request to IANA. | |||
| Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
| RFC. | RFC. | |||
| 7.0 Security Consideration | 7.0 Security Consideration | |||
| This section describes the security consideration for Register and | This section describes the security consideration for Register and | |||
| Register-Stop messages between Anycast-RPs. For PIM messages between DR | Register-Stop messages between Anycast-RPs. For PIM messages between | |||
| and RP, please see [N1]. | DR and RP, please see [N1]. | |||
| 7.1 Attack Based On Forged Messages | 7.1 Attack Based On Forged Messages | |||
| An attacker may forge a Register message using one of the addresses | An attacker may forge a Register message using one of the addresses | |||
| in the Anycast-RP list in order to achieve one or more of the | in the Anycast-RP list in order to achieve one or more of the | |||
| following effects: | following effects: | |||
| 1. Overwhelm the target RP in a denial-of-service attack | 1. Overwhelm the target RP in a denial-of-service attack | |||
| 2. Inject unauthorized data to receivers served by the RP | 2. Inject unauthorized data to receivers served by the RP | |||
| 3. Inject unauthorized data and create bogus SA entries in other | 3. Inject unauthorized data and create bogus SA entries in other | |||
| End of changes. 14 change blocks. | ||||
| 19 lines changed or deleted | 19 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/ | ||||