Group member detection among nodes of a network

Abstract

A method, in accordance with particular embodiments, includes receiving a configuration message for configuring a first node with an IP address. The configuration message comprises a subnet portion associated with a group of nodes and a host portion associated with the first node. The method also includes detecting a second node in a routing table maintained by the first node. The method further includes determining that the second node has an IP address comprising a subnet portion matching the subnet portion of the IP address associated with the first node. The method additionally includes determining that the second node is a member of the group of nodes based on the matching subnet portion of the IP address of the second node. The method also includes transmitting a message to at least the second node identifying a service supported by the first node for the group of nodes.

Claims

What is claimed: 1. A method comprising: receiving a configuration message for configuring a first node with an IP address, the configuration message comprising a subnet portion and a host portion, the subnet portion associated with a group of nodes and the host portion associated with the first node; receiving an update to a routing table maintained by the first node; determining that the update to the routing table includes adding a second node to the routing table; determining that the added second node has an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node; determining that the added second node is a member of the group of nodes based on the matching subnet portion of the IP address of the added second node; transmitting, in response to determining that the added second node is a member of the group of nodes, a message to at least the added second node identifying at least one service supported by the first node for the group of nodes; and wherein the first node is configured to be a member of the group of nodes and is also configured to be a member of another group of nodes associated with another subnet portion. 2. The method of claim 1 , further comprising: detecting a removal of a third node from the routing table maintained by the first node; determining that the third node had an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node; determining that the third node was a member of the group of nodes based on the matching subnet portion of the third node's IP address; and removing at least one reference to the third node, the at least one reference indicating that the third node is a member of the group of nodes. 3. The method of claim 1 , wherein the update to the routing table maintained by the first node is generated via a routing protocol used by the first node. 4. The method of claim 1 , wherein each node of the group of nodes is used as part of a virtual local area network. 5. The method of claim 4 , wherein the virtual local area network is implemented via virtual private local area network service. 6. The method of claim 1 , further comprising receiving a second configuration message configuring the first node with the at least one service, the second configuration message comprising a service identifier and an indication that the at least one service is associated with the group of nodes. 7. Logic embodied in a non-transitory computer readable medium comprising code that when executed by a processor is configured to: receive a configuration message for configuring a first node with an IP address, the configuration message comprising a subnet portion and a host portion, the subnet portion associated with a group of nodes and the host portion associated with the first node; receive an update to a routing table maintained by the first node; determine that the update to the routing table includes adding a second node to the routing table; determine that the added second node has an IP address comprising a subnet portion that matches the subnet portion or the IP address associated with the first node; determine that the added second node is a member of the group of nodes based on the matching subnet portion of the IP address of the added second node; transmit, in response to determining that the added second node is a member of the group of nodes, a message to at least the added second node identifying at least one service supported by the first node for the group of nodes; and wherein the first node is configured to be a member of the group of nodes and is also configured to be a member of another group of nodes associated with another subnet portion. 8. The logic of claim 7 , wherein the code is further configured to: detect a removal of a third node from the routing table maintained by the first node; determine that the third node had an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node; determine that the third node was a member of the group of nodes based on the matching subnet portion of the third node's IP address; and remove at least one reference to the third node, the at least one reference indicating that the third node is a member of the group of nodes. 9. The logic of claim 7 , wherein the update to the routing table maintained by the first node is generated via a routing protocol used by the first node. 10. The logic of claim 7 , wherein each node of the group of nodes is used as part of a virtual local area network. 11. The logic of claim 10 , wherein the virtual local area network is implemented via virtual private local area network service. 12. The logic of claim 7 , wherein the code is further configured to receive a second configuration message configuring the first node with the at least one service, the second configuration message comprising a service identifier and an indication that the at least one service is associated with the group of nodes. 13. An apparatus comprising: an interface configured to receive a configuration message for configuring a first node with an IP address, the configuration message comprising a subnet portion and a host portion, the subnet portion associated with a group of nodes and the host portion associated with the first node; a processor coupled to the interface and configured to: receive an update to a routing table maintained by the first node; determine that the update to the routing table includes adding a second node to the routing table; determine that the added second node has an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node; and determine that the added second node is a member of the group of nodes based on the matching subnet portion of the IP address of the added second node; wherein the interface is further configured to transmit, in response to determining that the added second node is a member of the group of nodes, a message to at least the added second node identifying at least one service supported by the first node for the group of nodes; and wherein the first node is configured to be a member of the group of nodes and is also configured to be a member of another group of nodes associated with another subnet portion. 14. The apparatus of claim 13 , wherein the processor is further configured to: detect a removal of a third node from the routing table maintained by the first node; determine that the third node had an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node; determine that the third node was a member of the group of nodes based on the matching subnet portion of the third node's IP address; and remove at least one reference to the third node, the at least one reference indicating that the third node is a member of the group of nodes. 15. The apparatus of claim 13 , wherein the update to the routing table maintained by the first node is generated via a routing protocol used by the first node. 16. The apparatus of claim 13 , wherein each node of the group of nodes is used as part of a virtual local area network. 17. The apparatus of claim 16 , wherein the virtual local area network is implemented via virtual private local area network service. 18. The apparatus of claim 13 , wherein the interface is further configured to receive a second configuration message configuring the first node with the at least one service, the second configuration message comprising a service identifier and an indication that the at least one service is associated with the group of nodes.
TECHNICAL FIELD The present disclosure relates generally to detecting group membership among nodes of a network. BACKGROUND A common feature provided by service providers is virtual local area networks (VLAN). One common service used with VLANs is virtual private LAN service (VPLS). VPLS provides private connections through the service provider's network connecting two or more customer sites. From the customer's perspective, the two or more sites of a VLAN appear to be on the same local LAN, despite the fact that the two or more sites are on separate networks in different geographic areas. In order for the service provider to provide a customer with a VLAN, the service provider must configure each of the provider's edge routers to which the customer's two or more network are to connect. The edge routers must be configured to be members of the same group (the group associated with the customer) and each of the edge routers in the group must be configured with the services that are to be supported by the group. The initial configuration can be time consuming. Moreover, any change in either the group membership (e.g., adding or removing an edge router) or the supported services (e.g., adding or removing a service) requires that the configuration of each edge router in the group be updated. For example, if a new edge router is added to the group, the new router has to be added to each service at each router of the group. Some providers may use the border gateway protocol (BGP) to at least partially simplify the update process. Using BGP, changes in the group may be made by updating a group membership list maintained at each router. Thus, BGP simplifies updates by not requiring that each service at each router also be updated. BRIEF DESCRIPTION OF THE FIGURES For a more complete understanding of particular embodiments and their advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which: FIG. 1 illustrates a block diagram of a network configured to implement group member detection among nodes of the network, in accordance with particular embodiments; FIG. 2 illustrates a more detailed block diagram of a node of a network, in accordance with particular embodiments; and FIG. 3 illustrates a method for implementing group member detection among nodes of a network, in accordance with particular embodiments. DESCRIPTION OF EXAMPLE EMBODIMENTS Overview A method, in accordance with particular embodiments, includes receiving a configuration message for configuring a first node with an IP address. The configuration message comprises a subnet portion and a host portion. The subnet portion is associated with a group of nodes and the host portion is associated with the first node. The method also includes detecting a second node in a routing table maintained by the first node. The method further includes determining that the second node has an IP address comprising a subnet portion that matches the subnet portion of the IP address associated with the first node. The method additionally includes determining that the second node is a member of the group of nodes based on the matching subnet portion of the IP address of the second node. The method also includes transmitting a message to at least the second node identifying at least one service supported by the first node for the group of nodes. Example Embodiments FIG. 1 illustrates a block diagram of a network configured to implement group member detection among nodes of the network, in accordance with particular embodiments. As discussed in more detail below, nodes 41 may be able to detect other group members by the subnet portion of the other node's IP address. If node 41 d , for example, detects a new entry in its routing table that has an IP address with a subnet portion that matches the subnet portion of its own IP address, then node 41 d may determine that a new member has been added to the group. Once a new member has been detected, node 41 d may update its configuration to include the new node as a potential destination to forward group packets. When node 41 d forwards group packets to other nodes of the group, node 41 d may attach two different labels to the packet, one label that identifies node 41 d as the sender and one label that identifies the service associated with the packet. This may allow the recipient node to know where the packet came from and the group and service with which the packet is associated. Communication network 30 includes a plurality of endpoints 32 a - 32 j having the ability to communicate amongst one another through one or more networks 36 and 37 . In certain embodiments, network 37 may be operated by a network service provider and networks 36 may be operated by one or more customers of the network service provider. Networks 36 may be operated at geographically separate sites (e.g., various office sites). In particular embodiments, two or more of networks 36 may be coupled together via a virtual local area network (VLAN) that passes through network 37 . The VLAN connected networks 36 may appear to one another as a single LAN. For example, if networks 36 a and 36 c were part of the same VLAN, endpoint 32 a may have the same access to endpoint 32 h as it does to endpoint 32 b . In certain embodiments, VLANs may be created, destroyed, and/or modified without the need for extensive configuration or re-configuration of nodes 41 . Each VLAN may be referred to as a group, wherein the nodes that are used for the VLAN may be referred to as the group members. In certain embodiments, each group may have a unique identifier associated therewith, and each node within the group may also have unique identifier associated therewith. At least one address associated with a node may comprise both identifiers. In particular embodiments, a subnet mask may be used to identify the group identifier portion of the address (e.g., the subnet portion of an IP address) and the node identifier portion of the address (e.g., the host portion of the IP address). Because each group may comprise its own subnet, nodes 41 may detect changes to group membership by detecting changes in, for example, a routing table. For example, the open shortest path first (OSPF) routing protocol adds and removes IP addresses from a routing table. Based on the addresses in the routing table, nodes 41 may be able to determine group membership. For example, if node 41 c detects a new IP address in the routing table that has a subnet portion that matches the subnet portion of one of node 41 c 's IP addresses, then node 41 c may determine that a new node has been added to a group to which node 41 c is a member. In particular embodiments, each group may be configured to support one or more services (e.g., voice over IP (VOIP), file transfer protocol (FTP), virtual private network (VPN), virtual private LAN service (VPLS), etc.). Each service may have its own unique identifier. In certain embodiments, when one of nodes 41 , for example node 41 a , detects that a new node has been added to a group to which node 41 a is also a member, node 41 a may send (e.g., broadcast) one or more messages advertising which services it supports. When the new node receives the messages from node 41 a it may update its configuration to reflect node 41 a being a group member and the services supported by node 41 a. Once configured, when one of nodes 41 sends data related to a service, the data may be sent with at least two labels, one that identifies the sender and one that identifies the service. Using the two labels as well as the advertisements received from other group members, nodes 41 may be able to determine where and how to forward incoming traffic. Networks 36 and 37 may be used in the sending or receiving of communications that comprise any type of media transmitted using any audio, video, and/or data means, including signals, data or messages transmitted through any suitable technology, such as voice devices, text chat, web sessions, streaming media (e.g., streaming video), downloadable media, real-time communications, facsimile, on-line gaming, file transfers, instant messaging and e-mail. The data may be routed through one or more nodes 41 of network 37 . In some embodiments, nodes 41 may represent edge routers (e.g., provider edge routers). Edge routers may comprise routers configured to couple network 37 with external components and/or networks, such as networks 36 . Nodes 41 may be coupled to one another via any of a variety of nodes, switches, routers, hubs, and/or servers within network 37 . For convenience, none of the intermediary components coupling nodes 41 to one another are depicted. In the illustrated embodiment, communication network includes a mix of different types and sizes of networks. For example, network 37 is a wide area network (WAN) that enables signaling and communication sessions between a plurality of endpoints 32 , LANs 36 , and/or nodes 41 . WAN network 37 may be distributed across multiple cities and geographic regions, and may be referred to as a metro area network (MAN). In certain embodiments, network 37 may represent one or more networks comprising a network service provider's network. Nodes 41 of network 37 may be interconnected through any number of additional nodes within network 37 , including, but not limited to, switches, hubs, routers, servers, and/or gateways. Communication networks 36 may be local area networks (LANs) that couple together two or more of endpoints 32 . As discussed below, two or more LAN networks 36 may be coupled together in a VLAN via network 37 . Accordingly, remote endpoints that are a part of the VLAN may communicate with other endpoints of the VLAN as though they were part of a single LAN. In some situations the two more networks 36 of a VLAN may be operated by the same company. For example, a company may wish to have a VLAN to connect two separate networks, one for a remote server site and one for a local office site. In certain embodiments, communication network 30 may include additional, fewer, and/or different networks including IP and non-IP networks. For example, in some embodiments, a public switched telephone network (PSTN) may be coupled to network 37 via one or more gateways. Similar to network 37 , each of networks 36 include a plurality of nodes (for simplicity, only nodes 41 of network 37 are depicted) that couple together endpoints 32 and other networks 36 and/or 37 . This may allow for the establishment of secure and/or private exchange of data and/or signals between any of endpoints 32 of the same VLAN. Nodes 41 may also be used to communicate control and data signals among each other and between endpoints 32 . Although the illustrated embodiment specifically illustrates particular networks, the term “network” should be interpreted as generally defining any interconnection of components capable of transmitting audio and/or video communication signals, data, and/or messages, including signals, data or messages transmitted through text chat, instant messaging, file transfer, and e-mail. Any one of networks 36 and/or 37 may be a LAN, WAN, global distributed network (e.g., the Internet), an intranet, an extranet, or any other form of wireless or wireline communication network. In addition, networks 36 and 37 , in accordance with various embodiments, may include any number of endpoints 32 or nodes 41 . In particular embodiments, one or more of networks 36 and 37 may employ one or more protocols that allow for the addressing or identification of endpoints and/or nodes coupled thereto. For example, using Internet protocol (IP), each of the components coupled together by networks 36 and 37 may be identified using IP addresses. In this manner, networks 36 and 37 may support any form and/or combination of point-to-point, multicast, unicast, or other techniques for exchanging media packets among components in communication network 30 . In certain situations, the IP address may comprise a subnet portion and a host portion; the subnet portion may be used to associate a node with a particular group (e.g., a particular VLAN), and the host portion may be used to identify a particular node within the group. Depending on the embodiment, network 37 may utilize one or more different routing protocols such as OSPF, interior gateway routing protocol (IGRP), enhanced IGRP (EIGRP), routing information protocol (RIP) or intermediate system to intermediate system (IS-IS). Networks 36 and 37 may also use any other protocols (e.g., H.323) in transporting data. Any network components, protocols and/or devices capable of exchanging audio, video, or other data using frames or packets are included within the scope of particular embodiments. Nodes 41 may include any combination of network components, session border controllers, gatekeepers, call managers, conference bridges, routers, hubs, switches, gateways, endpoints, edgepoints, or any other hardware, encoded software, or embedded logic implementing any number of communication protocols that allow for the exchange of packets in communication network 30 . In particular embodiments, one or more of nodes 41 , may be under the control of a computer system, security database, service provider, organization, entity or any other responsible component or entity. For example, a service provider may be responsible for creating and/or managing one or more VLANs. The service provider may determine and/or assign a subnet value to be used to identify the group. The service provider may also be responsible for configuring the services that are to be supported by each group. It will be recognized by those of ordinary skill in the art that endpoints 32 and nodes 41 may comprise any combination of hardware, encoded software, or embedded logic that provides network services to a user. For example, endpoints 32 may include a telephone, a computer, a media server, a file server, a video monitor, a camera, an IP phone, a cell phone or any other communication hardware, encoded software, or embedded logic running on a computer that supports the communication of packets (or frames) using networks 36 and/or 37 . Endpoints 32 may also include unattended or automated systems, gateways, other intermediate components or other devices that can establish communication sessions. Although FIG. 1 illustrates a particular number and configuration of endpoints, nodes, and networks, communication network 30 contemplates any number or arrangement of such components for communicating data. In addition, elements of communication network 30 may include components centrally located (local) with respect to one another or distributed throughout communication network 30 . FIG. 2 includes a more detailed block diagram of a node of a network, in accordance with particular embodiments. More specifically, communication network 200 comprises provider network 237 and customer networks 236 . Customer networks 236 may represent LANs being operated at various office sites for a particular company. Provider network 237 may represent a WAN maintained by a service provider to supply customers with network access. In certain embodiments, network 237 may support using one or more VLANs to connect two or more of networks 236 . Networks 236 and 237 may comprise any of the features, protocols, and/or components discussed above with respect to networks 36 and 37 of FIG. 1 . In the depicted embodiment, each customer network 236 is coupled to provider network 237 via a respective node 241 . Nodes 241 may be the entry point or border between customer networks 236 and provider network 237 . Though only three nodes are depicted, provider network 237 may comprise any number of nodes, including additional edge nodes for connecting to additional customer networks as well as additional intermediary nodes for routing traffic between nodes 241 . Nodes 241 may facilitate establishment of VLANs through provider network 237 . In particular embodiments, each VLAN has a group of nodes 241 associated therewith. A particular group may comprise two or more nodes 241 connecting two or more customer networks 236 in a particular VLAN. For example, a group, associated with a VLAN comprising customer networks 236 a and 236 b , may comprise nodes 241 a and 241 b . Each node 241 of the group of nodes may be assigned an IP address comprising a unique subnet portion and a unique host portion. The subnet portion is unique to each group (e.g., each VLAN) within provider network 237 , and the host portion is unique to each member (e.g., each node 241 ) within the group. A subnet mask may be used to indicate the division between the two portions of the IP address. As will be discussed in more detail below, the subnet portion of the IP address may be used by nodes 241 to identify when nodes have been added or removed from a group. In the depicted embodiment, node 241 a comprises processor 235 , storage 231 , and interface 239 . For simplicity, the components of nodes 241 b and 241 c are not depicted, though in certain embodiments they may comprise similar components. Processor 235 may be a microprocessor, controller, application specific integrated circuit (ASIC), field-programmable gate array (FPGA), or any other suitable computing device, resource, or combination of hardware with encoded software or embedded logic operable to provide, either alone or in conjunction with other node 241 a components (e.g., storage 231 and/or interface 239 ) node functionality. Such functionality may include establishing, maintaining, and updating one or more VLANs comprising one or more groups of one or more group members. Additional functionality may include determining where and how to forward packets based on two labels attached to the packet. One of the labels may identify the sender and the other label may identify the service associated with the packet. Storage 231 may be any form of computer-readable storage media encompassing one or more tangible computer-readable storage media possessing structures. Storage 231 may comprise any volatile or non-volatile memory including, without limitation, magnetic media (e.g., magnetic tape, hard disk, or floppy disk), optical media, semiconductor-based or other integrated circuit (IC) based media (such, as for example, a field-programmable gate array (FPGA) or an application-specific IC (ASIC)), holographic storage media, random access memory (RAM), read-only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), removable media, solid state memory, flash memory, or any other suitable local or remote memory component or a combination of two or more of these, where appropriate. Storage 231 may store any suitable data or information, including encoded software, or embedded logic, utilized by node 241 a and/or processor 235 . For example, storage 231 may store a table, list, or other organization of data identifying the group or groups to which node 241 a is a member, the services supported by node 241 a , the group with which each service is associated, the identifiers or labels associated with other group members, the identifiers or labels associated with each service, and/or any other information that may be used in processing and/or forwarding traffic among group members. As another example, in certain embodiments, storage 231 may embody logic configured to perform any of the functionality disclosed herein. The logic may be stored or embodied in storage 231 as encoded software encompassing one or more applications, bytecode, one or more computer programs, one or more executables, one or more instructions, logic, machine code, one or more scripts, or source code, and vice versa, where appropriate. Particular embodiments may use any suitable encoded software written or otherwise expressed in any suitable programming language or combination of programming languages stored or encoded in any suitable type or number of computer-readable storage media. Herein, reference to a computer-readable storage medium excludes any medium that is not eligible for patent protection under 35 U.S.C. §101. Herein, reference to a computer-readable storage medium excludes transitory forms of signal transmission (such as a propagating electrical or electromagnetic signal per se) to the extent that they are not eligible for patent protection under 35 U.S.C. §101. Interface 239 may comprise any hardware combined with any encoded software, or embedded logic used to send and receive information with other components of communication network 200 and/or with one or more users (e.g., a network administrator). Interface 239 may, for example, transmit a broadcast message to nodes 241 advertising the services supported by node 241 a . Depending on the embodiment, interface 239 may provide any wired or wireless connection and support any wired or wireless protocol necessary to allow node 241 a to communicate with the other components of communication network 200 and/or to communicate with one or more users (e.g., network administrators). The following example may help to illustrate certain features and benefits of particular embodiments. For purposes of this example, assume that customer networks 236 a and 236 b are operated by the same customer. Further assume that the customer has contacted the service provider responsible for operating provider network 237 and has requested a VLAN connecting customer networks 236 a and 236 b . In this scenario, the VLAN may be implemented via VPLS. For purposes of discussion herein, specific identification examples from the scenario depicted in FIG. 2 are included in parenthesis where appropriate. These values are merely provided for illustration and are not intended to be limiting. In response to receiving the request to establish the VLAN, a network administrator for the service provider may configure nodes 241 a and 241 b via the respective interface (e.g., interface 239 ) for each of nodes 241 a and 241 b . Assuming that the network administrator begins with node 241 a , interface 239 may receive one or more configuration messages. The configuration messages may comprise an IP address (e.g., 176.0.0.1 or 177.0.0.1) and subnet mask (e.g., /24). The IP address and subnet mask may be uniquely associated with the requested VLAN and node 241 a . For example, the IP address may comprise a subnet portion (e.g., 176.0.0, the first 24 bits of the IP address) which uniquely identifies the group associated with the customer's VLAN. The IP address may also comprise a host portion (e.g., 0.1, the last 8 bits) which uniquely identifies node 241 a within the group associated with the VLAN requested by the customer. The subnet mask may define which portion of the IP address is the subnet portion and which portion of the IP address is the host portion. The configuration messages may also include information identifying one or more services (e.g., 12 vfi vpls-1) that are to be supported by the customer's VLAN. Each service may have its own service identifier (e.g., vpn id 10) associated therewith. In some embodiments, depending on the situation, if node 241 a is a member of more than one group, or if network 237 comprises more than one group (VLAN), the configuration messages may include an identifier indicating which group a particular service is associated with (e.g., vdc-id 0). In the depicted embodiment, node 241 a has been configured to be a part of two groups (vdc-id 0 and vdc-id 1) with one service (vpls-1) being associated with the first group and two services (vpls-2 and vpls-3) being associated with the second group. The different IP addresses assigned to node 241 a may be used for different connections associated with different VLANs. The configuration information received by interface 239 may be stored in storage 231 . In some embodiments, once node 241 a has been configured, interface 239 may send out a broadcast message identifying the services that it supports. The message may be broadcast to members of the same subnet or subnets to which node 241 a is a member. The network administrator may then configure node 241 b in a similar fashion. For purposes of this example, assume that node 241 b is only a member of the first group and only supports the first service. Further assume that node 241 b is the second node in the group and has an IP address with a host portion of 0.2. Thus, node 241 b 's IP address may be 176.0.0.2. Network 237 may use any of a variety of routing protocols to determine and/or generate routes through network 237 . Part of the function of a routing protocol is to build routing tables at the various nodes within the network. The routing tables may, among other functions, identify neighboring nodes and their associated IP addresses. Storage 231 may be used in storing the routing table created for node 241 a . Processor 235 may determine that a node in the routing table is part of the same group, or groups, as node 241 a by comparing the subnet portion of the node's IP address in the routing table with the subnet portion of node 241 a 's IP address. For example, in the depicted scenario, when node 241 a detects a new entry for node 241 b having an IP address of 176.0.0.2, processor 235 may determine that the subnet portion (176.0.0) matches the subnet for one of the groups of which node 241 a is a member. Once processor 235 has recognized the presence of a new group member, processor 235 may generate a broadcast message to be sent by interface 239 . The broadcast message may be broadcast to the members of the group for which processor 235 detected the new node, node 241 b . The broadcast message may comprise information regarding which services node 241 a supports for the respective group. When node 241 b receives the broadcast message sent by node 241 a , node 241 b may update its configuration and store the information in its own storage. The stored information may be used to update records stored by the storage of node 241 b indicating which services are supported by which nodes of which group. Once the nodes have been configured, they may be ready to forward packets associated with the VLAN. When interface 239 receives a VLAN packet from customer network 236 a , processor 235 may stack two MPLS labels onto the packet before sending it to node 241 b on its way to customer network 236 b . In certain embodiments, the first of the two labels may identify node 241 a as the sender of the forwarded packet. The sender identification may comprise less than the full IP address of node 241 . This may be a result of the MPLS label supporting only twenty bit labels (as compared to the thirty-two bits used for the full IP address). The second label may identify the service with which the packet is associated. Using the two labels, node 241 b may receive all the information that it needs to properly process and/or forward the packet. The processor of node 241 b may be able to determine who sent the packet based on the sender identification, what service the packet is associated with based on the service identification, and what group the packet is associated with based on the sender identification and/or the service identification. Thus far, several different embodiments and features have been presented. While particular customer networks 236 , nodes 241 , and provider network 237 are depicted, communication network 200 may comprise any number of networks, devices and/or components. Particular embodiments may combine one or more features depending on operational needs and/or component limitations. This may allow for great adaptability to the needs of various organizations and users. Some embodiments may include additional features. Furthermore, particular embodiments may be employed in any system that supports the use of packet labels and/or VLANs. FIG. 3 illustrates a method for implementing group member detection among nodes of a network, in accordance with particular embodiments. In the embodiment depicted it may be assumed that the following steps are being performed by a node (hereinafter the first node), such as node 241 a described above with respect to FIG. 2 . The method begins at step 305 with the receipt of a first configuration message comprising an IP address for the first node. The IP address may include a subnet portion and a host portion, as defined by a subnet mask. The subnet portion may be associated with a group of nodes, such as the nodes used in a particular VLAN. The host portion may identify the first node within the group identified by the subnet portion. The first node may be configured with multiple IP addresses when it is a member of multiple groups (e.g., where more than one VLAN is to be supported by the first node). At step 310 , a second configuration message is received. The second configuration message may configure the first node with one or more services that are to be supported by the first node for the group. The second configuration message may include, for each service to be supported, a unique service identifier. In some embodiments and/or scenarios the second configuration message may also include an indication of which group each service is associated with. This may be used in instances where there are more than one group. At step 315 an update to a routing table maintained by the first node is received. The update may be generated via a routing protocol. For example, the first node may be an edge router within a network using a routing protocol such as OSPF, IGRP, EIGRP, RIP, or IS-IS. The routing protocol may create, update, and/or maintain the routing table for the first node. The routing table may comprise IP addresses associated with other nodes. At steps 320 and 340 , a determination is made as to whether the update to the routing table included adding or removing a node to the routing table. The determination may be made based on detecting a change to the routing table. In some embodiments, an existing node may be assigned a new IP address or may have an IP address de-activated. This change may be considered to be adding or removing a node, even though the node itself is not added or removed. The new node in this scenario is a new node instance. Node instances may be used for a node that is part of multiple groups. Each group may comprise a single instance of the node and each instance of the node may have its own IP address. This may allow multiple VLANs to be established through the same node. If a new node is added to the routing table at step 320 , then at step 325 the first node determines the subnet portion of the new IP address. The subnet portion may be determined from the IP address using a subnet mask. For example, the subnet mask may identify which bits of the IP address are the subnet portion and which bits are the host portion. In certain embodiments, the subnet mask may be stored in the routing table. At step 330 , the first node determines whether the determined subnet portion of the new node's IP address matches the subnet portion of the first node's IP address. Thus, the first node may be able determine that the first node and the new node are members of the same group based on the subnet portion of their IP addresses. Being in the same group may indicate that they are part of the same VLAN. If the subnet portions do not match, then the method may return to step 315 until another update to the routing table is detected. At step 335 the first node transmits a message to at least the new node identifying at least one service supported by the first node for the group. The message may be a broadcast message sent to all the nodes of the group or even all the nodes of the network. The message may be sent to provide information to the new node regarding services supported by the first node. The new node may receive similar messages from all the other group members. This may provide the new node with complete information regarding the various group members and supported services without a system administrator having to log-in to the new node and manually configure all the information. The new node may use the received information to update its configuration to reflect the received information. In certain embodiments, the existing nodes of the group may also update their configuration with information from the new node. This may keep the nodes up-to-date without a network administrator having to manually update each of the nodes. If an existing node is removed from the routing table at step 340 , then at step 345 the first node determines the subnet portion of the removed IP address. The subnet portion may be determined from the IP address using a subnet mask. For example, the subnet mask may identify which bits of the IP address are the subnet portion and which bits are the host portion. In certain embodiments, the subnet mask may be stored in the routing table. At step 350 , the first node determines whether the determined subnet portion of the removed node's IP address matches the subnet portion of the first node's IP address. Thus, the first node may be able determine that the first node and the removed node were members of the same group based on the subnet portion of their IP addresses. If the subnet portions do not match, then the method may return to step 315 until another update to the routing table is detected. At step 355 the first node removes one or more references indicating that the removed node is a member of the group. A similar removal may be conducted at each of the other remaining members of the group. In this manner, the group members may be apprised of which nodes are a part of the group and available to receive packets. Some of the steps illustrated in FIG. 3 may be combined, modified or deleted where appropriate, and additional steps may also be added to the flowchart. Additionally, steps may be performed in any suitable order without departing from the scope of particular embodiments. Technical advantages of particular embodiments may include allowing a service provider to easily configure their network to support numerous VLANs, with each VLAN supporting numerous services. Moreover, by assigning a unique subnet value to each group of nodes supporting a different VLAN, changes to the VLANs may be made autonomously using the IP addresses of the nodes. This may greatly reduce and/or eliminate the need for a network administrator to manually make changes to each node of the network. This may allow a system provider to manage a large number of VLANs over a large number of nodes, such as in a datacenter environment. Other technical advantages will be readily apparent to one of ordinary skill in the art from the figures, descriptions, and claims provided herein. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages. Although particular embodiments have been described in detail, it should be understood that various other changes, substitutions, combinations and alterations may be made hereto without departing from the spirit and scope of the disclosure. It is intended that particular embodiments encompass all such changes, substitutions, variations, alterations and modifications as falling within the spirit and scope of the appended claims. For example, although an embodiment has been described with reference to a number of elements included within network 30 , such as nodes and endpoints, these elements may be combined, rearranged or positioned in order to accommodate particular routing needs. In addition, any of these elements may be provided as integrated internal or separate external components to each other where appropriate. Particular embodiments contemplate great flexibility in the arrangement of these elements as well as their internal components.

Description

Topics

Download Full PDF Version (Non-Commercial Use)

Patent Citations (29)

    Publication numberPublication dateAssigneeTitle
    US-2003112808-A1June 19, 2003Net Reality LtdAutomatic configuration of IP tunnels
    US-2009097490-A1April 16, 2009Onvoy, Inc.Communications network with converged services
    US-2010332516-A1December 30, 2010Alcatel-Lucent Usa Inc.Linking inner and outer mpls labels
    US-5819036-AOctober 06, 1998Time Warner CableMethod for message addressing in a full service network
    US-7188180-B2March 06, 2007Vimetx, Inc.Method for establishing secure communication link between computers of virtual private network
    US-7260097-B2August 21, 2007Nortel Networks LimitedLabel control method and apparatus for virtual private LAN segment networks
    US-7418504-B2August 26, 2008Virnetx, Inc.Agile network protocol for secure communications using secure domain names
    US-7420933-B2September 02, 2008Cisco Technology, Inc.Techniques for zero touch provisioning of edge nodes for a virtual private network by pushing configuration from a server
    US-7478167-B2January 13, 2009Nortel Networks LimitedResource allocation using an auto-discovery mechanism for provider-provisioned layer-2 and layer-3 virtual private networks
    US-7490151-B2February 10, 2009Virnetx Inc.Establishment of a secure communication link based on a domain name service (DNS) request
    US-7509491-B1March 24, 2009Cisco Technology, Inc.System and method for dynamic secured group communication
    US-7535856-B2May 19, 2009Cisco Technology, Inc.Techniques for zero touch provisioning of edge nodes for a virtual private network
    US-7564802-B2July 21, 2009Alcatel-Lucent Usa Inc.Method for optimal assignment of customer edge (CE) routers to virtual private network route forwarding (VRF) tables
    US-7580372-B2August 25, 2009Alcatel LucentSystem and method for implementing multiple spanning tree protocol automatic 802.1Q trunking
    US-7593395-B2September 22, 2009Nortel Networks LimitedApparatus and method for distributing layer-2 VPN information
    US-7660234-B2February 09, 2010Corrigent Systems Ltd.Fault-tolerant medium access control (MAC) address assignment in network elements
    US-7684426-B2March 23, 2010Netlogic Microsystems, Inc.System and method for performing concatentation of diversely routed channels
    US-7693144-B2April 06, 2010Alcatel-Lucent Usa Inc.Method of providing VPLS service in a bridged (e.g. 802.1D) network of a service provider
    US-7697552-B2April 13, 2010Corrigent Systems Ltd.MAC address scalability in interconnected rings
    US-7778199-B2August 17, 2010Cisco Technology, Inc.Techniques for customer self-provisioning of edge nodes for a virtual private network
    US-7792123-B2September 07, 2010Huawei Technology Co., Ltd.Method and system for implementing hierarchical VPLS
    US-7796593-B1September 14, 2010Juniper Networks, Inc.Router using internal flood groups for flooding VPLS traffic
    US-7839850-B2November 23, 2010Juniper Networks, Inc.Forming equal cost multipath multicast distribution structures
    US-7848259-B2December 07, 2010Opnet Technologies, Inc.Systems and methods for inferring services on a network
    US-7860112-B2December 28, 2010Juniper Networks, Inc.Bi-directional forwarding in ethernet-based service domains over networks
    US-7933267-B1April 26, 2011Juniper Networks, Inc.Shared multicast trees for multicast virtual private networks
    US-7945654-B2May 17, 2011Virnetx, Inc.Agile network protocol for secure communications using secure domain names
    US-8098665-B2January 17, 2012At&T Intellectual Property I, L.P.Method and system for automating membership discovery in a distributed computer network
    US-8189585-B2May 29, 2012Cisco Technology, Inc.Techniques for virtual private network fast convergence

NO-Patent Citations (7)

    Title
    Data Network Resource, IP Addressing, downloaded from http://www.rhyshaden.com/ipadd.htm on Aug. 13, 2010.
    IP Addressing and Subnetting for New Users, Document ID: 13788, Updated Sep. 26, 2005.
    Notice of Appeal and Appeal Brief, U.S. Appl. No. 12/975,457, filed Dec. 22, 2010, Inventor: Richard Shing-Hong Lam, (12 pgs), Mar. 19, 2013.
    Response Pursuant to 37 C.F.R. § 1.111, U.S. Appl. No. 12/975,457, filed Dec. 22, 2010, Inventor: Richard Shing-Hong Lam, (11 pgs), Dec. 5, 2012.
    Richard Lam, U.S. Appl. No. 12/975,457, filed Dec. 22, 2010, "Multiple Label Based Processing of Frames".
    USPTO, Final Office Action, U.S. Appl. No. 12/975,457, filed Dec. 22, 2010, Inventor: Richard Shing-Hong Lam, (19 pgs), Jan 8, 2013.
    USPTO, Non-Final Office Action, U.S. Appl. No. 12/975,457, filed Dec. 22, 2010, in re: Richard Shing-Hong Lam, (19 pgs), Sep. 28, 2012.

Cited By (0)

    Publication numberPublication dateAssigneeTitle