Patent Publication Number: US-11658897-B2

Title: Loop prevention system

Description:
BACKGROUND 
     The present disclosure relates generally to information handling systems, and more particularly to preventing network failures caused by logical loops in information handling systems that are provided in a physical loop configuration. 
     As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. 
     Some information handling systems provide networking nodes (e.g., switches, routers, gateways, and/or other networking devices) that may be configured in various topologies to form a layer-2 domain, and those various topologies may result in some or all of the networking nodes in the layer-2 domain forming one or more physical loops that can cause issues with the network. For example, while physical loops may provide benefits such as redundancy, layer-2 logical loops resulting from those physical loops can consume the majority of network resources due to, for example, the rebroadcasting of network traffic between the networking nodes in the physical loop configuration. The Spanning Tree Protocol (STP) is a layer-2 protocol that is often used to prevent network traffic from looping on networking nodes in a physical loop configuration. However, when STP on even one of the networking nodes malfunctions, a logical loop may result that causes frame flooding in the entire topology, which can lead to scenarios where the entire layer-2 domain becomes non-functional. 
     For example, the STP may fail or be temporarily ineffective for various reasons such as software issues that result from programming the STP state improperly, interop issues that may occur when a new networking node is brought into the layer-2 domain with a different default STP protocol, hardware issues such as a hardware freeze in which the STP opens but the data plane is not disturbed, topology changes that may introduce intermittent loops that only settle once STP converges (with the frame flooding affecting the performance of the networking nodes during the time the STP takes to converge), and/or other STP issues known in the art. As such, logical loops like those discussed above may not only bring down a cluster of networking nodes and the applications they provide, but may also bring down the network as well. 
     Accordingly, it would be desirable to provide an improved loop prevention system. 
     SUMMARY 
     According to one embodiment, Information Handling System (IHS) includes a processing system; and a memory system coupled to the processing system and including instructions that, when executed by the processing system, cause the processing system to provide a loop prevention engine that is configured to: receive, via an edge link that is connected to a computing device that is outside of a first Layer Two (L2) domain, a first data frame; generate a first loop breaker data frame by tagging the first data frame with a first loop breaker tag; and forward, via at least one L2 domain link that is coupled to one or more of a plurality of networking devices that are coupled together to form the L2 domain and that are linked together in a loop configuration, the first loop breaker data frame. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a schematic view illustrating an embodiment of an information handling system. 
         FIG.  2 A  is a schematic view illustrating an embodiment of a loop prevention system. 
         FIG.  2 B  is a schematic view illustrating an embodiment of a loop prevention system. 
         FIG.  3    is a schematic view illustrating an embodiment of a networking device that may be included in the loop prevention system of  FIGS.  2 A and  2 B . 
         FIGS.  4 A and  4 B  are flow charts illustrating an embodiment of a method of preventing loops. 
         FIGS.  5 A- 5 F  are schematic views illustrating an embodiment of the loop prevention system of  FIG.  2 A  operating during the method of  FIGS.  4 A and  4 B . 
         FIGS.  6 A- 6 C  are schematic views illustrating an embodiment of the loop prevention system of  FIG.  2 A  operating during the method of  FIGS.  4 A and  4 B . 
         FIGS.  7 A- 7 F  are schematic views illustrating an embodiment of the loop prevention system of  FIG.  2 B  operating during the method of  FIGS.  4 A and  4 B . 
         FIG.  8 A  is a block diagram illustrating an embodiment of a data frame used during the method of  FIGS.  4 A and  4 B . 
         FIG.  8 B  is a block diagram illustrating an embodiment of a loop breaker data frame used during the method of  FIGS.  4 A and  4 B . 
     
    
    
     DETAILED DESCRIPTION 
     For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer (e.g., desktop or laptop), tablet computer, mobile device (e.g., personal digital assistant (PDA) or smart phone), server (e.g., blade server or rack server), a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, touchscreen and/or a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components. 
     In one embodiment, IHS  100 ,  FIG.  1   , includes a processor  102 , which is connected to a bus  104 . Bus  104  serves as a connection between processor  102  and other components of IHS  100 . An input device  106  is coupled to processor  102  to provide input to processor  102 . Examples of input devices may include keyboards, touchscreens, pointing devices such as mouses, trackballs, and trackpads, and/or a variety of other input devices known in the art. Programs and data are stored on a mass storage device  108 , which is coupled to processor  102 . Examples of mass storage devices may include hard discs, optical disks, magneto-optical discs, solid-state storage devices, and/or a variety of other mass storage devices known in the art. IHS  100  further includes a display  110 , which is coupled to processor  102  by a video controller  112 . A system memory  114  is coupled to processor  102  to provide the processor with fast storage to facilitate execution of computer programs by processor  102 . Examples of system memory may include random access memory (RAM) devices such as dynamic RAM (DRAM), synchronous DRAM (SDRAM), solid state memory devices, and/or a variety of other memory devices known in the art. In an embodiment, a chassis  116  houses some or all of the components of IHS  100 . It should be understood that other buses and intermediate circuits can be deployed between the components described above and processor  102  to facilitate interconnection between the components and the processor  102 . 
     Referring now to  FIG.  2 A , an embodiment of a loop prevention system  200  is illustrated. In the illustrated embodiment, the loop prevention system  200  includes a Layer-Two (L2) domain  202 . The L2 domain may include a plurality of networking devices  204 ,  206 ,  208 , and up to  210 . In an embodiment, any or all of the networking devices  204 - 210  may be provided by the IHS  100  discussed above with reference to  FIG.  1    and/or include some or all of the components of the IHS  100 , and in specific examples may include switches, routers, access points, gateways, and/or other networking devices that are configured to receive and forward data traffic. In the illustrated embodiment, the networking device  204  is connected to the networking device  206  by an L2 domain connection  204   a , the networking device  206  is connected to the networking device  208  by an L2 domain connection  206   a , the networking device  208  is connected to the networking device  210  by an L2 domain connection  208   a , and the networking device  210  is connected to the networking device  204  by an L2 domain connection  210   a.    
     In specific examples, the L2 domain connections  204   a ,  206   a ,  208   a , and  210   a  may be provided by a variety of networking cables (e.g., Ethernet or other communications cables), wireless network connections provided by wireless communications devices, and/or other network connections known in the art. As will be appreciated by one of skill in the art in possession of the present disclosure, the networking devices  204 - 210  and the L2 domain connections  204   a - 210   a  in the example illustrated herein provide a physical loop topology, and while only a few L2 domain connections between the networking devices  204 - 210  have been provided for clarity of illustration and discussion, many more L2 domain connections may (and typically will) be provided between the networking devices  204 - 210 , and any number of networking devices may be included in the L2 domain  202  while remaining within the scope of the present disclosure. For example, and as illustrated in  FIG.  2 B , the L2 domain  202  may include a networking device  218  that is coupled to the networking device  204  via an L2 domain connection  218   a , and that is not included in the physical loop topology formed by networking devices  204 - 210  and their L2 domain connections  204   a - 210   a.    
     In the embodiment illustrated in  FIG.  2 A , the networking device  204  is coupled to a computing device  212  via an edge connection  212   a , and the networking device  208  is coupled to a computing device  214  via an edge connection  214   a . in an embodiment, either or each of the computing devices  212  and  214  may be provided by the IHS  100  discussed above with reference to  FIG.  1    and/or include some or all of the components of the IHS  100 , and in specific examples may include server devices, storage devices, networking devices, desktop computing devices, mobile computing devices, and/or any of a variety of other computing devices that may be configured to direct, transmit, or otherwise provide traffic via the L2 domain  202 . In some embodiments, the computing devices  212  may be included in other L2 domains (i.e., other than the L2 domain  202 ), may be provided by a router that is included in the L2 domain  202 , or, as discussed in further detail below, may be considered a device that is outside of the L2 domain  202 . In various embodiments, the edge connections  212   a  and  214   a  may be provided by a variety of networking cables (e.g., Ethernet or other communications cables), wireless network connections provided by wireless communications devices, and/or other network connections known in the art. As will be appreciated by one of skill in the art in possession of the present disclosure, the embodiment illustrated in  FIG.  2 B  provides the networking device  218  connected to the computing device  212  via the edge connection  212   a  rather than the networking device  204  connected to a computing device  212  via the edge connection  212   a.    
     In the embodiments illustrated in  FIGS.  2 A and  2 B , the loop prevention system  200  also includes a management device  216 . In an embodiment, the management device  216  may be provided by the IHS  100  discussed above with reference to  FIG.  1   , and/or may include some or all of the components of the IHS  100 , and in specific examples may be provided by one or more server devices that operate as part of a network management system for the networking devices  204 - 210  and/or  218  in the L2 domain  202 . However, while illustrated and discussed as being provided by one or more server devices that operate as part of a network management system, one of skill in the art in possession of the present disclosure will recognize that management devices provided in the loop prevention system  200  may include any devices that may be configured to operate similarly as the management device  216  discussed below. Furthermore, while specific examples of the loop prevention system  200  are illustrated and described herein, one of skill in the art in possession of the present disclosure will recognize that a variety of modifications to the devices, device configuration, and/or other aspects of the loop prevention system  200  will fall within the scope of the present disclosure. 
     Referring now to  FIG.  3   , an embodiment of a networking device  300  is illustrated that may be any or each of the networking devices  204 ,  206 ,  208 ,  210 , and/or  218  discussed above with reference to  FIGS.  2 A and  2 B . As such, the networking device  300  may be the IHS  100  discussed above with reference to  FIG.  1    and/or include some or all of the components of the IHS  100 , and in specific examples may be provided by switches, routers, access points, gateways, and/or other networking devices that are configured to receive and forward data traffic. The networking device  300  includes a chassis  302  that houses the components of the networking device  300 , only some of which are illustrated in  FIG.  3   . For example, the chassis  302  may house a processing system (not illustrated, but which may include the processor  102  discussed above with reference to  FIG.  1   ) and a memory system (not illustrated, but which may include the system memory  114  discussed above with reference to  FIG.  1   ) that includes instructions that, when executed by the processing system, cause the processing system to provide a loop prevention engine  304  that is configured to perform the functions of the loop prevention engines and the networking node devices discussed below. 
     The chassis  302  also houses a storage system (not illustrated, but which may include the storage device  108  discussed above with reference to  FIG.  1   ) that is coupled to the loop prevention engine  304  (e.g., via a coupling between the storage system and the processing system) and that includes a loop prevention database  306  that may store any of the information utilized by the loop prevention engine  304  discussed below. For example, and as discussed below, the loop prevention engine  304  may generate, receive/retrieve (e.g., through the communication system  308 ), determine, and/or otherwise identify a configuration setting  306   a  and/or a forwarding table  306   b  and store the configuration setting  306   a  and the forwarding table  306   b  in the loop prevention database  306 . The chassis  302  may also house a communication system  308  that is coupled to the loop prevention engine  304  (e.g., via a coupling between the communication system  308  and the processing system) and that may include a Network Interface Controller (NIC), a wireless communication subsystem (e.g., a WiFi subsystem, a Bluetooth subsystem, a cellular subsystem, etc.), and/or a variety of other communication system components known in the art. Furthermore, the communication system  308  may provide any of a management connection with the management device  216 , the L2 domain connections  204   a ,  206   a ,  208   a ,  210   a , and/or  218   a , and/or the edge connections  212   a  and/or  214   a  discussed above with reference to  FIGS.  2 A and  2 B . However, while a specific networking device  300  has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that networking devices may include a variety of components other than those described above that provide for the performance of conventional networking device functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure. 
     Referring now to  FIGS.  4 A and  4 B , an embodiment of a method  400  for preventing loops is illustrated. As discussed above, networking devices may be provided in a physical loop configuration via, for example, network connections between the networking devices that provide redundancy if one of the network connections is to fail. However, L2 logical loops may occur in such physical loop configurations and can result in the continuous provisioning of the same network traffic to each networking device, thus clogging or otherwise wasting the network bandwidth. Conventional loop prevention systems utilize protocols such as the Spanning Tree Protocol (STP) that prevent such L2 loops, but the STP may fail due to software issues, hardware issues, and/or interop issues with one or more of the networking devices included in an L2 domain, and/or the STP may take some time to converge while data frame flooding of the networking devices in the L2 domain reduces performance of the networking devices until the STP converges. 
     The loop prevention system of the present disclosure addresses the issues discussed above by designating at least one of the networking devices as a loop breaker node that tags L2 data frames with a unique identifier. As such, if networking devices designated as loop breaker nodes receive an L2 data frame with their unique identifier, those networking devices may drop that data frame and then notify a network administrator that a logical loop is present on the loop prevention system. In some embodiments, a loop prevention tag may be attached to L2 data frames as those L2 data frames enter the L2 domain on edge connections, the networking devices that are designated as loop breaker nodes may express their unique identifier by marking a respective bit in that loop prevention tag before providing the L2 data frame to other networking devices in the L2 domain, and when the L2 data frame that includes the loop prevention tag leaves the L2 domain via an edge connection, the networking device that is egressing that L2 data frame via an edge connection may remove the loop prevention tag. As such, while a logical loop may exist in the L2 domain due to issues with STP, the systems and methods of the present disclosure will prevent the entire cluster of networking devices and applications from going down by dropping frames that are in the logical loop until those issues with the STP have been corrected. 
     The method  400  begins at block  402  where a networking device in an L2 domain receives a first data frame via an edge connection. In an embodiment, at block  402 , a first data frame may enter the L2 domain  202 . For example, and with reference to  FIG.  5 A , the networking device  204  may receive a data frame  502  via the edge connection  212   a  (as illustrated by the bolded arrow on network connection  212   a  in  FIG.  5 A ). In another example, and with reference to  FIG.  7 A , the networking device  218  may receive a data frame  702  via the edge connection  212   a  (as illustrated by the bolded arrow on network connection  212   a  in Fi.  7 A). In a specific example, the data frame  502 / 702  may be provided by an Ethernet frame according to the IEEE 802.1Q frame format, which one of skill in the art in possession of the present disclosure will recognize may include a tagged frame having a Virtual Local Area Network (VLAN) tag (e.g., a 4-byte VLAN tag), or an untagged frame that does not include a VLAN tag. 
     With reference to  FIG.  8 A  the data frame  502  and/or  702  may be provided by a tagged frame  800   a  if the computing device  212  is another networking device such as a switch that inserted the VLAN tag. The tagged frame  800   a  (also referred to herein as a VLAN data frame) may include a destination address field  802  that may be 6 bytes and that include a destination address (e.g., a Media Access Control (MAC) address of the destination computing device) for the frame, a source address field  804  that may be 6 bytes and that includes a source address (e.g., a MAC address of the source computing device) for the frame, a VLAN tag field  806  that may be 4 bytes and that includes VLAN information, a Length/Type Field  808  that may be 2 bytes and that indicates a length and type of the frame, a data field  810  that may be 46-1500 bytes and that includes the data being sent, and a Frame Checksum (FCS) field  812  that may be 4 bytes and that includes a hash of the destination address, the source address, the VLAN tag, and the data, which one of skill in the art in possession of the present disclosure will appreciate allows a destination computing device to compute the hash value of the received frame and compare it to the hash value included in the FCS field in order to determine whether the frame  800  has been corrupted. 
     Furthermore, the VLAN tag field  806  may include a Tag Protocol Identifier (TPID) field  806   a  that may be 2 bytes and that indicates the frame type, a Priority (PRI) field  806   b  that may be 3 bits and that indicates the 802.1p priority of the tagged frame  800 , a Canonical Format Indicator (CFI) field  806   c  that may be 1 bit and that indicates whether a MAC address is encapsulated in canonical format over different transmission media (e.g., to ensure compatibility between Ethernet and token ring networks), and a VLAN Identifier (VID) field  806   d  that may be 12 bits and that indicates the VLAN to which the tagged frame  800  belongs. 
     However, in other embodiments where the computing device is a host device/user terminal, the data frame  502  and/or  702  may be an untagged frame which may be substantially the same as the tagged frame  800   a  but without including the VLAN tag field  806 . As such, upon receiving the data frame  502  and/or  702  that is untagged, the networking device  204  or  218  may add the VLAN tag field  806  and recalculate the hash in the FCS field  812 . However, while the data frame  502  and/or  702  may be an untagged Ethernet frame when entering the L2 domain  202 , the discussions herein assume that the data frame  502  and/or  702  is provided by the tagged frame  800   a  and is already tagged with the VLAN tag field  806  for clarity of discussion. Furthermore, while a specific data frame received by a networking device via an edge connection of the loop prevention system  200  has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that data frames may include a variety of fields other than those described above, and may be provided by other protocols that provide for L2 communications, while remaining within the scope of the present disclosure. 
     The method  400  then proceeds to block  404  where a first loop breaker data frame is generated by tagging the first data frame with a first loop breaker tag. In an embodiment, at block  404 , the networking device included in the L2 domain  202  that receives the data frame via an edge connection may tag the first data frame with a loop breaker tag. For example, and with reference to  FIG.  5 B , the networking device  204  may generate a loop breaker data frame  504  that includes the data frame  502  provided with a loop breaker tag  504   a . Similarly, and with reference to  FIG.  7 B , the networking device  218  may generate a loop breaker data frame  704  that includes the data frame  702  and a loop breaker tag  704   a . In various embodiments, the loop breaker tag  504   a  and/or  704   a  may include a second VLAN tag. With reference to  FIG.  8 B , a loop breaker data frame  800   b  is illustrated that may provide the loop breaker data frame  504  and/or  704 . As illustrated in  FIG.  8 B , the loop breaker data frame  800   b  may include the destination address field  802 , the source address field  804 , the VLAN tag field  806 , the Length/Type field  808 , the data field  810 , and the FCS field  812  that are included in the data frame  800   a  discussed above with reference to  FIG.  8 A . In addition, the loop breaker data frame  800   b  may include the VLAN tag  807  that may be the loop breaker tag  504   a  and/or  704   a  discussed above with reference to  FIGS.  5 B and  7 B , respectively. For example, the VLAN tag  807  may be identical to the VLAN tag field  806 , and may be positioned between the VLAN tag field  806  and the Length/Type field  808 . As such, the VLAN tag  807  may be 2 bytes and include a TPID field  807   a  that may be 2 bytes, a PRI field  807   b  that may be 3 bits, a CFI field  807   c  that may be 1 bit, and a VID field  807   d  that may be 12 bits. However, while specific loop breaker data frames  504  and  704  are illustrated and described, one of skill in the art in possession of the present disclosure will recognize that other loop breaker tagged data frames may be provided while remaining within the scope of the present disclosure 
     The method  400  then proceeds to decision block  406  where the method  400  proceeds depending on whether the networking device is designated as a loop breaker node. In an embodiment, at decision block  406 , the method  400  may proceed depending on whether the networking device in the L2 domain  202  that received the data frame via the edge connection in block  402  and that generated the loop breaker frame in block  404  is designated as a loop breaker node. In some embodiments, prior to method  400 , an administrator may designate one or more of the networking devices  204 - 210  discussed above with reference to  FIG.  2 A , or one or more of the networking devices  204 - 210  and  218  discussed above with reference to  FIG.  2 B , as loop breaker node(s). For example, the administrator may access the networking devices  204 - 210 / 300  and/or  218 / 300  via the management device  216  to enable or disable a loop breaker node setting in the configuration settings  306   a  in the loop prevention database  306  of that networking device. In specific examples, the administrator may know which networking devices  204 - 210  and/or  218  are provided in a physical loop and may cause a logical loop if the STP were to fail, and may designate one or more of the networking devices in each physical loop as a loop breaker node. In some embodiments, each networking device designated as a loop breaker node may also be assigned a tag value in the configuration settings  306   a . For example, because the loop breaker tag  504   a  and/or  704   a  may be provided by a VLAN tag  807  that includes 4 bytes (e.g., 32 bits) and the TPID field  807   a  may be used to identify the tag protocol as VLAN such that the frame is not dropped, the administrator may assign a bit of the remaining 16 bits provided by the VLAN tag  807  (e.g., the 16 bits provided by the PRI field  807   b , the CFI field  807   c , and the VID field  807   d ) to that loop breaker node. As such, in the embodiments described herein, up to 16 networking devices included in the L2 domain  202  may be designated as loop breaker nodes. 
     If, at decision block  406 , the networking device is designated as a loop breaker node, then the method  400  may proceed to block  408  where that networking device inserts a tag value in the first loop breaker tag associated with that networking device prior to the forwarding of the first loop breaker data frame via at least one L2 domain connection. In an embodiment, at block  408 , the networking device that received the data frame via the edge connection in block  402 , that generated the loop breaker frame in block  404 , and that is designated as a loop breaker node at decision block  406 , may provide a tag value in the loop breaker tag according to the tag value that networking device was assigned by an administrator. For example, the tag value may be associated with a bit of the loop breaker tag (e.g., the VLAN tag  807  of the loop breaker data frame  800   b ), and that networking device may set that bit (e.g., in the VLAN tag  807 ). With reference to  FIG.  5 C , the networking device  204  may be designated as a loop breaker node, and may have been assigned a tag value of “2” that may be associated with the second bit of the VLAN tag  807  (which may be the second bit in the VID field  807   d ). In another example, the tag value assigned to the networking device  204  may be “3” that may be associated with the third bit of the VLAN tag  807  (which may be the second bit in the VID field  807   d ). As such, the tag value assigned to the networking device  204  may be any of “1”-“16” that may be associated with respective first to sixteenth bit of the VLAN tag  807 . 
     In a specific example, if there are three networking devices are designated as loop breaker nodes where the first networking device is assigned a tag value of “7”, the second networking device is assigned a tag value of “3”, and the third networking device is assigned a tag value of “9”, then the seventh bit of the VLAN tag  807  is set when the loop breaker data frame  800   b  is received by the first networking device, the third bit of the VLAN tag  807  is set when the loop breaker data frame  800   b  is received by the second networking device, and the ninth bit of the VLAN tag  807  is set when the loop breaker data frame  800   b  is received by the third networking device. With reference to the example illustrated in  FIG.  5 C , the networking device  204  may insert a tag value  504   b  into the loop breaker tag  504   a  included in the loop breaker data frame  504 . Specifically, the networking device  204  may be assigned a tag value of “2”, and thus may mark/set the second bit of the VLAN tag  807  (e.g., by setting a logical “0” to a logical “1” in the second bit of VLAN tag  807 ). 
     If, at decision block  406 , the networking device is not designated as a loop breaker node, then the method  400  may proceed to block  410  where the networking device forwards the first loop breaker data frame via the at least one L2 domain connection. In an embodiment, at block  410 , the networking device included in the L2 domain  202  that received the data frame via the edge connection in block  402 , that generated the loop breaker frame in block  404 , and that is not designated as a loop breaker node at decision block  406 , may forward the first loop breaker data frame using conventional L2 forwarding techniques known in the art. For example, the networking device may reference the forwarding table  306   b , along with the source address field  804  and the destination address field  802  in the loop breaker data frame  800   b , to determine whether any of ports on that networking device are associated with a destination MAC address in the destination address field  802 . If a port is associated with the destination MAC address, the networking device may then forward the loop breaker data frame via that port, while if no ports are associated with the destination MAC address, the networking device may forward (e.g., flood) the loop breaker data frame  800   b  on all of its ports but the ingress port (e.g., the port on which the data frame/loop breaker data frame was received by the networking device). With reference to  FIG.  7 C , the networking device  218  may forward the loop breaker data frame  704 , which is unmarked, via the L2 domain connection  218   a  (as illustrated by the bolded arrow on network connection  218   a  in  FIG.  7 C ). 
     Similarly, block  410  may be performed following block  408  such that the loop breaker data frame  800   b , which includes a tag value from the networking device that is designated as a loop breaker node, is forwarded via at least one L2 domain connection of that networking device. For example, and as illustrated in  FIG.  5 D , the networking device  204  may forward the loop breaker data frame  504  that is marked with the tag value  504   b  via the L2 domain connection  204   a  (as illustrated by the bolded arrow on network connection  204   a  in  FIG.  5 D ). However, one of skill in the art will recognize that the data frame  502  may be forwarded via the L2 domain connection  210   a  as well, and/or any other L2 domain connections that are available. 
     The method  400  then proceeds to block  412  the first networking device receives a loop breaker data frame that includes a loop breaker tag via the at least one L2 domain link. In an embodiment, at block  412 , a networking device in the L2 domain  202  may receive a loop breaker data frame. With reference to  FIG.  5 E , the networking device  204  may receive the loop breaker data frame  504  after it has been forwarded by the networking device  206  via L2 domain connection  206   a , by the networking device  208  via the L2 domain connection  208   a , and by the networking device  210  via the L2 domain connection  210   a  (as illustrated by the bolded arrows on network connections  206   a ,  208   a , and  210   a  in  FIG.  5 E ). In another embodiment and with reference to  FIG.  6 A , the networking device  208  may receive the loop breaker data frame  504  discussed above with reference to  FIG.  5 B  after the loop breaker data frame  504  has been forwarded by the networking device  206  via the L2 domain connection  206   a  (as illustrated by the bolded arrow on network connection  206   a  in  FIG.  6 A ). In the example illustrated in  FIGS.  6 A- 6 C  and as discussed below, the networking device  208  forwards the loop breaker data frame  504  out of the L2 domain  202 . With reference to  FIG.  7 C , the networking device  204  may receive the loop breaker data frame  704  via the L2 domain connection  218   a  (as illustrated by the bolded arrow on network connection  218   a  in  FIG.  7 C ). 
     The method  400  proceeds to decision block  414  where the method  400  proceeds depending on whether the networking device is designated as a loop breaker node. In an embodiment, at decision block  414  and when the networking device in the L2 domain  202  receives loop breaker data frame that includes the loop breaker tag, the method  400  proceeds depending on whether that networking device is designated as a loop breaker node in a manner that is similar to decision block  406 , discussed above. If the networking device is designated as a loop breaker node, the method  400  proceeds to decision block  416  where it is determined whether the tag value assigned to that networking device is present in the loop breaker data frame. In an embodiment, at decision block  416 , the networking device in the L2 domain  202  that is designated as a loop breaker node may compare its assigned tag value to any tag values present in the loop breaker tag of the loop breaker data frame it received to determine whether its tag value is present in the loop breaker tag. For example, the networking device may have been assigned a tag value of “2”, and at decision block  416  may determine whether the second bit of the VLAN tag  807  of the loop breaker data frame  800   b  is set or not set (e.g., a logical “1” or a logical “0”). 
     If, at decision block  416 , the tag value assigned to the networking device is present in the loop breaker data frame, then the method  400  may proceed to block  418  where the loop breaker data frame is dropped. In an embodiment, at block  418 , the networking device in the L2 domain  202  that receives a loop breaker data frame that includes the tag value assigned to that networking device may block or otherwise drop that loop breaker data frame. For example, the second bit of the VLAN tag  807  of the loop breaker data frame  800   b  may be set, and when the networking device that previously set that bit in the VLAN tag  807  receives the loop breaker data frame  800   b , that networking device will recognize that a logical loop exists in the L2 domain  202  and will operate to drop or otherwise block that loop breaker data frame  800   b  from being forwarded on any of its L2 domain connections. 
     For example, and with reference to  FIGS.  5 E and  5 F , the networking device  204  may have received the loop breaker data frame  504  via the L2 domain connection  210   a  as discussed above, may be designated as a loop breaker node according to its configuration settings  306   a , and may have been assigned a tag value of “2”. The networking device  204  may check the second bit that corresponds with a tag value  504  of “2” in the loop breaker tag  504   a  included in the loop breaker data frame  504 , and because the second bit (e.g., tag value  504   b ) is marked, the networking device  204  may determine that it already forwarded the loop breaker data frame  504  (and thus a logical loop exists in the L2 domain  202 ), and may drop the loop breaker data frame  504  as indicated by an indicator  506 . 
     The method  400  may then proceed to block  420  where a notification is sent to an administrator to alert the administrator of a logical loop in the L2 domain  202 . In an embodiment, at block  420  and with reference to the example discussed above with reference to  FIGS.  5 A- 5 F , the networking device  204  may alert an administrator of the L2 domain  202  that a logical loop exists in the L2 domain  202 . As will be appreciated by one of skill in the art in possession of the present disclosure, while the networking device  204  may prevent the L2 domain  202  from going down by preventing data frames from continuously looping in the L2 domain  202 , the networking device  204  does not actually fix the logical loop. As such, a notification to an administrator that a logical loop exists in the L2 domain  202  may cause the administrator to investigate the issue and determine why the STP is not preventing logical loops. Thus, the systems and methods of the present disclosure prevent the network and its networking devices from going down so that the administrator can investigate and correct issues with the STP. In an embodiment, at block  420 , the networking device  204  may log the dropped loop breaker data frame  504  and provide the log to the management device  216 . However, one of skill in the art in possession of the present disclosure will recognize that other alerts and/or notifications may be provided to an administrator while falling under the scope of the present disclosure. 
     If, at decision block  414 , the networking device is not designated as a loop breaker node, or if at decision block  416  the networking device that is designated as a loop breaker node determines that the tag value assigned to that networking device is not present in the loop breaker data frame, then the method  400  proceeds to decision block  422  where it is determined whether the loop breaker data frame should exit from the L2 domain. In an embodiment, at decision block  422 , the networking device in the L2 domain  202  that received the loop breaker data frame may determine whether that loop breaker data frame should exit out of the L2 domain  202 . For example, the networking device may determine whether any forwarding rules in the forwarding table  306   b  cause the loop breaker data frame to exit out of the networking device on an edge connection (e.g., edge connections  212   a  or  214   a ). In some examples, the loop breaker data frame may be forwarded to another L2 domain, while in other examples, the loop breaker data frame be forwarded to a router that is included in the L2 domain  202 . One of skill in the art in possession of the present disclosure will recognize that designating routers as being “outside” the L2 domain  202  may prevent issues that result when the routing of the loop breaker data frame is a reverse path that may cause the loop breaker data frame to be inadvertently dropped when received back on the same networking device as discussed above even when no actual logical loop exists. In yet other examples, the loop breaker data frame may be destined to a computing device  212  and/or  214  that may be an end host (e.g., a destination identified by the destination MAC address in the destination address field  802  of the loop breaker data frame  800   b ). 
     If, at decision block  422 , it is determined that the loop breaker data frame should exit the L2 domain, then the method  400  may proceed to block  424  where the loop breaker tag is removed from the loop breaker data frame. In an embodiment, at block  424 , the networking device removes the loop breaker tag from the loop breaker data frame to generate the data frame that entered the L2 domain  202 . For example, the networking device may remove at least the VLAN tag  807  from the loop breaker data frame  800   b  to generate the data frame  800   a . The networking device may then calculate the hash of the data frame without the VLAN tag  807  and insert the hash in the FCS field  812  of the data frame  800   a . One of skill in the art in possession of the present disclosure will recognize that, in some instances, the VLAN tag field  806  may also be removed (e.g., instances where the computing device  212  and/or  214  is an end host and the data frame  800   a  is to be forward via the edge connection  212   a  and/or  214   a ). 
     The method  400  may then proceed to block  426  where the networking device forwards the data frame via the edge connection. In an embodiment, at block  426 , the networking device in the L2 domain  202  may then forward the data frame  800   a  via the edge connection (e.g., the edge connection  212   a  and/or  214   a ). With reference to  FIG.  6 A , the networking device  208  may receive the loop breaker data frame  504  via the L2 domain connection  206   a  (as illustrated by the bolded arrow on network connection  206   a  in  FIG.  6 A ). The networking device  208  may determine that the loop breaker data frame  504  is to be forwarded to the computing device  214  via the edge connection  214   a . The networking device  208  may remove the loop breaker tag  504   a  that includes the tag value  504   b  assigned by the networking device  204 , as illustrated in  FIG.  6 B . As will be appreciated by one of skill in the art in possession of the present disclosure, by removing the loop breaker tag  504   a , the networking device  208  generates the data frame  502  that entered the L2 domain  202 . However, in some examples, the data frame  502  that exits that L2 domain  202  may be different than the data frame that entered the L2 domain  202 . The networking device  208  may then forward the data frame  502  to the computing device  214  via the edge connection  214   a , as illustrated in  FIG.  6 C . 
     If, at decision block  422 , it is determined that the loop breaker data frame is to remain in the L2 domain, then the method  400  may proceed back to decision block  406 - 410  where the networking device processes the loop breaker data frame and forwards the loop breaker data frame according to conventional L2 protocols and via one or more of its L2 domain connections. In an embodiment, the networking device in the L2 domain  202  that receives the loop breaker data frame via one of its L2 domain connections may forward that loop breaker data frame via one or more of the other L2 domain connections similarly as discussed above with reference to block  410 . In some embodiments, the networking device that receives the loop breaker data frame  800   b  may be designated as a loop breaker node and may insert its tag value into the loop breaker tag (e.g., the VLAN tag  807 ) included in the loop breaker data frame  800   b  prior to forwarding the loop breaker data frame  800   b , similarly as discussed above with reference to blocks  408  and  410 . For example, and as illustrated in  FIG.  7 C , the networking device  204  may receive the loop breaker data frame  704  that includes the loop breaker tag  704   a  via the L2 domain connection  218   a  (as illustrated by the bolded arrow on network connection  218   a  in  FIG.  7 C ). In this example, the networking device  204  is not designated as a loop breaker node, while the networking device  206  is designated as a loop breaker node with a tag value of “3”. As illustrated in  FIG.  7 D , the networking device  204  may forward the loop breaker data frame  704  to the networking device  206  via the L2 domain connection  204   a  (as illustrated by the bolded arrow on network connection  204   a  in  FIG.  7 D ), with no tag value indicated at this step in this example. The networking device  206  may then insert its tag value  704   b  (e.g., by setting the third bit of the VLAN tag  807 ), as illustrated in  FIG.  7 E , and may forward the loop breaker data frame  704  that includes the tag value  704   b  via the L2 domain connection  206   a , as illustrated by the bolded arrow on network connection  206   a  in  FIG.  7 F . If the networking device  206  determines that its tag value  704   b  is already present in the loop breaker data frame  704 , the networking device  206  may drop the loop breaker data frame  704  according to block  418  of method  400 . 
     Thus, systems and methods have been described that provide a loop prevention system that includes a plurality of networking devices in a loop configuration, with at least one of the networking devices designated as a loop breaker node. The loop breaker node may receive a loop breaker data frame, insert a tag value into a loop breaker tag included in the loop breaker data frame, and forward the loop breaker data frame via its L2 domain connections. Upon subsequently receiving a loop breaker data frame, the loop breaker node will check to determine whether its assigned tag value is present in that loop breaker data frame. If the tag value is present, the loop breaker node will drop or otherwise block the loop breaker data frame from being forwarded, and alert an administrator that logical loop is present in the L2 domain. The loop prevention system of the present disclosure thus operates to break logical loops without completely blocking any of the links that provide the loop configuration, which prevents the network, its networking devices, and its applications from going down because of looping traffic when the STP in the L2 domain has an issue that is either temporary or that requires administrator action to correct. 
     Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure and in some instances, some features of the embodiments may be employed without a corresponding use of other features. Accordingly, it is appropriate that the appended claims be construed broadly and, in a manner, consistent with the scope of the embodiments disclosed herein.