The present disclosure generally relates to aspects of BIER next hop validation.
Network nodes forward data. Network nodes may take form in one or more routers, one or more bridges, one or more switches, one or more servers, or any other suitable communications processing device. The data is commonly formatted as packets and forwarded using forwarding tables. A packet is a formatted unit of data that typically contains control information and payload data. Control information may include: information that identifies sources and destinations, such as addresses, error detection codes like checksums, sequencing information, etc. Control information is typically found in packet headers and trailers. Payload data is typically located between the packet headers and trailers.
Forwarding packets involves various processes that, while simple in concept, can be complex. The processes involved in forwarding packets vary, depending on the type of forwarding method used. Multicast is the preferred method of data forwarding for many networks. One reason for this is that multicast is a bandwidth-conserving technology that reduces traffic by simultaneously delivering data to multiple receivers. However, some network environments are not well suited to support multicast. Doing so in such environments often involves discovering and maintaining significant amounts of control, or state, information. Setting up and maintaining this control information has a tendency to become complex and costly in terms of computing resources, and can become a major limiting factor in overall network performance. Another issue with multicast is that due to packet delivery mechanisms used, packets are sometimes forwarded to locations to which the forwarding of these packets creates an unwelcome burden on network performance. Overcoming this burden by traditional means involves generation and maintenance of even more control information.
In conventional IP multicast forwarding, the packets of a given multicast “flow” are forwarded along a tree that has been constructed for the specific purpose of carrying that flow. This requires transit nodes to maintain state on a per-flow basis, and requires the transit nodes to participate in multicast-specific tree building protocols. The flow to which a packet belongs is determined by its IP source and destination address fields.
BIER (Bit Index Explicit Replication) is an alternative method of multicast forwarding. It does not require any multicast-specific trees, and hence does not require any multicast-specific tree building protocols. Within a given “BIER domain”, an ingress node encapsulates a multicast data packet in a “BIER header”. The BIER header identifies the packet's egress nodes in that domain. Each possible egress node is represented by a single bit within a bitstring; to send a packet to a particular set of egress nodes, the ingress node sets the bits for each of those egress nodes, and clears the other bits in the bitstring. A router that supports BIER is referred to as a Bit-Forwarding Router (BFR) will advertise its unique BFR-ID via IGP (i.e. the interior gateway protocol) and this information will be flooded to all nodes in the IGP domain. Each node will use this information to populate the forwarding table with Bit-ID details. Each packet can then be forwarded along the unicast shortest path tree from the ingress node to the egress nodes. Thus there are no per-flow forwarding entries.
The present disclosure will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
A method, system, and apparatus is described for storing an assigned operations, administration and management (OAM) bitstring in a memory in a BIER (Bit Index Explicit Replication) enabled router, the OAM bitstring being assigned to a BIER domain, the semantic of the OAM bitstring being to replicate and forward the OAM bitstring to neighboring bit-forwarding routers (BFRs), generating an OAM probe packet including the OAM bitstring, setting a BFR ID associated with a first BFR as a BIER header bitstring in the OAM probe packet, setting a TTL (time to live) field in the OAM probe packet to be 2, sending the OAM probe packet to a next hop BFR, and performing one of receiving the OAM probe packet back from the first BFR, and taking an alternative action if the OAM probe packet is not received back from the first BFR.
Reference is now made to
As an aside, although the above example is for a case of an incoming BIER packet with a BIER header of 011111, it is appreciated that BitString in BIER header is not an exact match. In other words, a packet with a BitString of 011000 or 010000 or 000111—all matches this entry and will, accordingly, be forwarded to R2.
Besides router R1, router R2 has additional neighbors R3, R4, and R5. R2 also has a BIFT 80, which indicates that a packet with an incoming BIER header of 000111 will be forwarded to either neighboring router R3 or R4. The BIFT 80 also indicates that a packet with an incoming BIER header of 011000 will be forwarded to neighboring router R5.
There are at least two possibilities for R2 to drop a BIER packet after receiving the BIER packet from R1:
Each BIER domain will be assigned with an operations, administration and management (OAM) Bit-Forwarding Router (BFR) ID, comprising a bitstring which is unique within a given BIER domain. For instance, in the present example, the OAM BFR-ID is 100000. The forwarding semantic of the OAM BFR-ID in each node is to replicate and forward the bitstring to all BFR neighbors. Accordingly, as will be shown in
Reference is now made to
The “proto” field depicted in the continuity check OAM probe packet 200 indicates a 4-bit field which identifies the type of the payload. (The “payload” is the packet or frame immediately following the BIER header.) Various values for the proto field are enumerated in the BIER standards. The proto field, as used in the present method, is set to a value indicative of an OAM packet.
It is appreciated that in general, BIER packets comprise a BIER header containing a bit string in which each bit represents a single BFR-id. To indicate that a particular BFER (Bit-Forwarding Egress Router) needs to receive a given packet, the BFIR sets the bit corresponding to that BFER's BFR-id in the sub-domain to which the packet has been assigned. The term “BitString” is used in BIER protocols by convention to refer to the bit string field in the BIER header. The term “payload” to refer to the packet that has been encapsulated. Thus a “BIER-encapsulated” packet consists of a “BIER header” followed by a “payload”.
Each BFR populates its forwarding table to replicate any packet received with BitString in BIER header as OAM BFR-ID to all BFR neighbors irrespective of the incoming interface/neighbor. For example, R1 BIFT Table 30 and R2 BIFT Table 80 both now have the exemplary OAM BFR-ID populating a line: “100000, Replicate.”
Reference is now made to
Assuming that there is no failure, and R2 is able to return the continuity check OAM probe packet 200 to R1, then, correspondingly, R1 will receive the continuity check OAM probe packet 200 back from R2. Because the continuity check OAM probe packet 200 TTL=1 and Proto as OAM, the continuity check OAM probe packet 200 will get passed to the OAM module resident in R1. Those of skill in the art will appreciate that The OAM module of a router fulfills the management and manipulation of the router. In this particular case, since the receipt of the returned continuity check OAM probe packet 200 indicates that there is no problem on router R2, then the OAM module on router R1 will reset the local timer for R2 Next Hop validation.
It is appreciated that there is no control plane involvement on R2. That is to say that R2 does not pass this OAM packet from R1 to its (i.e. R2's) OAM module for payload processing. Rather, R2 simply treats the OAM packet as like any other BIER packet.
Reference is now made to
If R1 does not receive an appropriate response to the continuity check OAM probe packet 200 from any nodes (R3, R4, or R5) after R2 was supposed to have forwarded the continuity check OAM probe packet 200, then the cause of the failure 220 is an R2 BIER layer failure. On the other hand, if R1 does receive the appropriate response to the continuity check OAM probe packet 200 from nodes R3, R4, and R5 after R2 was supposed to have forwarded the continuity check OAM probe packet 200, then the cause of the failure 220 is most likely a return path failure.
Reference is now made to
Alternatively, if R1 has not received the appropriate response from router R2, then router R1 will take an appropriate response (step 560). Such an appropriate response might include router R1 taking a corrective action, such as, but not limited to:
logging an error message;
instructing a centralized logging system of the failure to receive back the OAM probe packet; and
triggering a fast retransmit and recovery (FRR) action.
Reference is now made to
Typically, when forwarding a packet, the BFR (for example, R1, R2, R3, . . . ) locally detects which entry should be used. That is to say, the BFR performs some or all of the following methods to detect which other BFRs in its BIER domain should receive forwarded packets:
Accordingly, R1 validates the forwarding entry on next hop R2 and redirects packets via Ry in case of any failure. R1 runs SPF (Shortest Path First, an algorithm used by link state protocols like OSPF (Open Shortest Path First) or ISIS (Intermediate System-Intermediate System) to build the shortest path to destinations) with R2 as ROOT to detect the NNHOP (Next Next HOP). In this topology, R1 detects that R2 will use R5 as NHOP (Next HOP) for a BIER header of 011000 and R4 or R3 (via Equal-cost multi-path routing (ECMP)) for a BIER header of 000111.
Reference is now made to
R1 creates a probe session using the following steps:
As described above, R2 receives the OAM probe 620 and forwards it to its neighbors, as described below.
R1 expects a response from R5 as well as from R3 and R4. In the event that R1 does not receive a response from any NNHOP, R1 triggers FRR as in described above.
The R2 router receives the OAM probe 620 and forwards the OAM probe 620 packet to the NNHOP based on its forwarding table. That is to say, R2 forwards the OAM probe 620 packet to routers R3, R4, R5. These steps are analogous to the steps described above with reference to
As was mentioned above, in the present example, the corruption 600 is between routers R2 and R5. Accordingly, R1 receives the response from R3 and R4, but not from R5 due to the corruption 60 (i.e. a forwarding issue on R2 towards R5). Accordingly, R1 is able to take a corrective action and redirects packets for R5 via Ry in case of a detection of a failure.
It is appreciated that by changing the bitstring in the BIER header, R1 can perform the validation for different BIFT entries in the R2 BIFT. By way of example:
The methods and systems described herein may also be implemented in network architectures in which to BIER-TE (BIER Traffic Engineering) is implemented. As is known in the art, BIER-TE forwards and replicates packets like BIER based on a BitString in the packet header but does not require an IGP (interior gateway protocol). BIER-TE supports traffic engineering by explicit hop-by-hop forwarding and loose hop forwarding of packets. It also supports FRR for link and node protection and incremental deployment. BIER-TE is described in a draft RFC, found at tools.ietforg/html/draft-eckert-bier-te-arch-00
Reference is now made to
In the embodiment of the present described for BIER-TE, a detection mechanism is in place enabling R1 to take alternative action if:
As is the case with BIER-TE, there is a BIER Controller Host (hereinafter, “the controller”), rather than a per-router BIER layer. The controller host tracks the BFR topology of the BIER-TE domain. In the present example, the controller will instruct R1 with the required adjacency details of R2, as required, i.e.:
The adjacency bit index is indicated in the R2 BIFT table 720.
R1 triggers the OAM probe packet (not depicted), similar to the OAM probe packet described above (such as continuity check OAM probe packet 200 (
If there is a black hole for index 3 on R2, then R1 will not receive a response from R5, and the OAM probe will time out. In such a case, R1 can trigger FRR, as discussed above, and as is discussed in the BIER-TE specification mentioned above.
If there is corruption in the R2 adjacency tables, then R1 will receive a response to the OAM probe packet from router R3, instead of the expected response from router R5. In such a case, R1 can trigger FRR, as discussed above, and as is discussed in the BIER-TE specification mentioned above.
R1 may take other alternative actions in either or both of the above cases, such as the alternative actions mentioned above:
logging an error message;
instructing a centralized logging system of the failure to receive back the OAM probe packet.
Reference is now made to
Alternatively, if R1 has not received the appropriate response from router R5, then router R1 will take an appropriate response (step 960). Such an appropriate response might include router R1 taking a corrective action, such as, but not limited to:
logging an error message;
instructing a centralized logging system of the failure to receive back the OAM probe packet; and
triggering a fast retransmit and recovery (FRR) action.
It is appreciated that the BIER enabled routers described herein comprise at least one processor for performing the operations described hereinabove. In addition to the at least one processor, the BIER enabled routers described herein comprise non-transitory computer-readable storage media (i.e. memory). The memory may store instructions, which at least one of the processors may execute, in order to perform the method described herein. The system also comprises typical and standard hardware and software components as are known in the art.
It is appreciated that software components of the present invention may, if desired, be implemented in ROM (read only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. It is further appreciated that the software components may be instantiated, for example: as a computer program product or on a tangible medium. In some cases, it may be possible to instantiate the software components as a signal interpretable by an appropriate computer, although such an instantiation may be excluded in certain embodiments of the present invention.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention is defined by the appended claims and equivalents thereof:
Number | Name | Date | Kind |
---|---|---|---|
7924730 | McAllister | Apr 2011 | B1 |
8374095 | Boutros et al. | Feb 2013 | B2 |
8504718 | Wang et al. | Aug 2013 | B2 |
8774009 | Jocha et al. | Jul 2014 | B2 |
8804719 | Aldrin et al. | Aug 2014 | B2 |
20060221841 | Lee | Oct 2006 | A1 |
20100238788 | Boutros | Sep 2010 | A1 |
20100238812 | Boutros | Sep 2010 | A1 |
20110222412 | Kompella | Sep 2011 | A1 |
20120219003 | Cui | Aug 2012 | A1 |
20130007252 | Welin | Jan 2013 | A1 |
20130259056 | Kotrabasappa | Oct 2013 | A1 |
20130259059 | Yamada | Oct 2013 | A1 |
20130272141 | Mashimo | Oct 2013 | A1 |
20150131660 | Shepherd et al. | May 2015 | A1 |
20160134518 | Callon | May 2016 | A1 |
20160134535 | Callon | May 2016 | A1 |
Entry |
---|
Wijnands, Ijsbrand; Multicast Using Bit Index Explicit Replication (Mar. 6, 2015). |
Wijnands, Ijsbrand; Multicast Using Bit Index Explicit Replication (Sep. 22, 2014) Can be seen at: https://tools.ietf.org/html/draft-wijnands-bier-architecture-00. |
Peterson, Larry et al.; Computer Networks—A systems approach (Fifth Edition), 2012; p. 218. |
Number | Date | Country | |
---|---|---|---|
20170126481 A1 | May 2017 | US |