MBoneD Working Group Mark Handley Internet Engineering Task ForceISIAT&T INTERNET-DRAFT Dave Thaler17 February22 June 1999 Microsoft ExpiresAugustDecember 1999 Roger Kermode Motorola Multicast-Scope Zone Announcement Protocol (MZAP)<draft-ietf-mboned-mzap-03.txt><draft-ietf-mboned-mzap-04.txt> Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet Drafts are valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet Drafts as reference material or to cite them other than as a "work in progress".To view theThe list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft ShadowDirectories, see http://www.ietf.org/shadow.html. AbstractDirectories can be accessed at http://www.ietf.org/shadow.html.Abstract This document defines a protocol, the Multicast-Scope Zone Announcement Protocol (MZAP), for discovering the multicast administrative scope zones that are relevant at a particular location. MZAP also provides mechanisms wherebytwocommon misconfigurations of administrative scope zones can be discovered. Copyright Notice Copyright (C) The Internet Society (1999). All Rights Reserved. Draft MZAPFebruary 1998June 1999 1. IntroductionIP Multicast groups can beThe use ofglobal scope, or they can be restricted in scope using a scoping mechanism. In this document, we only consider administrative scoping,administratively-scoped IP multicast, as defined in RFC 2365[1]. An administrative scope zone is defined by a set of routers surrounding[1], allows packets to be addressed to aregionspecific range of multicast addresses (e.g., 239.0.0.0 to 239.255.255.255 for IPv4) such that thenetwork. These "border routers" arepackets will not cross configured administrative boundaries, and also allows such addresses to be locally assigned and hence are notpass multicast traffic destinedrequired to be unique across administrative boundaries. This property of logical naming both allows for address reuse, as well as provides the capability for infrastructure services such as address allocation, session advertisement, and service location to use well-known addresses which are guaranteed to have local significance within every organization. The range of administratively-scoped addresses can be subdivided by administrators so that multiple levels of administrative boundaries can be simultaneously supported. As a result, a "multicast scope" is defined as a particular range ofmulticastaddressestowhich has been given some topological meaning. To support such usage, a router at an administrative boundary is configured with one orfrom links leavingmore per-interface filters, or "multicast scope boundaries". Having such a boundary on an interface means that it will not forward packets matching a configured range of multicast addresses in either direction on the interface. A specific area of the network topology which is within a boundary for a given scope is known as a "multicast scope zone". Since the same ranges can be reused within disjoint areas of the network, there may be many "multicast scopezone.zones" for any given multicast scope. A scope zone may have zero or more textual names (in different languages) for the scope, for human convenience. For example, if the range 239.192/14 were assigned to span an entire corporate network, it might be given (internally) the name "BigCo Private Scope". Administrative scope zones may be of any size, and a particular host may be within many administrative scope zones (for different scopes, i.e., for non-overlapping ranges of addresses) of varioussizes. The onlysizes, as long as scope zonesa host can assumethatit is withinintersect topologically do not intersect in address range. Applications and services are interested in various aspects of theglobal zone, andscopes within which they reside: o Applications which present users with a"Local Scope". A Local Scope is defined as being the smallest administrativechoice of which scopezone encompassing a host, and the border is configured for addressesinthe range 239.255.0.0which to239.255.255.255 inclusive. RFC 2365 specifies: "239.255.0.0/16operate (e.g., when creating a new session, whether it isdefinedDraft MZAP June 1999 to be confined to a corporate intranet, or whether it should go out over theIPv4 Local Scope. The Local Scope ispublic Internet) are interested in theminimal enclosing scope, and hence is not further divisible. Althoughtextual names which have significance to users. o Services which use "relative" multicast addresses (as defined in [1]) in every scope are interested in theexact extentrange of addresses used by each scope, so that they can apply aLocal Scope is site dependent, locally scoped regions must obey certain topological constraints. In particular, a Local Scope must not span any other scope boundary. Further, a Local Scope must be completely contained within or equalconstant offset and compute which address toany largeruse in each scope.Ino Address allocators are interested in theevent that scope regions overlapaddress range, and whether they are allowed to allocate addresses within the entire range or not. o Some applications and services may also be interested inarea,theareanesting relationships among scopes. For example, knowledge ofoverlap mustthe nesting relationships can be used to perform "expanding-scope" searches inits own Local Scope. This implies that any scope boundary is alsoaboundary forsimilar, but better behaved, manner to theLocal Scope." as well as: "administrative scopes that intersect topologically should not intersectwell-known expanding ring search where the TTL of a query is steadily increased until a replier can be found. Studies have also shown that nested scopes can be useful inaddress range."localizing multicast repair traffic [8]. Twoproblemsbarriers currently make administrative scoping difficult to deploy and use: o Applications have no way to dynamically discover information on scopes that are relevant to them. This makes it difficult touse:use administrative scope zones, and hence reduces the incentive to deploy them. o Misconfiguration is easy. It is difficult to detect scope zones that have been configured so as to not be convex (the shortest path between two nodes within the zone passes outside the zone), or to leak (one or moreborderboundary routers were not configured correctly), or to intersect in both area and address range.o Applications have no way to discover the scope zones thatThese two barriers arerelevant to them. This makes it difficult to use administrative scope zones, and hence reduces the incentive to deploy them. Draft MZAP February 1998 Thisaddressed by this document. In particular, this document defines the Multicast Scope Zone Announcement Protocol (MZAP) whichwill provide applications with information about theallows an entity to learn what scope zonesthey are within,it is within. Typically servers will cache the information learned from MZAP andalsocan then provide this information to applications in a timely fashion upon request using other means, e.g., via MADCAP [9]. MZAP also provides diagnostic information todetectthe boundary routers themselves that enables misconfigured scopezones. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document arezones to beinterpreted as describeddetected. Draft MZAP June 1999 2. Terminology The "Local Scope" is defined in RFC2119 [2]. Constants used by this protocol are shown as [NAME-OF-CONSTANT],2365 [1] andsummarized in section 5. 2. Overview A multicastrepresents the smallest administrative scopeZone Border Router (ZBR) is a router thatlarger than link-local, and the associated address range isconfigureddefined as 239.255.0.0 tobe a zone border on one or more of its interfaces. Any interface that239.255.255.255 inclusive (for IPv4, FF03::/16 for IPv6). RFC 2365 specifies: "239.255.0.0/16 isconfigureddefined to bea border for any administrative scope zone MUST alsothe IPv4 Local Scope. The Local Scope is the minimal enclosing scope, and hence is not further divisible. Although the exact extent of a Local Scope is site dependent, locally scoped regions must obey certain topological constraints. In particular, a Local Scope must not span any other scope boundary. Further, a Local Scope must be completely contained within or equal to any larger scope. In the event that scope regions overlap in area, the area of overlap must be in its own Local Scope. This implies that any scope boundary is also a boundary for the Local Scope." A multicast scope Zone Boundary Router (ZBR) is a router that is configured with a boundary for a particular multicast scope on one or more of its interfaces. Any interface that is configured with a boundary for any administrative scope zone MUST also have aborderboundary for the Local Scope zone, asdefined in [1]. Routersdescribed above. Such routers SHOULD be configured so that the router itself is within the scope zone. This isshouldshown infigureFigure 1(a), where router A is inside the scope zone and has theborderboundary configuration.It is possible for the first router outside the scope zone to be configured with the border, as illustrated in figure 1(b) where routers B and C are outside the zone and have the border configuration, but this is NOT RECOMMENDED............. ................ . . +B+--> . *B+--> . . / . / . . * . + . . <---+A*---+C+-> . <---+A+---*C+-> . + . . + . . / . . / . . zone X <-- . . zone X <-- . .............. .................. A,B,C - routers * -borderboundary interface + - interface (a) Correct zoneborderboundary (b) Incorrect zoneborderboundary Figure 1: Administrative scope zoneborderboundary placement It is possible for the first router outside the scope zone to be configured with the boundary, as illustrated in Figure 1(b) where Draft MZAP June 1999 routers B and C are outside the zone and have the boundary configuration, whereas A does not, but this is NOT RECOMMENDED. This rule does not apply for Local Scopeborders,boundaries, but applies for all otheradministrative scope borderboundary routers.Draft MZAP February 1998 When a ZBR is configured correctly, it can deduceWe next define the term "Zone ID" to mean the lowest IP address used by any ZBR for a particular zone for sourcing MZAP messages into that scope zone. The combination of this IP address and the first multicast address in the scope range serve to uniquely identify the scope zone. Each ZBR listens for messages from other ZBRs for the same boundary, and can determine the Zone ID based on the source addresses seen. The Zone ID may change over time as ZBRs come up and down. 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 2119 [2]. Constants used by this protocol are shown as [NAME-OF-CONSTANT], and summarized in section 7. 3. Overview When a ZBR is configured correctly, it can deduce which side of the boundary is inside the scope zone and which side is outside it.It can also send messages into the scope zone, which it SHOULD NOT be able to do if the router itself is considered outside the scope zone.Such a ZBRshouldthensendsends periodic Zone Announcement Messages (ZAMs) fortheeach zone for which it is configured as aborder from one of its interfaces that goboundary into that scopezone.zone, containing information on the scope zone's address range, Zone ID, and textual names. These messages are multicast to the well-known address [MZAP-LOCAL-GROUP] in the LocalScope. Each ZBR also listens for messages from other ZBRs for the same border. The ZBR with the lowest interface IP addressScope, and are relayed across Local Scope boundaries into all Local Scope zones within the scope zonefrom those ZBRs forming the zone border becomes the zone-id router for the zone. The combination of this IP address and the first multicast address in the scoped range servereferred touniquely identifyby thescope zone. When a ZBR receives aZAMfor some scope zone: o If the ZAM was received on an interface with a boundary for the given scope, the ZAM is not forwarded. For example, router Dmessage, as shown infigure 2 will not forward the ZAM. o If the ZAM was received on an interface which is NOT aFigure 2. Draft MZAP June 1999 ########################### # Zone1 = Zone2 # ##### = large scope zone boundary *E-----+--->A*-----+-x # # | = v # ===== = Local Scopeboundary, and the last Local Zone ID Address in theboundaries # | ======*===*==# # | = B F # ----> = pathlist is 0, the ZBR fills in the Local Zone ID Addressofthe local zone from which the ZAM was received. o If aZAMfor the same scope (as identifiedoriginated bythe origin Zone ID and first multicast address) was received in the last [ZAM-DUP-TIME] seconds, theE G*<-----+--->C*-> | ^ # # v = <-+---+ # ABCDE = ZBRs # D = Zone3 # #######*################### * = boundary interface Figure 2: ZAMis not forwarded. For example, when router CFlooding Example Any entity can thus listen on a single well-known group address and learn about all scopes infigure 2 receives the ZAM via B, it will not be forwarded, sincewhich ithas just forwardedresides. 3.1. Scope Nesting MZAP also provides theZAM from E. o Otherwise,ability to discover theZAMnesting relationships between scope zones. Two zones are nested if one iscached for at least [ZAM-DUP-TIME] seconds. o If the Zone IDcomprised of a subset of theLocal Scope zonerouters inwhichtheZBR resides is not alreadyother, as shown inthe ZAM's path list, then the ZAM is immediately re- originated within the Local Scope zone. It adds its own addressFigure 3. +-----------+ +-----------+ +-------------+ | Zone 1 | | Zone 3 | | Zone 5 | | +------+| | +------+ | .........|.. | |Zone 2|| | |Zone 4| | : Zone 6 | : | +--A---+| | C | | D | : +-----------+ +----+--B---+ +--------E----+ : :..........: (a) "Contained" (b) "Common Border" (c) "Overlap" Zone 2 nests Zone 4 nests Zones 5 andthe zone-id of the Local Scope zone into which the message is being forwarded to the ZAM path list before doing so.6 inside Zone 1 inside Zone 3 do not nest Figure 3: Zone nesting examples A ZBRreceiving a ZAM with a non-null path list MUST NOT forward that ZAM back into a Local Scopecannot independently determine whether one zonethatiscontained in the path list.nested inside another. However, it can determine that one zone does NOT nest inside another. For example, in figure2, router F, which did not get the ZAM via4: o ZBR Adue to packet loss,willnot forward the ZAMpass ZAMs for zone 1 but will prevent ZAMs fromB back into Zone 2 since the path list has { (E,1), (A,2), (B,3) } and hence Zonezone 2already appears. Draft MZAP February 1998 o In addition, thefrom leaving zone 2. When ZBRre-originates the ZAM out each interface withA first receives aLocal Scope boundary (except thatZAM for zone 1, itis not sent back out the interface over whichDraft MZAP June 1999 then knows that zone 1 does not nest within zone 2, but itwas received, norcannot, however, determine whether zone 2 nests within zone 1. o ZBR B acts as ZBR for both zones 3 and 4, and hence cannot determine if one is nested inside the other. However, ZBR C can determine that zone 3 does not nest inside zone 4 when itsent into any local scopereceives a ZAM for zonewhose ID3, since it isknowna ZBR for zone 4 but not zone 3. o ZBR D only acts as ZBR zone 6 andappears in the path list). In each suchnot 5, hence ZBR D can deduce that zone 5 does not nest inside zone 6 upon hearing a ZAMre-originated, thefor zone 5. Similarly, ZBRadds its own IP address to the path list, as wellE only acts asthe Zone ID Address of the Local Scope Zone into which theZBR zone 5 and not 6, hence ZBR E can deduce that zone 6 does not nest inside zone 5 upon hearing a ZAM for zone 6. The fact that ZBRs can determine that one zone does not nest inside another, but not that a zone does nest inside another, means that nesting must be determined in a distributed fashion. This isbeing sent, or 0 if the ID is unknown. (For example, ifdone by sending Not-Inside Messages (NIMs) which express theother end offact that apoint-to-point link also haszone X is not inside aboundary onzone Y. Such messages are sent to theinterface, then the link has no Local Scope Zone ID.) ########################### # Zone1 = Zone2 # ##### = large scope zone border *E-----+--->A*-----+-x # # | = v # ===== = Local Scope boundaries # | ======*===*==# # | = B F # ----> = path of ZAM originatedwell-known [MZAP-LOCAL-GROUP] and are thus seen byE # +--->C*-> | ^ # # v = <-+---+ # ABCDE = ZBRs # D = Zone3 # #######*################### * = border interface Figure 2: ZAM Flooding Example The packet also contains a Zones Traveled Limit. If the number of Local Zone IDs in the ZAM path becomes equal to the Zones Traveled Limit, the packet should be dropped. Zones Traveled Limit is set whenthepacket is first sent, and defaultssame entities listening to32, butZAM messages (e.g., MADCAP servers). Such entities canbe set to a lower value if a network administrator knowsthen determine theexpected sizenesting relationship between two scopes based on a sustained absence of any evidence to thezone. Additional messages calledcontrary. 3.2. Other Messages Two other message types, Zone Convexity Messages (ZCMs)SHOULD also beand Zone Limit Exceeded (ZLE) messages, are used only by routers, and enable them to compare their configurations for consistency and detect misconfigurations. These messages are sent to MZAP's relative address within the[ZCM-RELATIVE-GROUP] in the scopedscope rangeitself. As these are not locally scoped packets, they are simply multicast acrossassociated with the scope zoneitself, and require no pathtobe built up, nor any special processingwhich they refer, and hence are typically not seen byLocal Scope zone ZBRs. Theseentities other than routers. Their use in detecting specific misconfiguration scenarios will be covered in the next section. Packet formats for all messages areused to detect non-convex administrative scope zones, as illustrateddescribed infigure 3, whereSection 5. 3.3. Zone IDs When a boundary router first starts up, it uses its lowest IP address which it considers to be inside a given zone, and which is routable everywhere within the zone (for example, not a link-local address), as the Zone ID for that zone. It then schedules ZCM and ZAM messages to be Draft MZAP June 1999 sent in the future (it does not send them immediately). When a ZAM or ZCM is received for the given scope, the sender is added to the local list of ZBRs (including itself) for that scope, and the Zone ID is updated to be the lowest IP address in the list. Entries in the list are eventually timed out if no further messages are received from that ZBR, such that the Zone ID will converge to the lowest address of any active ZBR for the scope. 4. Detecting Router Misconfigurations In this section, we cover how to detect various error conditions. If any error is detected, the router should attempt to alert a network administrator to the nature of the misconfiguration. The means to do this lies outside the scope of MZAP. 4.1. Detecting non-convex scope zones Zone Convexity Messages (ZCMs) are used by routers to detect non-convex administrative scope zones, which are one possible misconfiguration. Non-convex scope zones can cause problems for applications since a receiver may never see administratively-scoped packets from a sender within the same scope zone, since packets travelling between them may be dropped at the boundary. In the example illustrated in Figure 4, the path between B and D goes outside the scope (through A and E).HereHere, Router B and Router Coriginates ZCMs,send ZCMs within a given scope zone for which they eachreportinghave a boundary, with eachother's presence.reporting the other boundary routers of the zone from which they have heard. In Figure 4, Router D cannot see Router B's messages, but can see C's report of B, and so can conclude the zone is not convex.Draft MZAP February 1998#####*####======== # B # = ##### = non-convex scope boundary # |->A* = # | # = ===== = other scope boundaries # | ####*#### # | E # ----> = path of B'sZAMZCM # v D* # C # * =borderboundary interface #####*############ Figure3:4: Non-convexity detection2.1. NestingDraft MZAPalso providesJune 1999 Non-convex scope zones can be detected via two methods: (1) If a ZBR is listed in ZCMs received, but theabilitynext-hop interface (according todiscoverthenesting relationships between scope zones. Two zones are nested if onemulticast RIB) towards that ZBR iscomprised of a subset ofoutside theroutersscope zone, or (2) If a ZBR is listed inthe other,ZCMs received, but no ZCM is received from that ZBR for [ZCM-HOLDTIME] seconds, asshownillustrated in Figure4. +-----------+ +-----------+ +-------------+ | Zone 1 | | Zone 3 | | Zone 5 | | +------+| | +------+ | .........|.. | |Zone 2|| | |Zone 4| | : Zone 6 | : | +--A---+| | C | | D | : +-----------+ +----+--B---+ +--------E----+ : :..........: (a) "Contained" (b) "Common Border" (c) "Overlap" Zone 2 nests3. Zone4 nests Zones 5Convexity Messages MAY also be sent and6 inside Zone 1 inside Zone 3 doreceived by correctly configured ordinary hosts within a scope region, which may be a useful diagnostic facility that does notnest Figure 4: Zone nesting examples Nestedrequire privileged access. 4.2. Detecting leaky boundaries for non-local scopesprovide the abilityA "leaky" boundary is one which logically has a "hole" due toperform "expanding-scope" searches insome router not having asimilar, but better behaved, mannerboundary applied on an interface where one ought to exist. Hence, thewell-known expanding ring search whereboundary does not completely surround a piece of theTTL of a query is steadily increased until a replier can be found. Studies have also shown that nested scopesnetwork, resulting in scoped data leaking outside. Leaky scope boundaries can beuseful in localizing multicast repair traffic [8]. A ZBR cannot independently determine whether one zone is nesteddetected via two methods: (1) If it receives ZAMs originating insideanother. However, they can determinethe scope boundary on an interface thatonepoints outside the zonedoes NOT nest inside another. For example,boundary. Such a ZAM message must have escaped the zone through a leak, and flooded back around behind the boundary. This is illustrated infigure 4: Draft MZAP February 1998 o ZBRFigure 5. =============#####*######## = Zone1 # Awill passZone2 # C = misconfigured router = +---->*E v # = | # B # ##### = leaky scope boundary =======*=====#====*=======# = D # | # ===== = other scope boundaries = ^-----*C<--+ # = Zone4 # Zone3 # ----> = path of ZAMs =============############## Figure 5: ZAM Leaking (2) If a Zone Length Exceeded (ZLE) message is received. The ZAM packet also contains a Zones Traveled Limit. If the number of Local Scope zones traversed becomes equal to the Zones Traveled Limit, a ZLE message is generated (the suppression mechanism forzone 1preventing implosion is described later in the Processing Rules Draft MZAP June 1999 section). ZLEs detect leaks where packets do not return to another part of the same scope zone, butwill prevent ZAMs from zone 2instead reach other Local Scope zones far away fromleaving zone 2.the ZAM originator. In either case, the misconfigured router will be either the message origin, or one of the routers in the ZBRA can thus determine that zone 1 does not nest within zone 2, but it cannot, however, determine whether zone 2 nests within zone 1. o ZBR B acts as ZBR for both zones 3 and 4, and hence cannot determine if onepath list which isnested insideincluded in theother. However,message received (or perhaps a router on the path between two such ZBRs which ought to have been a ZBRC can determine that zone 3 does not nest insideitself). 4.3. Detecting a leaky Local Scope zone4 since itA local scope is leaky if aZBR for zone 4 and not zone 3. o ZBR D only acts as ZBR zone 6 and not 5, hence ZBR D can deduce that zone 6 does not nest inside zone 5. Similarly, ZBR E only acts as ZBR zone 5 and not 6, hence ZBR E can deduce that zone 5 does not nest inside zone 6. The fact that ZBRs can determine that one zone does not nest inside another,router has an administrative scope boundary on some interface, but does notthathave azone does nest inside another, meansLocal Scope boundary on thatnesting must be determinedinterface as specified ina distributed fashion. When a ZBR receivesRFC 2365. This can be detected via the following method: o If a ZAM for a given scopeX for which itisNOTreceived by aborder, it createsZBR which is alocal "X not inside" state entry, if such an entry does not already exist. It then restarts the entry's timer at [ZAM-HOLDTIME]. Existence of this state indicatesboundary for that scope, it compares theZBR knows that X does not nest inside any scope for which it is a border. IfOrigin's Scope Zone ID in theentry's timer expires (because no more ZAMs for X are heardZAM with its own Zone ID for[ZAM-HOLDTIME]),theentrygiven scope. If the two do not match, this isdeleted. Periodically, at an intervalevidence of[NIM-INTERVAL],arouter originates a Not-Inside Message (NIM) for each "X not inside" entry, for each scope zone Y for which it ismisconfiguration. Since aborder. Liketemporary mismatch may result immediately after aZAM, this messagerecent change in the reachability of the lowest-addressed ZBR, misconfiguration should be assumed only if the mismatch ismulticastpersistent. The exact location of the problem can be found by doing an mtrace [5] from the router detecting the problem, back to the ZAM origin, for any group within the address[MZAP-LOCAL-GROUP] fromrange identified by the ZAM. The router at fault will be the oneof its interfaces in Y. Whenreporting that a boundary was reached. 4.4. Detecting conflicting scope zones Conflicting address ranges can be detected via the following method: o If a ZBR receives aNIM saying that "X isZAM for a given scope, and the included start and end addresses overlap with, but are notinside Y", it is forwarded, unmodified, inidentical to, the start and end addresses of amanner similar to ZAMs:locally-configured scope. Conflicting scope names can be detected via the following method: o Ifthe NIM was received on an interfacea ZBR is configured with aboundarytextual name foreither Xa given scope and language, and it receives a ZAM orY, the NIM is discarded. o Unlike ZAMs, if the NIM was not received on the interface towards the message origin (according to the Multicast RIB), the NIM is discarded. o If a NIM forZCM with a name for the sameXscope andY (where each is identified by its first multicast address) was received in the last [ZAM-DUP-TIME] seconds,language, but theNIM isscope names do notforwarded.match. Draft MZAPFebruary 1998 o Otherwise, the NIM is cached for at least [ZAM-DUP-TIME] seconds. o The ZBR then re-originates the NIM (unchanged) into each local scope zone in which it has interfaces, exceptJune 1999 Detecting either type of conflict above indicates thatit is not sent back intoeither the localscope zone from whichrouter or the router originating the messagewas received, norisitmisconfigured. Configuration tools SHOULD strip white space from the beginning and end of each name to avoid accidental misconfiguration. 5. Packet Formats All MZAP messages are sentout any interfaceover UDP, with aboundary for either Xdestination port of [MZAP- PORT] and an IPv4 TTL orY. 3. Usage In this section, we summarize how to inform internal entitiesIPv6 Hop Limit ofscopes in which they reside, as well as how to detect various error conditions. If any error is detected, the router should attempt255. When sending an MZAP message referring toalertanetwork administrator to the nature of the misconfiguration. The means to do this lies outside thegiven scopeof MZAP. 3.1. Zone IDs Whenzone, aborder router first starts up, it uses its lowest IPZBR MUST use a source address whichit considers to be inside a givenwill have significance everywhere within the scope zoneasto which theZone ID for that zone, and schedules the ZCM and ZAM messages tomessage refers. For example, link-local addresses MUST NOT besent in the future (it does not send them immediately). When a ZAM or ZCM is received for the given scope,used. The common MZAP message header (which follows thesenderUDP header), isadded to the local list of ZBRs (including itself) for that scope, and theshown below: 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 |B| PTYPE |Address Family | NameCount | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Origin | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Zone IDis updated to be the lowest IP addressAddress | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Zone Start Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Zone End Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Encoded Zone Name-1 (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . | Encoded Zone Name-N (variable length) | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Padding (if needed) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version: The version defined in this document is version 0. "Big" scope bit (B): If clear, indicates that thelist. Entriesaddresses in thelist are eventually timed out if no further messagesscoped range arereceived from that ZBR, suchnot Draft MZAP June 1999 subdividable, and thatthe Zone ID will converge to the lowestaddressof any active ZBR for the scope. 3.2. Informing internal entities of scopes Any host or applicationallocators mayjoinutilize the[MZAP-LOCAL-GROUP] to listen for Zone Announcement Messages to build up a list of the scope zones that are relevant locally, and for Not-Inside Messages if it wishes to learn nesting information. However, listening for to such messages isentire range. If set, address allocators should not use therecommended method for regular applications to discover this information. These applications will normally query a local Multicast Address Allocation Server [3], whichentire range, but should learn an appropriate sub-range via another mechanism (e.g., AAP [7]). Packet Type (PTYPE): The packet types defined inturn listens tothis document are: 0: Zone AnnouncementMessages andMessage (ZAM) 1: Zone Limit Exceeded (ZLE) 2: Zone Convexity Message (ZCM) 3: Not-InsideMessages to maintain scope information. Draft MZAP February 1998 An internal entity may assume that X nests within Y if: a) it first heard ZAMs for both X and Y at least [NIM-HOLDTIME] seconds ago, AND b) it has not heard a NIM indicating that "X not inside Y"Message (NIM) Address Family: The IANA-assigned address family number [10,11] identifying the address family forat least [NIM-HOLDTIME] seconds. 3.3. Detecting non-convex scope zones Non-convex scope zones can be detected via two methods: (1) If a ZBR is listedall addresses inZCMs received, butthenext-hop interface (according topacket. The families defined for IP are: 1: IPv4 2: IPv6 Name Count: The number of encoded zone name blocks in this packet. The count may be zero. Zone Start Address: 32 bits (IPv4) or 128 bits (IPv6) This gives themulticast RIB) towards that ZBR is outsidestart address for the scopezone, or (2) If a ZBRzone boundary. For example, if the zone islisted in ZCMs received, but no ZCM is received from that ZBRa boundary for[ZCM-HOLDTIME] seconds, as illustrated in figure 3.239.1.0.0 to 239.1.0.255, then ZoneConvexity Messages MAY also be sent and received by correctly configured ordinary hosts within a scope region, which may be a useful diagnostic facility that does not require privileged access. 3.4. Detecting leaky boundariesStart Address is 239.1.0.0. Zone End Address: 32 bits (IPv4) or 128 bits (IPv6) This gives the ending address fornon-local scopes Leaky scope boundaries can be detected via two methods: (1) If it receives ZAMs originating insidethe scope zone boundary. For example, if the zone is a boundaryon anfor 239.1.0.0 to 239.1.0.255, then Zone End Address is 239.1.0.255. Message Origin: 32 bits (IPv4) or 128 bits (IPv6) This gives the IP address of the interface thatpoints outsideoriginated thezone boundary. Suchmessage. Zone ID Address: 32 bits (IPv4) or 128 bits (IPv6) This gives the lowest IP address of aZAM message must have escapedboundary router that has been observed in the zonethrough a leak,originating the message. Together with Zone Start Address andflooded back around behindZone End Address, it forms a unique ID for theboundary. Thiszone. Note that this ID isillustratedusually different from the ID of the Local Scope zone inFigure 5. =============#####*######## = Zone1 # A Zone2 # C = misconfigured router = +---->*E v # = | # B # ##### = leaky scope boundary =======*=====#====*=======# = D #which the origin resides. Encoded Zone Name: Draft MZAP June 1999 +--------------------+ |D| Reserved (7 bits)| +--------------------+ |# ===== =LangLen (1 byte) | +--------------------+-----------+ | Language Tag (variable size) | +--------------------+-----------+ | NameLen (1 byte) | +--------------------+-----------+ | Zone Name (variable size) | +--------------------------------+ The first byte contains flags, of which only the high bit is defined. The other bits are reserved (sent as 0, ignored on receipt). "Default Language" (D) bit: If set, indicates a preference that the name in the following language should be used if no name is available in a desired language. Language tag length (LangLen): 1 byte The length, in bytes, of the language tag. Language Tag: (variable size) The language tag, such as "en-US", indicating the language of the zone name. Language tags are described in [6]. Name Len: The length, in bytes, of the Zone Name field. The length MUST NOT be zero. Zone Name: multiple of 8 bits The Zone Name is an ISO 10646 character string in UTF-8 encoding [4] indicating the name given to the scopeboundaries = ^-----*C<--+ # = Zone4 # Zone3 # ----> = pathzone (eg: ``ISI-West Site''). It should be relatively short and MUST be less than 256 bytes in length. White space SHOULD be stripped from the beginning and end ofZAMs =============############## Figure 5:each name before encoding, to avoid accidental conflicts. Padding (if needed): The end of the MZAP header is padded with null bytes until it is 4- byte aligned. Draft MZAP June 1999 5.1. Zone Announcement Message A Zone Announcement Message has PTYPE=0, and is periodically sent by a ZBR for each scope for which it is a boundary, EXCEPT: o the Local Scope o the Link-local scope The format of a Zone Announcement Message is shown below: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZT | ZTL | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The fields are defined as follows: Zones Traveled (ZT): 8 bits This gives the number of Local Zone IDs contained in this message path. Zones Traveled Limit (ZTL): 8 bits This gives the limit on number of local zones that the packet can traverse before it MUST be dropped. A value of 0 indicates that no limit exists. Hold Time: The time, in seconds, after which the receiver may assume the scope no longer exists, if no subsequent ZAMLeaking Draft MZAP February 1998 (2) If a ZLE messageis received.In either case, the misconfigured router willThis should beeither the message origin,set to [ZAM-HOLDTIME]. Draft MZAP June 1999 Zone Path: multiple of 64 bits (IPv4) orone256 bits (IPv6) The zone path is a list of Local Zone ID Addresses (the Zone ID Address of a local zone) through which therouters inZAM has passed, and IP addresses of thepath list includedrouter that forwarded the packet. The origin router fills in themessage received. 3.5. Detecting"Local Zone ID Address 0" field when sending the ZAM. Every Local Scope router that forwards the ZAM across aleakyLocal Scopezone Aboundary MUST add the Local Zone ID Address of the localscopezone that the packet of the zone into which the message isleaky if a router has an administrative scope boundary on some interface, but does not havebeing forwarded, and its own IP address to the end of this list, and increment ZT accordingly. The zone path is empty which the ZAM is first sent. 5.2. Zone Limit Exceeded (ZLE) The format of a ZLE is shown below: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZT | ZTL | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LocalScope boundary on that interface as specified in RFC 2365. This can be detected viaZone ID Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ All fields are copied from thefollowing method: o If a ZAM for a given scopeZAM, except PTYPE which isreceivedset to one. 5.3. Zone Convexity Message A Zone Announcement Message has PTYPE=2, and is periodically sent by a ZBR for each scope for which it is aborder forboundary (except the Link-local scope). Note thatscope, it comparesZCM's ARE sent in theOrigin's ScopeLocal Scope. Draft MZAP June 1999 Unlike ZoneID inAnnouncement Messages which are sent to theZAM with its own[MZAP-LOCAL- GROUP], ZoneID forConvexity Messages are sent to thegiven scope. If[ZCM-RELATIVE-GROUP] in thetwo do not match, this is evidencescope zone itself. The format of amisconfiguration. Since a temporary mismatch may result immediately after a recent change inZCM is shown below: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZNUM | unused | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZBR Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZBR Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The fields are as follows: Number of ZBR addresses (ZNUM): 8 bits This field gives thereachabilitynumber of ZBR Addresses contained in this message. Hold Time: The time, in seconds, after which thelowest-addressed ZBR, misconfigurationreceiver may assume the sender is no longer reachable, if no subsequent ZCM is received. This should beassumed only ifset to [ZCM-HOLDTIME]. ZBR Address: 32 bits (IPv4) or 128 bits (IPv6) These fields give themismatch is persistent. The exact locationaddresses of theproblem can be found by doing an mtrace [5]other ZBRs from which therouter detecting the problem, back to the ZAM origin, for any group within the address range identified by the ZAM. The router at fault will be the one reporting that a boundary was reached. 3.6. Detecting conflicting scope zones Conflicting address ranges can be detected via the following method: o If aMessage Origin ZBRreceives a ZAM for a given scope, and the included start and end addresses overlap with,has received ZCMs butarewhose hold time has notidentical to, the start and endexpired. The router should include all such addressesof a locally-configured scope. Conflicting scope names can be detected viawhich fit in thefollowing method: o If a ZBR is configured with a non-empty scope name for a given scope, andpacket, preferring those which itreceives a ZAM with a non-empty scope name for the same scope, and the scope nameshas not included recently if all do notmatch. Detecting either type of conflict above indicates that either the local router or router originating the message is misconfigured. Configuration tools SHOULD strip white space from the beginningfit. 5.4. Not-Inside Message A Not-Inside Message (NIM) has PTYPE=3, andend Draft MZAP February 1998 of each name to avoid accidental misconfiguration. 3.7. Packet Formats All MZAP messages areis periodically sentover UDP, withby adestination port of [MZAP- PORT].ZBR which knows that a scope X does not nest within another scope Y ("X not inside Y"): Thecommon MZAP message header (which follows the UDP header),format of a Not-Inside Message is shown below: Draft MZAP June 1999 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 |B| PTYPE |Address Family | NameCount | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Origin | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Zone ID Address |MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Not-Inside Zone Start Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Zone End Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Encoded Zone Name-1 (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . | Encoded Zone Name-N (variable length) | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Padding (if needed) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version:Theversion defined in this document is version 0. "Big" scope bit (B): If clear, indicates that the addresses in the scoped rangefields arenot subdividable, and that address allocators may utilize the entire range. If set, address allocators should not use the entire range, but should learn an appropriate sub-range via another mechanism (e.g., AAP [7]). Draftas follows: MZAPFebruary 1998 Packet Type (PTYPE): The packet types defined in this document are: 0: Zone Announcement Message (ZAM) 1: Zone Limit Exceeded (ZLE) 2: Zone Convexity Message (ZCM) 3: Not-Inside Message (NIM) Address Family: The IANA-assigned address family numberHeader: Header fields identifying theaddress family for all addresses in the packet. The families defined for IP are: 1: IPv4 2: IPv6 Name Count: The number of encoded zone name blocks in this packet. The count may be zero. Zone Start Address: 32 bits (IPv4) or 128 bits (IPv6) This gives the start address for thescopezone border. For example, if the zone is a border for 239.1.0.0 to 239.1.0.255, thenX. The Name Count may be 0. Not-Inside Zone StartAddress is 239.1.0.0. Zone EndAddress: 32 bits (IPv4) or 128 bits (IPv6) This gives theendingstart address for the scopezone border. For example, if the zone is a border for 239.1.0.0 to 239.1.0.255, then Zone End Address is 239.1.0.255.Y. 6. MessageOrigin: 32 bits (IPv4)Processing Rules 6.1. Internal entities listening to MZAP messages Any host or128 bits (IPv6) This gives the IP address of the interface that originatedapplication may join themessage.[MZAP-LOCAL-GROUP] to listen for ZoneID Address: 32 bits (IPv4) or 128 bits (IPv6) This gives the lowest IP address ofAnnouncement Messages to build up aboundary router that has been observed in the zone originatinglist of themessage. Together with Zone Start Addressscope zones that are relevant locally, andZone End Address, it forms a unique IDforthe zone. Note that this IDNot-Inside Messages if it wishes to learn nesting information. However, listening to such messages isNOT the ID ofnot theLocal Scope zone inrecommended method for regular applications to discover this information. These applications will normally query a local Multicast Address Allocation Server (MAAS) [3], whichthe origin resides. Draft MZAP February 1998 Encoded Zone Name: +--------------------+ |D| Reserved (7 bits)| +--------------------+ | LangLen (1 byte) | +--------------------+-----------+ | Language Tag (variable size) | +--------------------+-----------+ | NameLen (1 byte) | +--------------------+-----------+ |in turn listens to ZoneName (variable size) | +--------------------------------+ The first byte contains flags, of which only the high bit is defined. The other bits are reserved (sent as 0, ignored on receipt). "Default Language" (D) bit: If set, indicatesAnnouncement Messages and Not-Inside Messages to maintain scope information, and can be queried by clients via MADCAP messages. An entity (including apreferenceMAAS) lacking any such information can only assume that it is within thename inGlobal Scope, and thefollowing language should be used if no name is availableLocal Scope, both of which have well-known address ranges defined in [1]. An internal entity (e.g., an MAAS) receiving adesired language. Language tag length (LangLen): 1 byte The length, in bytes, ofZAM will parse thelanguage tag. Language Tag: (variable size) The language tag,information that is relevant to it, such as"en-US", indicatingthelanguage ofaddress range, and thezone name. Language tags are described in [6]. Name Len: The length, in bytes,names. An address allocator receiving such information MUST also use the "B" bit to determine whether it can add the address range to the set of ranges from which it may allocate addresses (specifically, it may add them only if the bit is zero). Even if the bit is zero, an MAAS SHOULD still store the range information so that clients who use relative- addresses can still obtain the ranges by requesting them from the MAAS. An internal entity (e.g., an MAAS) may assume that X nests within Y if: Draft MZAP June 1999 a) it first heard ZAMs for both X and Y at least [NIM-HOLDTIME] seconds ago, AND b) it has not heard a NIM indicating that "X not inside Y" for at least [NIM-HOLDTIME] seconds. 6.2. Sending ZAMs Each ZBR should send a ZoneName field.Announcement Message for each scope zone for which it is a boundary every [ZAM-INTERVAL] seconds, +/- 30% of [ZAM- INTERVAL] each time to avoid message synchronisation. Thelength MUST NOT be zero. Zone Name: multipleZAM packet also contains a Zones Traveled Limit (ZTL). If the number of8 bits TheLocal ZoneName is an ISO 10646 character stringIDs inUTF-8 encoding [4] indicatingthename givenZAM path becomes equal to thescope zone (eg: ``ISI-West Site''). It should be relatively short and MUST be less than 256 bytes in length. White space SHOULDZones Traveled Limit, the packet will bestripped fromdropped. The ZTL field is set when thebeginningpacket is first sent, andend of each name before encoding, to avoid accidental conflicts. All the border routersdefaults tothe same region SHOULD32, but can beconfiguredset togive the same Zone Name, orazero length string MAY be given. A zero length string is taken to mean that another router islower value if a network administrator knows the expectedto be configured withsize of the zone. 6.3. Receiving ZAMs When a ZBR receives a ZAM for some scope zonename. Having ALLX, it uses theZBRsfollowing rules. If the local ZBR does NOT have any configuration forascopezone announce zero length names should be considered an error. Padding (if needed): TheX: (1) Check to see if the included start and endofaddresses overlap with, but are not identical to, theMZAP header is padded with null bytes until it is 4- Draft MZAP February 1998 byte aligned. Draft MZAP February 1998 3.7.1. Zone Announcement Message A Zone Announcement Message has PTYPE=0,start andis periodically sent byend addresses of any locally-configured scope Y, and if so, signal an address range conflict to a local administrator. (2) Create a local "X not inside" state entry, if such an entry does not already exist. The ZBR then restarts the entry's timer at [ZAM-HOLDTIME]. Existence of this state indicates that the ZBRfor eachknows that X does not nest inside any scope for which it is aborder, EXCEPT: oboundary. If theGlobal Scope oentry's timer expires (because no more ZAMs for X are heard for [ZAM-HOLDTIME]), theLocal Scope oentry is deleted. If theLink-locallocal ZBR does have configuration for scopeThe format ofX: (1) If the ZAM originated from OUTSIDE the scope (i.e., received over aZone Announcement Message is shown below: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+boundary interface for scope X): Draft MZAPHeader +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZT | ZTL | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LocalJune 1999 a) If the Scope Zone IDAddress 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Localin the ZAM matches the ZBR's own Scope ZoneID Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LocalID, then signal a leaky scope misconfiguration. b) Drop the ZAM (perform no further processing below). For example, router G in Figure 2 will not forward the ZAM. This rule is primarily a safety measure, since the placement of G in Figure 2 is not a recommended configuration, as discussed earlier. (2) If the ZAM originated from INSIDE the scope: a) Add the Origin to the local list of ZBRs (including the local ZBR) for scope X, and update the Zone IDAddress N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Authentication Block (optional) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The fields are defined as follows: Zones Traveled (ZT): 8 bits This givesis to be the lowest IP address in the list. Set the ZBR list entry added to time out after [ZAM-HOLDTIME] if no further messages are received from that ZBR, so that thenumber of LocalZoneIDs contained in this message path. Zones Traveled Limit (ZTL): 8 bits This givesID will converge to thelimit on numberlowest address oflocal zones thatany active ZBR for thepacket can traverse before it MUST be dropped. A value of 0 indicates that no limit exists. Draft MZAP February 1998 Hold Time: The time,scope. b) If the Origin's Scope Zone ID inseconds, after whichthereceiver may assumeZAM does not match the Scope Zone ID kept by the local ZBR, and this mismatch continues to occur, then signal a possible leaky scopeno longer exists,warning. c) For each textual name in the ZAM, see ifno subsequent ZAMa name for the same scope and language isreceived. This should be setlocally-configured; if so, but the scope names do not match, signal a scope name conflict to[ZAM-HOLDTIME]. Zone Path: multiple of 64 bits (IPv4) or 256 bits (IPv6) The zone patha local administrator. d) If the ZAM was received on an interface which is NOT alist ofLocal Scope boundary, and the last Local Zone IDAddresses (theAddress in the path list is 0, the ZBR fills in the Local Zone ID Address ofathe localzone) throughzone from which the ZAMhas passed,was received. If a ZAM for the same scope (as identified by the origin Zone ID and first multicast address) was received in the last [ZAM-DUP-TIME] seconds, the ZAM is then discarded. Otherwise, the ZAM is cached for at least [ZAM-DUP-TIME] seconds. For example, when router C in Figure 2 receives the ZAM via B, it will not be forwarded, since it has just forwarded the ZAM from E. Draft MZAP June 1999 The Zones Travelled count in the message is then incremented, andIP addresses ofif therouter that forwardedupdated count is equal to or greater than thepacket. The origin router fillsZTL field, schedule a ZLE to be sent as described in the"Localnext subsection and perform no further processing below. If the Zone IDAddress 0" field when sendingof theZAM. EveryLocal Scoperouter that forwardszone in which the ZBR resides is not already in the ZAM's path list, then the ZAMacross ais immediately re- originated within the Local Scopeboundary MUST addzone. It adds its own address and theLocalZone IDAddress of the local zone that the packetof the Local Scope zone into which the message is beingforwarded, and its own IP addressforwarded to theend of this list, and increment ZT accordingly. TheZAM path list before doing so. A ZBR receiving a ZAM with a non-null path list MUST NOT forward that ZAM back into a Local Scope zone that is contained in the path list. For example, in Figure 2, router F, which did not get the ZAM via A due to packet loss, will not forward the ZAM from B back into Zone 2 since the path list has { (E,1), (A,2), (B,3) } and hence Zone 2 already appears. In addition, the ZBR re-originates the ZAM out each interface with a Local Scope boundary (except that it isemptynot sent back out the interface over which it was received, nor is it sent into any local scope zone whose ID is known and appears in the path list). In each such ZAMis first sent. Authentication Block: If present, this provides information which can be usedre- originated, the ZBR adds its own IP address toauthenticatethesenderpath list, as well as the Zone ID Address of the Local Scope Zone into which the ZAM(i.e. Router Address N, if ZTisnon-zero,being sent, orMessage Origin,0 ifZTthe ID iszero). (TBD: any reason not to re-use SAP's "Authentication Header" here?) 3.7.2.unknown. (For example, if the other end of a point-to-point link also has a boundary on the interface, then the link has no Local Scope ZoneLimit Exceeded (ZLE)ID.) 6.4. Sending ZLEs This packet is sent by a local-zoneborderboundary router that would have exceeded the Zone Traveled Limit if it had forwarded a ZAM packet. To avoid ZLE implosion, ZLEs are multicast with a random delay and suppressed by other ZLEs. It is only scheduled if at least [ZLE-MIN- INTERVAL] seconds have elapsed since it previously sent a ZLE to any destination. To schedule a ZLE, the router sets a random delay timer within the interval [ZLE-SUPPRESSION-INTERVAL], and listens to the [MZAP-RELATIVE-GROUP] within the included scope for other ZLEs. If any are received before the random delay timer expires, the timer is cleared and the ZLE is not sent. If the timer expires, the router sends a ZLE to the [MZAP-RELATIVE-GROUP] within the indicated scope. The method used to choose a random delay (T) is as follows: Choose a random value X from the uniform random interval [0:1] Let C = 256 Set T = [ZLE-SUPPRESSION-INTERVAL] log( C*X + 1) / log(C) Draft MZAP June 1999 Thismethodequation results in an exponential random distribution which ensures that close to one ZBR will respond.The formatUsing a purely uniform distribution would begin to exhibit scaling problems as the number of ZBRs rose. Since ZLEs are only suppressed if a duplicate ZLE arrives before the time chosen, two routers choosing delays which differ by an amount less than the propagation delay between them will both send messages, consuming excess bandwidth. Hence it isshown below: Draft MZAP February 1998 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZT | ZTL | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Zone ID Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Localdesirable to minimize the number of routers choosing a delay close to the lowest delay chosen, and an exponential distribution is suitable for this purpose. A router SHOULD NOT send more than one ZoneID Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ All fields are copied fromLimit Exceeded message every [ZLE-MIN-INTERVAL] regardless of destination. 6.5. Receiving ZLEs When a router receives a ZLE, it performs the following actions: (1) If theZAM, except PTYPE which is set to one. Arouterreceivinghas a duplicate ZLEmessages SHOULD log them and attemptmessage scheduled toalertbe sent, it unschedules its own message so another one will not be sent. (2) If thenetwork administrator thatZLE contains the router's own address in the Origin field, it signals a leaky scopezone is misconfigured. 3.7.3.misconfiguration. 6.6. Sending ZCMs Each ZBR should send a Zone Convexity MessageA Zone Announcement Message has PTYPE=2, and is periodically sent by a ZBR(ZCM) for each scope zone for which it is aborder, EXCEPT: o the Global Scope o the Link-local scope (Note that ZCM's ARE sent in the Local Scope.) Unlike Zone Announcement Messages which are sentboundary every [ZCM-INTERVAL] seconds, +/- 30% of [ZCM-INTERVAL] each time tothe [MZAP-LOCAL- GROUP], Zone Convexity Messagesavoid message synchronisation. ZCMs are sent to the [ZCM-RELATIVE-GROUP] in the scoped range itself. (For example, if the scope range is 239.1.0.0 to 239.1.0.255, then these messages should be sent to 239.1.0.252.) As these are not Locally-Scoped packets, they are simply multicast across the scope zoneitself. The format ofitself, and require no path to be built up, nor any special processing by intermediate Local Scope ZBRs. 6.7. Receiving ZCMs When a ZCM isshown below: Draft MZAP February 1998 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZNUM | unused | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZBR Address 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ZBR Address N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+received for a given scope X, on an interface which is inside the scope, it follows the rules below: Draft MZAP June 1999 (1) ThefieldsOrigin is added to the local list of ZBRs (including itself) for that scope, and the Zone ID is updated to be the lowest IP address in the list. The new entry is scheduled to be timed out after [ZCM-HOLDTIME] if no further messages areas follows: Numberreceived from that ZBR, so that the Zone ID will converge to the lowest address of any active ZBRaddresses (ZNUM): 8 bits This field givesfor thenumber ofscope. (2) If a ZBRAddresses contained in this message. Hold Time: The time,is listed inseconds, after whichZCMs received, but thereceiver may assumenext-hop interface (according to thesendermulticast RIB) towards that ZBR isno longer reachable,outside the scope zone, or if nosubsequentZCM isreceived. This should be set to [ZCM-HOLDTIME].received from that ZBRAddress: 32 bits (IPv4) or 128 bits (IPv6) These fields givefor [ZCM- HOLDTIME] seconds, as in theaddresses ofexample in Figure 3, then signal a non-convexity problem. (3) For each textual name in theother ZBRs from whichZCM, see if a name for theMessage Origin ZBR has received ZCMssame scope and language is locally-configured; if so, butwhose hold time hasthe scope names do notexpired. Thematch, signal a scope name conflict to a local administrator. 6.8. Sending NIMs Periodically, for each scope zone Y for which it is a boundary, a router originates a Not-Inside Message (NIM) for each "X not inside" entry it has created when receiving ZAMs. Like a ZAM, this message is multicast to the address [MZAP-LOCAL-GROUP] from one of its interfaces inside Y. Each ZBR shouldinclude allsend suchaddresses which fit in the packet, preferring those which it has not included recently if all do not fit. 3.7.4. Not-Inside Message Aa Not-Inside Message(NIM) has PTYPE=3, and is periodically sent byevery [NIM-INTERVAL] seconds, +/- 30% of [NIM-INTERVAL] to avoid message synchronization. 6.9. Receiving NIMs When a ZBRwhich knows thatreceives ascope X does not nest within another scope Y ("XNIM saying that "X is not insideY"): The format of a Not Inside MessageY", it isshown below: Draft MZAP February 1998 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MZAP Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Not-Inside Zone Start Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Authentication Block (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The fields are as follows: MZAP Header: Header fields identifyingforwarded, unmodified, in a manner similar to ZAMs: (1) If thescope X. The Name Count may be 0. Not-Inside Zone Start Address: 32 bits (IPv4)NIM was received on an interface with a boundary for either X or128 bits (IPv6) This givesY, thestart address forNIM is discarded. (2) Unlike ZAMs, if thescope Y. Authentication Block: If present, this provides information which can be usedNIM was not received on the interface towards the message origin (according toauthenticatethesender ofMulticast RIB), the NIM is discarded. (3) If a NIM for the same X and Y (where each is identified by its first multicast address) was received in the last [ZAM-DUP-TIME] seconds, the NIM is not forwarded. Draft MZAP June 1999 (4) Otherwise, the NIM is cached for at least [ZAM-DUP-TIME] seconds. (5) The ZBR then re-originates the NIM(i.e. Message Origin in(i.e., with theMZAP Header). 4. Message Timing Each ZBR should send a Zone Announcement Message fororiginal UDP payload) into each local scope zoneforin which itis a boundary every [ZAM-INTERVAL] seconds, +/- 30% of [ZAM- INTERVAL] each time to avoid message synchronisation. Each ZBR should send a Zone Convexity Message for each scope zone for whichhas interfaces, except that it isa boundary every [ZCM-INTERVAL] seconds, +/- 30% of [ZCM- INTERVAL] each time to avoid message synchronisation. A router SHOULD NOT send more than one Zone Limit Exceeded message every [ZLE-MIN-INTERVAL] regardless of destination. Each ZBR should send a Zone State Session Message for eachnot sent back into the local scope zoneforfrom whichitthe message was received, nor is it sent out any interface with a boundaryevery [ZNSM-INTERVAL] seconds, +/- 30% of [ZNSM- INTERVAL] each time to avoid message synchronization. 5.for either X or Y. 7. Constants [MZAP-PORT]: The well-known UDP port to which all MZAP messages are sent. Value:TBD by IANA. Draft MZAP February 19982106. [MZAP-LOCAL-GROUP]: The well-known group in the Local Scope to which ZAMs are sent. All Multicast Address Allocation servers and ZoneBorderBoundary Routers listen to this group. Value:TBD by IANA.239.255.255.252 for IPv4; FF03:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFC for IPv6. [ZCM-RELATIVE-GROUP]: The relative group in each scope zone, to which ZCMs are sent. A ZoneBorderBoundary Router listens to the relative group in each scope for which it is aborder.boundary. Value:TBD by IANA.(last IP address in scope range) - 3. For example, in the Local Scope, the relative group is the same as the [MZAP-LOCAL-GROUP] address. [ZAM-INTERVAL]: The interval at which a ZoneBorderBoundary Router originates Zone Announcement Messages. Default value: 600 seconds (10 minutes). [ZAM-HOLDTIME]: The holdtime to include in a ZAM. This SHOULD be set to at least 3 * [ZAM-INTERVAL]. Default value: 1860 seconds (31 minutes). [ZAM-DUP-TIME]: The time interval after forwarding a ZAM, during which ZAMs for the same scope will not be forwarded. Default value: 30 seconds. [ZCM-INTERVAL]: The interval at which a ZoneBorderBoundary Router originates Zone Convexity Messages. Default value: 600 seconds (10 minutes). [ZCM-HOLDTIME]: The holdtime to include in a ZCM. This SHOULD be set to at least 3 * [ZCM-INTERVAL]. Default value: 1860 seconds (31 minutes). [ZLE-SUPPRESSION-INTERVAL]: The interval over which to choose a random delay before sending a ZLE message. Default value: 300 seconds (5 Draft MZAP June 1999 minutes). [ZLE-MIN-INTERVAL]: The minimum interval between sending ZLE messages, regardless of destination. Default value: 300 seconds (5 minutes). [NIM-INTERVAL]: The interval at which a ZoneBorderBoundary Router originatesZone Not InsideNot-Inside Messages. Defaultvalue isvalue: 1800 seconds (30minutes)minutes). [NIM-HOLDTIME]: The holdtime to include the state within a NIM. This SHOULD be set to at least 3 * [NIM-INTERVAL]. Default value: 5460 (91 minutes)6.8. Security Considerations While unauthorized reading of MZAPdoes not include authentication in its messages. Thus itmessages isopen to misbehaving hosts sending spoof ZAMs, ZCMs, or NIMs. Draftrelatively innocuous (so encryption is generally not an issue), accepting unauthenticated MZAP messages can be problematic. Authentication of MZAPFebruary 1998messages can be provided by using the IPsec Authentication Header (AH) [12]. In the case ofZCMs, these spoof messagesZCMs and ZLEs, an attacker can cause false logging of convexity and leakage problems. It is likely that is would be purely an annoyance, and not cause any significant problem.In the case of ZAMs, spoof(Such messagescan also cause false logging of configuration problems. This is also considered tocould be authenticated, but since they may be sent within large scopes, the receiver may not be able to authenticate asignificant problem.non-malicious sender.) ZAMs and NIMs, on the other hand, are sent within the Local Scope, where assuming a security relationship between senders and receivers is more practical. In the case of NIMs,spoofaccepting unauthenticated messages canalsocause the false cancellation of nesting relationships. This would cause a section of the hierarchy of zones to flatten. Such a flattening would lessen the efficiency benefits afforded by the hierarchy but would not cause it to become unusable.Spoofed zone announcements however mightAccepting unauthenticated ZAM messages, however, could cause applications to believe that a scope zone exists when it does not. If these were believed, then applications may choose to use thisnon-existentnon- existent administrative scopezonefor their uses. Such applications would be able to communicate successfully, but would be unaware that their traffic may be traveling further than they expected. As a result,applicationsany application accepting unauthenticated ZAMs MUST only take scope names as a guideline, and SHOULD assume that their traffic sent to non-local scope zones might travel anywhere. The confidentiality of such traffic Draft MZAP June 1999 CANNOT be assumed from the fact that it was sent to a scoped address that was discovered using MZAP. In addition, ZAMs are used to inform Multicast Address Allocation Servers (MAASs) of names and address ranges of scopes, andspoofedaccepting unauthenticated ZAMswouldcould result in false names being presented to users, and in wrong addresses being allocated to users. To counter this, MAAS's authenticate ZAMsmay be authenticatedas follows: (1) A ZBR signs all ZAMs itoriginates.originates (using an AH). (2) A ZBR signs a ZAM itforwardsrelays if and only if it can authenticate the previous sender. A ZBR MUST still forward un-authenticated ZAMs (to provide leak detection), but should propagate an authenticated ZAM even if an un-authenticated one was received with the last [ZAM-DUP-TIME] seconds. (3) A MAAS SHOULD be configured with the public key of the local zone in which it resides. A MAAS thus configured SHOULD ignore an unauthenticated ZAM if an authenticated one for the same scope has been received, and MAY ignore all unauthenticated ZAMs.Draft MZAP February 1998 7.9. Acknowledgements This document is a product of the MBone Deployment Working Group, whose members provided many helpful comments and suggestions. The Multicast Address Allocation Working Group also provided useful feedback regarding scope names and interactions with applications. 10. References [1] Meyer, D., "Administratively Scoped IP Multicast", RFC 2365, July 1998. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [3] Handley, M., Thaler, D., and D. Estrin, "The Internet Multicast Address Allocation Architecture", Internet Draft, Dec 1997. [4] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC 2279, January 1998. Draft MZAP June 1999 [5] Fenner, W., and S. Casner, "A ''traceroute'' facility for IP Multicast", draft-ietf-idmr-traceroute-ipm-02.txt, Internet Draft, November 1997. [6] Alvestrand, H., "Tags for the Identification of Languages", RFC 1766, March 1995. [7] Handley, M., "Multicast Address Allocation Protocol (AAP)", draft- handley-aap-01.txt, Internet Draft, July 1998. [8] Kermode, R. "Scoped Hybrid Automatic Repeat reQuest with Forward Error Correction (SHARQFEC)", ACM SIGCOMM 98, September 1998, Vancouver, Canada.8. Acknowledgements This document is a product of the MBone Deployment Working Group, whose members provided many helpful comments[9] Patel, B., Shah, M., andsuggestions. The MulticastS. Hanna. "Multicast Address Dynamic Client AllocationWorking Group also provided useful feedback regarding scope namesProtocol (MADCAP)", Work in progress, May 1999. [10] J. Postel, "Assigned Numbers", RFC 1700, STD 2, October 1994. [11] IANA, "Address Family Numbers", http://www.isi.edu/in- notes/iana/assignments/address-family-numbers [12] Kent, S., andinteractions with applications. 9.R. Atkinson, "IP Authentication Header", RFC 2402, November 1998. Draft MZAP June 1999 11. Authors' Addresses Mark Handley AT&T Center for Internet Research at ICSI 1947 Center St, Suite 600 Berkely, CA 94704 USA Email: mjh@aciri.orgDraft MZAP February 1998David Thaler Microsoft One Microsoft Way Redmond, WA 98052 USA Email: dthaler@microsoft.com Roger Kermode Motorola Australian Research Centre 12 Lord St, Botany, NSW 2109 Australia Email: Roger_Kermode@email.mot.com10.12. Full Copyright Statement Copyright (C) The Internet Society(1998).(1999). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK Draft MZAP June 1999 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULARPURPOSE." Draft MZAP February 1998PURPOSE. Table of Contents 1 Introduction .................................................... 2 2 Terminology ..................................................... 4 3 Overview ........................................................3 2.15 3.1 Scope Nesting........................................................................................................ 63 Usage ........................................................... 8 3.13.2 Other Messages ................................................ 7 3.3 Zone IDs ...................................................... 7 4 Detecting Router Misconfigurations .............................. 83.2 Informing internal entities of scopes ......................... 8 3.34.1 Detecting non-convex scope zones ..............................9 3.48 4.2 Detecting leaky boundaries for non-local scopes ............... 93.54.3 Detecting a leaky Local Scope zone ............................ 103.64.4 Detecting conflicting scope zones ............................. 103.75 Packet Formats.................................................................................................. 113.7.15.1 Zone Announcement Message................................... 15 3.7.2..................................... 14 5.2 Zone Limit Exceeded (ZLE)................................... 16 3.7.3..................................... 15 5.3 Zone Convexity Message...................................... 17 3.7.4........................................ 15 5.4 Not-Inside Message.......................................... 18 4............................................ 16 6 MessageTimingProcessing Rules ........................................ 17 6.1 Internal entities listening to MZAP messages .................. 17 6.2 Sending ZAMs ..................................................19 518 6.3 Receiving ZAMs ................................................ 18 6.4 Sending ZLEs .................................................. 20 6.5 Receiving ZLEs ................................................ 21 6.6 Sending ZCMs .................................................. 21 6.7 Receiving ZCMs ................................................ 21 6.8 Sending NIMs .................................................. 22 6.9 Receiving NIMs ................................................ 22 7 Constants .......................................................19 623 8 Security Considerations .........................................20 7 References ...................................................... 22 824 9 Acknowledgements ................................................22 925 10 References ..................................................... 25 11 Authors' Addresses.............................................. 22 10............................................. 27 12 Full Copyright Statement .......................................2327