US20060190573A1 - Method and apparatus for multiple contexts and layer 3 virtual private networks - Google Patents
Method and apparatus for multiple contexts and layer 3 virtual private networks Download PDFInfo
- Publication number
- US20060190573A1 US20060190573A1 US11/409,193 US40919306A US2006190573A1 US 20060190573 A1 US20060190573 A1 US 20060190573A1 US 40919306 A US40919306 A US 40919306A US 2006190573 A1 US2006190573 A1 US 2006190573A1
- Authority
- US
- United States
- Prior art keywords
- vpn
- layer
- egp
- network element
- context
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000008569 process Effects 0.000 claims description 97
- 238000013507 mapping Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 1
- 238000012739 integrated shape imaging system Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
Definitions
- the invention relates to the field of communication. More specifically, the invention relates to communication networks.
- VPNs Virtual Private Networks
- ISP Internet Service Provider
- VPNs extend an entity's (e.g., a corporation, Internet Service Provider (ISP), etc.) network backbone out to the Internet.
- ISP Internet Service Provider
- the connectivity costs for VPNs are less than leasing a line, and fault tolerance is improved because of multiple pathways between sites.
- an entity can securely transmit traffic through the Internet with VPNs.
- FIG. 1 is a diagram of an exemplary network according to one embodiment of the invention.
- FIG. 2A is a diagram of an exemplary network element that supports multiple contexts and layer 3 VPNs according to one embodiment of the invention.
- FIG. 2B is a diagram of the exemplary network element 105 illustrating a relationship between network processes and the structures and tables illustrated in FIG. 2A according to one embodiment of the invention.
- FIG. 2C is a diagram of the layer 3 VPN EGP table 215 as a tree according to one embodiment of the invention.
- FIG. 2D is a diagram of the layer 3 VPN EGP table 215 as a tree with RD substructures according to one embodiment of the invention.
- FIG. 2E is a diagram illustrating an alternative embodiment of the layer 3 VPN EGP table 215 as a hash table according to one embodiment of the invention.
- FIG. 3A is a flow chart for processing an update message received from customer with RD substructures equipment according to one embodiment of the invention.
- FIG. 3B is a flow chart continuing from the flow chart of FIG. 3A according to one embodiment of the invention.
- FIG. 4A is a flow chart for processing an update message received from customer equipment according to one embodiment of the invention.
- FIG. 4B is a flow chart continuing from the flow chart illustrated in FIG. 4A according to one embodiment of the invention.
- FIG. 5 is flow chart for processing an update message received from a provider equipment according to one embodiment of the invention.
- FIG. 6 is a flow chart for generating an update message for customer equipment according to one embodiment of the invention.
- FIG. 7 is a flow chart for generating an update message for a provider equipment according to one embodiment of the invention.
- FIG. 8 is a block diagram illustrating the exemplary network element 105 according to one embodiment of the invention.
- FIG. 1 is a diagram of an exemplary network according to one embodiment of the invention.
- a virtual private network (VPN) A includes a VPN A customer equipment 101 A and a VPN A customer equipment 103 A.
- a VPN B includes a VPN B customer equipment 101 B and a VPN B customer equipment 103 B.
- the VPN A customer equipment 101 A and the VPN B customer equipment 103 A are located within an autonomous system (AS) 102 in FIG. 1 , but could be located in different ASs.
- the VPN A customer equipment 101 A and the VPN B customer equipment 103 A are coupled with a network element 105 .
- the network element 105 is also coupled with a non-VPN customer equipment 106 that is located within an AS 104 .
- the network element 105 is located in an AS that is a backbone 111 .
- a network element 115 is also located within the backbone 111 .
- the network element 115 is coupled with the VPN B customer equipment 103 B.
- a network element 114 also located in the backbone 111 , is coupled with the VPN A customer equipment 101 B.
- the VPN B customer equipment 103 B and the VPN A customer equipment 101 B are respectively located within an AS 106 and an AS 108 .
- the network element 105 includes a context 107 A and VPN contexts 109 A- 109 B.
- the term context is used herein to refer to a set of information and/or collection of data structures for a customer of a network provider's network element.
- the VPN A customer equipment 101 A, the VPN B customer equipment 103 A, and the non-VPN customer equipment 106 gain access to the backbone 111 via the network element 105 .
- the context 107 A has been created by the network provider that owns the network element 105 for the non-VPN customer.
- the context 109 A has been created by the network provider for the VPN A customer.
- the context 109 B has been created by the network provider for the VPN B customer.
- a customer is an entity that corresponds to a single context within the network element.
- a single entity may correspond to multiple contexts.
- a single entity may have multiple VPN contexts configured on the network element 105 and a context configured on the network element 105 .
- one entity may own and/or operate the non-VPN customer equipment 106 , the VPN A customer equipment 101 A, and the VPN B customer equipment 103 A.
- a first entity owns and/or operates the VPN B customer equipment 103 A and a second entity owns the VPN A customer equipment 101 A and the non-VPN customer equipment 106 .
- a first entity owns the VPN A customer equipment 101 A and the VPN B customer equipment 103 A, while a second entity owns and/or operates the non-VPN customer equipment 106
- the VPN context 109 A includes information and/or data structures for the VPN A. Traffic received from the VPN A site 101 A is processed in accordance with the VPN context 109 A.
- the VPN context 109 B includes information and/or data structures for the VPN B. Traffic received from the VPN B site 103 A is processed in accordance with the VPN context 109 B. Traffic is transmitted between the VPN A sites 101 A and 101 B in accordance with the VPN context 109 A. Traffic is transmitted between the VPN B sites 103 A and 103 B in accordance with the VPN context 109 B. Traffic received from the service provider network element 106 is processed in accordance with the context 107 A.
- Contexts enable isolation of traffic processed by the network element. Contexts also provide the network provider with the ability to give access to a given customer's information while restricting access to other information within the network element (e.g., a different customer's information).
- the context 107 A includes a set of information for the service provider that owns the service provider network element 106 .
- the owner of the service provider may be an Internet Service Provider (ISP), Application Service Provider (ASP), etc. in one embodiment, a network administrator for the service provider that owns the service provider network element 106 may log into the network element 105 and access and modify the context 107 A, if permitted by the owner of the network element 105 .
- the network element 105 may include additional contexts not illustrated.
- Layer 3 VPNs provide vast scalability and avoids administrative costs of tunnel configurations for layer 2 VPNs.
- Combining layer 3 VPNs with multiple contexts provides a powerful tool for servicing various customers that may include VPN customers and non-VPN customers.
- a network element supporting multiple contexts and layer 3 VPNs can support a large number of VPN customer and non-VPN customers and provide each customer access to their context.
- FIG. 2A is a diagram of an exemplary network element that supports multiple contexts and layer 3 VPNs according to one embodiment of the invention.
- FIG. 2 illustrates the network element 105 illustrated in FIG. 1 .
- FIG. 2 also illustrates the context 107 A and the VPN context 109 A and 109 B illustrated in FIG. 1 .
- the context 107 A includes a peer data structure 201 A, a configuration data structure 203 A, a routing table 205 A, an interior gateway protocol (IGP) table 207 A, and an exterior gateway protocol (EGP) table 209 A.
- IGP interior gateway protocol
- EGP exterior gateway protocol
- the term table is a conventional term and not meant to be limiting upon the type of data structure.
- a table can be implemented with different data structures such as a hash table, search tree, combinations of data structures, etc.
- the peer structure 201 A includes data describing a peer.
- a peer is another network element that exchanges routing information with the network element 105 .
- a peer can either be an internal peer or an external peer.
- An internal peer is a network element directly connected to the network element 105 that is located within the same autonomous system as the network element 105 .
- An autonomous system is a collection of network elements under a single administrative authority that routes traffic in accordance with a common IGP (e.g., OSPF, IS-IS, RIP, etc.).
- An external peer of the network element 105 is a network element that is directly connected to the network element 105 , but is located in a different autonomous system.
- the peer structure 201 A may include a peer's network address and configuration information providing guidelines for communications between the peer and the network element 105 .
- the configuration structure 203 A includes configurations specifically for the context 107 A.
- the configurations in the configuration structure 203 A may be entered by a network administrator of the network element 105 or the administrator for the owner of the context 107 A.
- the routing table 205 A is a routing table specifically for the context 107 A.
- the routing table 205 A is used to process traffic transmitted and received for the context 107 A.
- the IGP table 207 A is a forwarding table specifically for the context 107 A.
- the IGP table 207 A may be an OSPF forwarding table, a RIP forwarding table, an ISIS forwarding table, etc.
- the exterior gateway protocol forwarding table 209 A is a forwarding table with routes specifically for the context 107 A maintained by an EGP process (e.g., BGP, etc.).
- the owner of the context 107 A can be given permission by the owner of the network element 105 to view and manipulate information for the context 107 A.
- EGP tables may implement the EGP tables, IGP tables, and routing tables differently. For example, one embodiment may maintain a single EGP table for non-VPN contexts and a single EGP table for layer 3 VPN contexts. Another embodiment may maintain a single IGP table for VPN contexts.
- the VPN context 109 A includes a peer structure 201 I, a configuration structure 203 I, a routing table 205 I, and an IGP table 207 I.
- the VPN context 109 B includes a peer structure 201 J, a configuration structure 203 J, a routing table structure 205 J, and an IGP table 207 J.
- the information included in the structures 210 I and 203 I and the tables 205 I and 207 I are similar to the structures 201 A and 203 A and the tables 205 A and 207 A, but are specific to the VPN context 109 A.
- the structures 201 J and 203 J and the tables 205 J and 207 J are specific to the VPN context 109 B.
- the owners of the VPN context 109 A and 109 B can respectively access and configure the structures and tables in the VPN contexts 109 A and 109 B.
- the VPN contexts 109 A and 109 B do not have specific EGP tables. Instead, the VPN contexts 109 A and 109 B share a layer 3 VPN EGP table 215 .
- the layer 3 VPN EGP table 215 includes EGP forwarding information for all VPN contexts in the network element 105 .
- the network element 105 includes a local context 211 .
- a peer structure 201 X, a configuration structure 203 X, a routing table 205 X, an IGP table 207 X, and an EGP table 209 X contain information for the local context 211 .
- the information included in the structure 201 X and the tables 205 X, 207 X, and 209 X is similar to the information included in the structure 201 A and the tables 205 A, 207 A, and 209 A, but is specific to the local context 211 .
- the configuration structure 203 X includes global configuration information (e.g., system time).
- the owner of the local context 211 who is the owner of the network element 105 , has access to many of the structures and tables of the contexts on the network element 105 .
- FIG. 2B is a diagram of the exemplary network element 105 illustrating a relationship between network processes and the structures and tables illustrated in FIG. 2A according to one embodiment of the invention.
- a configuration interface (CI) 221 feeds configuration information into a configuration process 223 .
- the CI may be a command line interface or a graphical user interface for entering configurations and commands for the network element 105 .
- the configuration process 223 stores the configurations into one of the configuration structures 203 X, 203 A, 203 I, and 203 J.
- the configuration structures 203 X, 203 A, 203 I, and 203 J are illustrated in FIG. 2B as referencing the peer structures 201 X, 201 A, 201 I, and 201 J.
- the relationships are illustrated as follows: the peer structure 201 J and the configuration structure 203 J; the peer structure 201 I and the configuration structure 203 I; the peer structure 201 A and the configuration structure 203 A; and the peer structure 201 X and the configuration structure 203 X.
- the peer structures may be implemented in a variety of ways.
- a single peer structure has entries for all peers configured on a given network element.
- each entry identifies a peer and its corresponding context.
- each peer configured on the given network element is allocated a single peer structure.
- a single peer structure is allocated for each context configured on the network element.
- the configuration process 223 also sends configurations to an IGP process 225 , a RIB process 229 , and an EGP process 227 .
- the IGP process 225 represents one or more IGP processes that may include the following protocols: RIP, OSPF, IS-IS, etc.
- the EGP process 227 also represents one or more processes that may include BGP and other exterior gateway protocols.
- the IGP process 225 maintains the IGP tables 207 X, 207 A, 207 I, and 207 J.
- the RIB process 229 maintains the routing tables 205 X, 205 A, 205 I, and 205 J.
- the EGP process 227 maintains the EGP table 209 X, 209 A, the layer 3 VPN EGP table 215 , and a mapping structure 226 .
- an identifier (e.g., context ID) is included in each entry of the single non-VPN EGP table.
- each entry of the non-VPN EGP table indicates an identifier (e.g., context ID) and references a set of prefixes corresponding to the identifier.
- the mapping structure 226 is a data structure that includes VPN context IDs and their corresponding RD.
- the mapping structure 226 may be implemented as a tree, hash table, linked list, etc.
- the IGP process 225 downloads updates of one of the IGP tables, such as the IGP table 207 X
- the IGP process 225 passes the context ID indicated in the IGP table 207 X to the RIB process 229 .
- the EGP process 227 does the same for non-VPN EGP tables.
- the layer 3 VPN EGP table 215 does not correspond to a single context. Therefore, the EGP process 227 uses the mapping structure 226 to communicate with other processes in the network element 105 for communications related to VPN contexts. Communications with other processes may include passing updates to the RIB process 229 , performing requests from the configuration process 223 , etc.
- Sharing a single EGP table for all of the VPN contexts of a network element improves the efficiency of update message generation for the network element supporting multiple contexts and layer 3 VPNs. Since the number of entries for an individual VPN customer is relatively small, combining entries for all layer 3 VPN customers into a single EGP table enables an EGP process to efficiently walk the combined data structure instead of numerous small EGP tables. In addition, a mapping structure enables efficient maintenance of the combined EGP table without extensive memory consumption.
- FIG. 2C is a diagram of the layer 3 VPN EGP table 215 as a tree according to one embodiment of the invention.
- the layer 3 VPN EGP table is implemented as a tree.
- Each of the nodes 241 , 243 , 245 , 247 , and 249 are labeled with the value RD:prefix.
- the mapping structure 226 is also illustrated in FIG. 2C .
- the EGP process 227 uses the mapping structure 226 as previously discussed to send and receive communication regarding the layer 3 VPN EGP table 215 . If the EGP process 227 receives a communication affecting the layer 3 VPN EGP table 215 , then the EGP process 227 maps the VPN-context ID indicated in the communication to a RD with the mapping structure 216 . Maintaining the mapping structure 226 avoids including a VPN context ID in every node.
- FIG. 2D is a diagram of the layer 3 VPN EGP table 215 as a tree with RD substructures according to one embodiment of the invention.
- the right branch of the root node 241 references a node 251 .
- the node 251 is labeled with the route distinguisher.
- the node 251 references an RD substructure 257 .
- the RD substructure 257 is a data structure that indicates prefixes corresponding to the RD identified in the node 251 .
- a node 253 is similar to the node 251 in that it is only identified by the value RD instead of the value RD:prefix.
- the node 253 references an RD substructure 259 .
- the RD substructure 259 includes prefixes corresponding to the RD identified in the node 253 .
- the embodiment of the layer 3 VPN EGP table 215 further improves memory use.
- the embodiment illustrated in FIG. 2D reduces the number of nodes in the layer 3 VPN EGP table 215 with the route distinguisher value (currently defined as an 8 byte value), and group prefixes by route distinguisher.
- the EGP process 227 may group updates to be transmitted by RD as it encounters each node of the layer 3 VPN EGP table 215 .
- FIG. 2E is a diagram illustrating an alternative embodiment of the layer 3 VPN EGP table 215 as a hash table according to one embodiment of the invention.
- Each entry of the hash table 270 indicates a route distinguisher.
- Each entry of the hash table 260 references an RD substructure 271 or 273 .
- the EGP process 227 may group updates by mapped VPN context ID as it walks through the hash table 260 .
- various embodiments of the invention may implement the layer 3 VPN EGP table 215 with different data structures and/or combinations of data structures.
- FIG. 3A is a flow chart for processing an update message received from customer with RD substructures equipment according to one embodiment of the invention.
- the EGP process 227 selects a peer that is a customer equipment.
- the EGP process 227 receives an update message from the selected peer.
- the EGP process 227 selects a prefix from the received update message.
- the EGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then at block 309 the EGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer.
- the EGP process 227 determines that the context associated with the selected peer is a VPN context, then at block 317 the EGP process 227 maps the VPN context ID of the associated context to a route distinguisher (RD). At block 318 the EGP process 227 locates the RD in the layer 3 VPN EGP table 215 . At block 319 , the EGP process 227 determines if the selected prefix is in the located RD sub-structure. If the EGP process 227 determines that the selected prefix is within the RD sub-structure, then control flows to block 323 . If the EGP process 227 determines that the selected prefix is not within the located RD sub-structure, then control flows to block 321 .
- RD route distinguisher
- FIG. 3B is a flow chart continuing from the flow chart of FIG. 3A according to one embodiment of the invention.
- the EGP process 227 inserts the selected prefix into the selected context EGP table.
- the EGP process 227 updates an entry matching the selected prefix of the associated context's EGP table in accordance with the update message.
- the EGP process 227 inserts a selected prefix into the located RD substructure.
- the EGP process 227 updates an entry matching the selected prefix within the located RD substructure in accordance with the update message.
- FIG. 4A is a flow chart for processing an update message received from customer equipment according to one embodiment of the invention.
- the EGP process 227 selects a peer that is a customer equipment.
- the EGP process 227 receives an update message from the selected peer.
- the EGP process 227 selects a prefix from the received update message.
- the EGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then at block 409 the EGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer.
- the EGP process 227 determines that the selected context is a VPN context, then at block 417 the EGP process 227 maps the VPN context ID of the associated context to a (RD). At block 419 the EGP process 227 determines if the RD:selected prefix is within the layer 3 VPN EGP table 215 . If the RD:selected prefix is within the later 3 VPN EGP table, then control flows to block 423 . If the RD:selected prefix is not within the layer 3 VPN EGP table, then control flows to block 421 .
- FIG. 4B is a flow chart continuing from the flow chart illustrated in FIG. 4A according to one embodiment of the invention.
- the EGP process 227 inserts RD:selected prefix into the layer 3 VPN EGP table 215 .
- the network element updates an entry matching the selected prefix in the layer 3 VPN EGP table in accordance with the update message.
- the EGP process 227 inserts the selected prefix into the associated context's EGP table.
- the EGP process 227 updates an entry matching a selected prefix in the associated context's EGP table in accordance with the update message.
- FIG. 5 is flow chart for processing an update message received from a provider equipment according to one embodiment of the invention.
- the EGP process 227 selects a peer that is a customer equipment.
- the EGP process 227 receives an update message from the selected peer.
- the EGP process 227 selects a prefix from the received update message.
- the EGP process 227 determines if the selected peer is configured for the VPN address family. If the selected peer is not configured for the VPN address family, then at block 509 the EGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer.
- the EGP process 227 determines if the selected prefix matches an entry in the layer 3 VPN EGP table 215 . If the selected prefix does not match an entry in the VPN EGP table 215 , then at block 515 the EGP process 227 inserts the select prefix into the layer 3 VPN EGP table 215 . If the selected prefix matches an entry in the layer 3 VPN EGP table 215 , then at block 513 the EGP process 227 updates the matching entry in accordance with the update message.
- FIG. 6 is a flow chart for generating an update message for customer equipment according to one embodiment of the invention.
- the EGP process 227 selects a peer.
- the EGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then at block 607 , the EGP process 227 creates an update message(s) for the associated context's EGP table. If the EGP process 227 determines at block 603 that the associated context is a VPN context, then at block 609 the EGP process 227 maps the VPN context ID of the associated VPN context to an RD.
- the EGP process 227 locates the RD in the VPN EGP table 215 .
- the EGP process 227 walks through the VPN EGP table and select entries matching the mapped RD.
- the EGP process 227 creates an update message(s) with prefixes of selected entries without the RD.
- FIG. 7 is a flow chart for generating an update message for a provider equipment according to one embodiment of the invention.
- the EGP process 227 selects a peer.
- the EGP process 227 determines if the selected peer is configured for the VPN address family. If the selected peer is not configured for the VPN address family, then the EGP process 227 creates an update message(s) with the associated context's EGP table at block 705 . If the selected peer is not configured for the VPN address family, then the EGP process 227 walks through the layer 3 VPN EGP table 215 to create update message(s) at block 707 .
- FIG. 8 is a block diagram illustrating the exemplary network element 105 according to one embodiment of the invention.
- a control card 801 hosts the local context 211 , the VPN context 109 A, the VPN context 109 B, the context 107 A, and the Layer 3 VPN EGP table 215 , the configuration process 223 , the IGP process 225 , the EGP process 227 , and the RIB process 229 .
- the local context 211 , the VPN context 109 A, the VPN context 109 B, the context 107 , and the Layer 3 VPN EGP table 215 , the configuration process 223 , the IGP process 225 , the EGP process 227 , and the RIB process 229 may be hosted on a co-processor, an ASIC, etc.
- the structures and tables of the context 107 A and VPN contexts 109 A and 109 B may be stored on a storage device and/or memory coupled with the control card 801 .
- the control card 801 is coupled with a transmission medium cloud 803 (e.g., a system bus, a mesh, a system bus and a mesh, etc.).
- the transmission medium cloud 803 is coupled with line cards 807 A- 807 D.
- the line cards 807 A- 807 D are coupled to physical interfaces 809 A- 809 D respectively.
- the network element 105 receives updates messages and transmits update messages via the physical interfaces 805 A- 805 D.
- the control card 801 and the line cards 807 A- 807 D illustrated in FIG. 8 includes memories, processors, and/or ASICs.
- Such memories include a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein.
- Software can reside, completely or at least partially, within this memory and/or within the processor and/or ASICs.
- machine-readable medium shall be taken to include any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer).
- a machine-readable medium includes read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustical, or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), etc.
- ROM read only memory
- RAM random access memory
- magnetic disk storage media magnetic disk storage media
- optical storage media flash memory devices
- electrical, optical, acoustical, or other form of propagated signals e.g., carrier waves, infrared signals, digital signals, etc.
- a network element supporting multiple contexts and layer 3 VPNs provides the owner of the network element the ability to support VPNs for multiple customers at a cost lower than the cost of layer 2 VPNs and more efficiently than without multiple contexts.
- the owner can provide customers access to their own context. Providing access to contexts can be offered as a service and shifts some administrative tasks from the network element owner to it's customers.
- the network element owner can provide layer 3 VPNs to multiple VPN customers (e.g. corporations, service providers, education institutions, etc.) and backbone access to non-VPN customers.
- the network element owner can serve this variety of customers from a single network element while offering administrative access to the network element through multiple contexts.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
A method an apparatus for multiple contexts and layer 3 virtual private networks is described. A method comprises providing a layer 3 virtual private network (VPN) to a first customer; providing backbone access to a second customer; and maintaining on a single network element a first set of information for the first customer separately from a second set of information for the second customer.
Description
- This patent application is a divisional patent application of U.S. patent application Ser. No. 09/991,234, filed Nov. 17, 2001 (Attorney Docket No. 4906.P094), now pending.
- The invention relates to the field of communication. More specifically, the invention relates to communication networks.
- Virtual Private Networks (VPNs) extend an entity's (e.g., a corporation, Internet Service Provider (ISP), etc.) network backbone out to the Internet. The connectivity costs for VPNs are less than leasing a line, and fault tolerance is improved because of multiple pathways between sites. Instead of an entity purchasing, administrating and maintaining additional network elements (e.g. routers, hubs, switches, subscriber management systems, etc.), an entity can securely transmit traffic through the Internet with VPNs.
- The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
-
FIG. 1 is a diagram of an exemplary network according to one embodiment of the invention. -
FIG. 2A is a diagram of an exemplary network element that supports multiple contexts andlayer 3 VPNs according to one embodiment of the invention. -
FIG. 2B is a diagram of theexemplary network element 105 illustrating a relationship between network processes and the structures and tables illustrated inFIG. 2A according to one embodiment of the invention. -
FIG. 2C is a diagram of thelayer 3 VPN EGP table 215 as a tree according to one embodiment of the invention. -
FIG. 2D is a diagram of thelayer 3 VPN EGP table 215 as a tree with RD substructures according to one embodiment of the invention. -
FIG. 2E is a diagram illustrating an alternative embodiment of thelayer 3 VPN EGP table 215 as a hash table according to one embodiment of the invention. -
FIG. 3A is a flow chart for processing an update message received from customer with RD substructures equipment according to one embodiment of the invention. -
FIG. 3B is a flow chart continuing from the flow chart ofFIG. 3A according to one embodiment of the invention. -
FIG. 4A is a flow chart for processing an update message received from customer equipment according to one embodiment of the invention. -
FIG. 4B is a flow chart continuing from the flow chart illustrated inFIG. 4A according to one embodiment of the invention. -
FIG. 5 is flow chart for processing an update message received from a provider equipment according to one embodiment of the invention. -
FIG. 6 is a flow chart for generating an update message for customer equipment according to one embodiment of the invention. -
FIG. 7 is a flow chart for generating an update message for a provider equipment according to one embodiment of the invention. -
FIG. 8 is a block diagram illustrating theexemplary network element 105 according to one embodiment of the invention. - In the following description, numerous specific details are set forth to provide a thorough understanding of the invention. However, it is understood that the invention may be practiced without these specific details. In other instances, well-known circuits, structures, standards, and techniques have not been shown in detail in order not to obscure the invention.
-
FIG. 1 is a diagram of an exemplary network according to one embodiment of the invention. InFIG. 1 , a virtual private network (VPN) A includes a VPN A customer equipment 101A and a VPNA customer equipment 103A. A VPN B includes a VPN B customer equipment 101B and a VPNB customer equipment 103B. The VPN A customer equipment 101A and the VPNB customer equipment 103A are located within an autonomous system (AS) 102 inFIG. 1 , but could be located in different ASs. The VPN A customer equipment 101A and the VPNB customer equipment 103A are coupled with anetwork element 105. Thenetwork element 105 is also coupled with anon-VPN customer equipment 106 that is located within an AS 104. Thenetwork element 105 is located in an AS that is abackbone 111. - A
network element 115 is also located within thebackbone 111. Thenetwork element 115 is coupled with the VPNB customer equipment 103B. Anetwork element 114, also located in thebackbone 111, is coupled with the VPN A customer equipment 101B. The VPNB customer equipment 103B and the VPN A customer equipment 101B are respectively located within an AS 106 and anAS 108. - The
network element 105 includes acontext 107A andVPN contexts 109A-109B. The term context is used herein to refer to a set of information and/or collection of data structures for a customer of a network provider's network element. In the exemplary network illustrated inFIG. 1 , the VPN A customer equipment 101A, the VPNB customer equipment 103A, and thenon-VPN customer equipment 106 gain access to thebackbone 111 via thenetwork element 105. InFIG. 1 , thecontext 107A has been created by the network provider that owns thenetwork element 105 for the non-VPN customer. Thecontext 109A has been created by the network provider for the VPN A customer. Thecontext 109B has been created by the network provider for the VPN B customer. - From the perspective of the
network element 105, a customer is an entity that corresponds to a single context within the network element. However, a single entity may correspond to multiple contexts. A single entity may have multiple VPN contexts configured on thenetwork element 105 and a context configured on thenetwork element 105. For example, one entity may own and/or operate thenon-VPN customer equipment 106, the VPN A customer equipment 101A, and the VPNB customer equipment 103A. In another example, a first entity owns and/or operates the VPNB customer equipment 103A and a second entity owns the VPN A customer equipment 101A and thenon-VPN customer equipment 106. In yet another example, a first entity owns the VPN A customer equipment 101A and the VPNB customer equipment 103A, while a second entity owns and/or operates thenon-VPN customer equipment 106 - The
VPN context 109A includes information and/or data structures for the VPN A. Traffic received from the VPN A site 101A is processed in accordance with theVPN context 109A. TheVPN context 109B includes information and/or data structures for the VPN B. Traffic received from theVPN B site 103A is processed in accordance with theVPN context 109B. Traffic is transmitted between the VPN A sites 101A and 101B in accordance with theVPN context 109A. Traffic is transmitted between theVPN B sites VPN context 109B. Traffic received from the serviceprovider network element 106 is processed in accordance with thecontext 107A. - Contexts enable isolation of traffic processed by the network element. Contexts also provide the network provider with the ability to give access to a given customer's information while restricting access to other information within the network element (e.g., a different customer's information). The
context 107A includes a set of information for the service provider that owns the serviceprovider network element 106. The owner of the service provider may be an Internet Service Provider (ISP), Application Service Provider (ASP), etc. in one embodiment, a network administrator for the service provider that owns the serviceprovider network element 106 may log into thenetwork element 105 and access and modify thecontext 107A, if permitted by the owner of thenetwork element 105. Thenetwork element 105 may include additional contexts not illustrated. - Implementing VPNs at
layer 3 provides numerous advantages.Layer 3 VPNs provide vast scalability and avoids administrative costs of tunnel configurations for layer 2 VPNs. Combininglayer 3 VPNs with multiple contexts provides a powerful tool for servicing various customers that may include VPN customers and non-VPN customers. A network element supporting multiple contexts andlayer 3 VPNs can support a large number of VPN customer and non-VPN customers and provide each customer access to their context. -
FIG. 2A is a diagram of an exemplary network element that supports multiple contexts andlayer 3 VPNs according to one embodiment of the invention.FIG. 2 illustrates thenetwork element 105 illustrated inFIG. 1 .FIG. 2 , also illustrates thecontext 107A and theVPN context FIG. 1 . Thecontext 107A includes apeer data structure 201A, aconfiguration data structure 203A, a routing table 205A, an interior gateway protocol (IGP) table 207A, and an exterior gateway protocol (EGP) table 209A. The term table is a conventional term and not meant to be limiting upon the type of data structure. A table can be implemented with different data structures such as a hash table, search tree, combinations of data structures, etc. - The
peer structure 201A includes data describing a peer. A peer is another network element that exchanges routing information with thenetwork element 105. A peer can either be an internal peer or an external peer. An internal peer is a network element directly connected to thenetwork element 105 that is located within the same autonomous system as thenetwork element 105. An autonomous system is a collection of network elements under a single administrative authority that routes traffic in accordance with a common IGP (e.g., OSPF, IS-IS, RIP, etc.). An external peer of thenetwork element 105 is a network element that is directly connected to thenetwork element 105, but is located in a different autonomous system. Thepeer structure 201A may include a peer's network address and configuration information providing guidelines for communications between the peer and thenetwork element 105. - The
configuration structure 203A includes configurations specifically for thecontext 107A. The configurations in theconfiguration structure 203A may be entered by a network administrator of thenetwork element 105 or the administrator for the owner of thecontext 107A. The routing table 205A is a routing table specifically for thecontext 107A. The routing table 205A is used to process traffic transmitted and received for thecontext 107A. The IGP table 207A is a forwarding table specifically for thecontext 107A. The IGP table 207A may be an OSPF forwarding table, a RIP forwarding table, an ISIS forwarding table, etc. The exterior gateway protocol forwarding table 209A is a forwarding table with routes specifically for thecontext 107A maintained by an EGP process (e.g., BGP, etc.). As previously stated, the owner of thecontext 107A can be given permission by the owner of thenetwork element 105 to view and manipulate information for thecontext 107A. - Since the number of entries in a table for a non-VPN customer is typically large, separation of tables for non-VPN customers provides for efficient maintenance of the non-VPN tables. Since the number of entries in a VPN table are typically fewer than the number of entries in VPN tables, sharing a single EGP table for multiple VPNs provides for efficient walking of the shared VPN tables as describe in more detail later herein.
- Various embodiments of the invention may implement the EGP tables, IGP tables, and routing tables differently. For example, one embodiment may maintain a single EGP table for non-VPN contexts and a single EGP table for
layer 3 VPN contexts. Another embodiment may maintain a single IGP table for VPN contexts. - The
VPN context 109A includes a peer structure 201I, a configuration structure 203I, a routing table 205I, and an IGP table 207I. Similarly, theVPN context 109B includes apeer structure 201J, aconfiguration structure 203J, arouting table structure 205J, and an IGP table 207J. The information included in the structures 210I and 203I and the tables 205I and 207I are similar to thestructures VPN context 109A. Likewise, thestructures VPN context 109B. As previously stated, the owners of theVPN context VPN contexts context 107A, theVPN contexts VPN contexts layer 3 VPN EGP table 215. Thelayer 3 VPN EGP table 215 includes EGP forwarding information for all VPN contexts in thenetwork element 105. - In addition to the
context 107A and theVPN contexts network element 105 includes alocal context 211. Apeer structure 201X, aconfiguration structure 203X, a routing table 205X, an IGP table 207X, and an EGP table 209X contain information for thelocal context 211. The information included in thestructure 201X and the tables 205X, 207X, and 209X is similar to the information included in thestructure 201A and the tables 205A, 207A, and 209A, but is specific to thelocal context 211. Theconfiguration structure 203X includes global configuration information (e.g., system time). Unlike thecontext 107A and theVPN contexts local context 211, who is the owner of thenetwork element 105, has access to many of the structures and tables of the contexts on thenetwork element 105. -
FIG. 2B is a diagram of theexemplary network element 105 illustrating a relationship between network processes and the structures and tables illustrated inFIG. 2A according to one embodiment of the invention. InFIG. 2B , a configuration interface (CI) 221 feeds configuration information into aconfiguration process 223. The CI may be a command line interface or a graphical user interface for entering configurations and commands for thenetwork element 105. Theconfiguration process 223 stores the configurations into one of theconfiguration structures configuration structures FIG. 2B as referencing thepeer structures peer structure 201J and theconfiguration structure 203J; the peer structure 201I and the configuration structure 203I; thepeer structure 201A and theconfiguration structure 203A; and thepeer structure 201X and theconfiguration structure 203X. - The peer structures may be implemented in a variety of ways. In one embodiment, a single peer structure has entries for all peers configured on a given network element. In such an embodiment, each entry identifies a peer and its corresponding context. In another embodiment, each peer configured on the given network element is allocated a single peer structure. In another embodiment, a single peer structure is allocated for each context configured on the network element.
- The
configuration process 223 also sends configurations to anIGP process 225, aRIB process 229, and anEGP process 227. TheIGP process 225 represents one or more IGP processes that may include the following protocols: RIP, OSPF, IS-IS, etc. TheEGP process 227 also represents one or more processes that may include BGP and other exterior gateway protocols. TheIGP process 225 maintains the IGP tables 207X, 207A, 207I, and 207J. TheRIB process 229 maintains the routing tables 205X, 205A, 205I, and 205J. TheEGP process 227 maintains the EGP table 209X, 209A, thelayer 3 VPN EGP table 215, and amapping structure 226. - In an embodiment that provides for a single non-VPN EGP table and a single VPN EGP table, an identifier (e.g., context ID) is included in each entry of the single non-VPN EGP table. In another embodiment that provides for single non-VPN EGP table and a single VPN EGP table, each entry of the non-VPN EGP table indicates an identifier (e.g., context ID) and references a set of prefixes corresponding to the identifier.
- The
mapping structure 226 is a data structure that includes VPN context IDs and their corresponding RD. Themapping structure 226 may be implemented as a tree, hash table, linked list, etc. When theIGP process 225 downloads updates of one of the IGP tables, such as the IGP table 207X, theIGP process 225 passes the context ID indicated in the IGP table 207X to theRIB process 229. TheEGP process 227 does the same for non-VPN EGP tables. However, thelayer 3 VPN EGP table 215 does not correspond to a single context. Therefore, theEGP process 227 uses themapping structure 226 to communicate with other processes in thenetwork element 105 for communications related to VPN contexts. Communications with other processes may include passing updates to theRIB process 229, performing requests from theconfiguration process 223, etc. - Sharing a single EGP table for all of the VPN contexts of a network element improves the efficiency of update message generation for the network element supporting multiple contexts and
layer 3 VPNs. Since the number of entries for an individual VPN customer is relatively small, combining entries for alllayer 3 VPN customers into a single EGP table enables an EGP process to efficiently walk the combined data structure instead of numerous small EGP tables. In addition, a mapping structure enables efficient maintenance of the combined EGP table without extensive memory consumption. -
FIG. 2C is a diagram of thelayer 3 VPN EGP table 215 as a tree according to one embodiment of the invention. InFIG. 2C , thelayer 3 VPN EGP table is implemented as a tree. Each of thenodes mapping structure 226 is also illustrated inFIG. 2C . TheEGP process 227 uses themapping structure 226 as previously discussed to send and receive communication regarding thelayer 3 VPN EGP table 215. If theEGP process 227 receives a communication affecting thelayer 3 VPN EGP table 215, then theEGP process 227 maps the VPN-context ID indicated in the communication to a RD with the mapping structure 216. Maintaining themapping structure 226 avoids including a VPN context ID in every node. -
FIG. 2D is a diagram of thelayer 3 VPN EGP table 215 as a tree with RD substructures according to one embodiment of the invention. Unlike thelayer 3 VPN EGP table 215 illustrated inFIG. 2C , the right branch of theroot node 241 references anode 251. Instead of RD:prefix, thenode 251 is labeled with the route distinguisher. In addition to typical left and right branches of a tree, thenode 251 references anRD substructure 257. TheRD substructure 257 is a data structure that indicates prefixes corresponding to the RD identified in thenode 251. Anode 253 is similar to thenode 251 in that it is only identified by the value RD instead of the value RD:prefix. Thenode 253 references anRD substructure 259. TheRD substructure 259 includes prefixes corresponding to the RD identified in thenode 253. The embodiment of thelayer 3 VPN EGP table 215 further improves memory use. The embodiment illustrated inFIG. 2D reduces the number of nodes in thelayer 3 VPN EGP table 215 with the route distinguisher value (currently defined as an 8 byte value), and group prefixes by route distinguisher. In addition, theEGP process 227 may group updates to be transmitted by RD as it encounters each node of thelayer 3 VPN EGP table 215. -
FIG. 2E is a diagram illustrating an alternative embodiment of thelayer 3 VPN EGP table 215 as a hash table according to one embodiment of the invention. Each entry of the hash table 270 indicates a route distinguisher. Each entry of the hash table 260 references anRD substructure layer 3 VPN EGP table illustrated inFIG. 2D , theEGP process 227 may group updates by mapped VPN context ID as it walks through the hash table 260. - As illustrated in
FIGS. 2C-2E , various embodiments of the invention may implement thelayer 3 VPN EGP table 215 with different data structures and/or combinations of data structures. -
FIG. 3A is a flow chart for processing an update message received from customer with RD substructures equipment according to one embodiment of the invention. Atblock 301, theEGP process 227 selects a peer that is a customer equipment. Atblock 303, theEGP process 227 receives an update message from the selected peer. Atblock 305, theEGP process 227 selects a prefix from the received update message. Atblock 307, theEGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then at block 309 theEGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer. If theEGP process 227 determines that the selected prefix is within the associated context's EGP table, then control flows to block 313. If theEGP process 227 determines that the selected prefix is not within the associated context's EGP table, then control flows to block 315. - If at block 309 the
EGP process 227 determines that the context associated with the selected peer is a VPN context, then atblock 317 theEGP process 227 maps the VPN context ID of the associated context to a route distinguisher (RD). At block 318 theEGP process 227 locates the RD in thelayer 3 VPN EGP table 215. At block 319, theEGP process 227 determines if the selected prefix is in the located RD sub-structure. If theEGP process 227 determines that the selected prefix is within the RD sub-structure, then control flows to block 323. If theEGP process 227 determines that the selected prefix is not within the located RD sub-structure, then control flows to block 321. -
FIG. 3B is a flow chart continuing from the flow chart ofFIG. 3A according to one embodiment of the invention. Atblock 313, theEGP process 227 inserts the selected prefix into the selected context EGP table. Atblock 315, theEGP process 227 updates an entry matching the selected prefix of the associated context's EGP table in accordance with the update message. Atblock 321, theEGP process 227 inserts a selected prefix into the located RD substructure. Atblock 323, theEGP process 227 updates an entry matching the selected prefix within the located RD substructure in accordance with the update message. -
FIG. 4A is a flow chart for processing an update message received from customer equipment according to one embodiment of the invention. Atblock 401, theEGP process 227 selects a peer that is a customer equipment. Atblock 403, theEGP process 227 receives an update message from the selected peer. Atblock 405, theEGP process 227 selects a prefix from the received update message. Atblock 407, theEGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then atblock 409 theEGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer. If theEGP process 227 determines that the selected prefix is within the associated context's EGP table, then control flows to block 415. If theEGP process 227 determines that the selected prefix is not within the associated context's EGP table, then control flows to block 413. - If at
block 407, theEGP process 227 determines that the selected context is a VPN context, then atblock 417 theEGP process 227 maps the VPN context ID of the associated context to a (RD). Atblock 419 theEGP process 227 determines if the RD:selected prefix is within thelayer 3 VPN EGP table 215. If the RD:selected prefix is within the later 3 VPN EGP table, then control flows to block 423. If the RD:selected prefix is not within thelayer 3 VPN EGP table, then control flows to block 421. -
FIG. 4B is a flow chart continuing from the flow chart illustrated inFIG. 4A according to one embodiment of the invention. Atblock 421, theEGP process 227 inserts RD:selected prefix into thelayer 3 VPN EGP table 215. Atblock 423, the network element updates an entry matching the selected prefix in thelayer 3 VPN EGP table in accordance with the update message. Atblock 413, theEGP process 227 inserts the selected prefix into the associated context's EGP table. Atblock 415, theEGP process 227 updates an entry matching a selected prefix in the associated context's EGP table in accordance with the update message. -
FIG. 5 is flow chart for processing an update message received from a provider equipment according to one embodiment of the invention. Atblock 501, theEGP process 227 selects a peer that is a customer equipment. Atblock 503, theEGP process 227 receives an update message from the selected peer. Atblock 505, theEGP process 227 selects a prefix from the received update message. Atblock 507, theEGP process 227 determines if the selected peer is configured for the VPN address family. If the selected peer is not configured for the VPN address family, then atblock 509 theEGP process 227 determines if the selected prefix is in the EGP table of the context associated with the selected peer. If theEGP process 227 determines that the selected prefix is within the associated context's EGP table, then control flows to control flows to block 415 ofFIG. 4B . If theEGP process 227 determines that the selected prefix is not within the associated context's EGP table, then control flows to block 413 ofFIG. 4B . - If at
block 507, theEGP process 227 determines that the selected peer is not configured for the VPN address family, then atblock 511 theEGP process 227 determines if the selected prefix matches an entry in thelayer 3 VPN EGP table 215. If the selected prefix does not match an entry in the VPN EGP table 215, then atblock 515 theEGP process 227 inserts the select prefix into thelayer 3 VPN EGP table 215. If the selected prefix matches an entry in thelayer 3 VPN EGP table 215, then atblock 513 theEGP process 227 updates the matching entry in accordance with the update message. -
FIG. 6 is a flow chart for generating an update message for customer equipment according to one embodiment of the invention. Atblock 601, theEGP process 227 selects a peer. Atblock 603, theEGP process 227 determines if the context associated with the selected peer is a VPN context. If the associated context is not a VPN context, then atblock 607, theEGP process 227 creates an update message(s) for the associated context's EGP table. If theEGP process 227 determines atblock 603 that the associated context is a VPN context, then atblock 609 theEGP process 227 maps the VPN context ID of the associated VPN context to an RD. Atblock 613, theEGP process 227 locates the RD in the VPN EGP table 215. At block 615, theEGP process 227 walks through the VPN EGP table and select entries matching the mapped RD. Atblock 617, theEGP process 227 creates an update message(s) with prefixes of selected entries without the RD. -
FIG. 7 is a flow chart for generating an update message for a provider equipment according to one embodiment of the invention. Atblock 701, theEGP process 227 selects a peer. Atblock 703, theEGP process 227 determines if the selected peer is configured for the VPN address family. If the selected peer is not configured for the VPN address family, then theEGP process 227 creates an update message(s) with the associated context's EGP table at block 705. If the selected peer is not configured for the VPN address family, then theEGP process 227 walks through thelayer 3 VPN EGP table 215 to create update message(s) atblock 707. - While the flow diagrams in the Figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform certain of the operations in a different order, combine certain of the operations, perform certain of the operations in parallel, etc.).
-
FIG. 8 is a block diagram illustrating theexemplary network element 105 according to one embodiment of the invention. InFIG. 8 , acontrol card 801 hosts thelocal context 211, theVPN context 109A, theVPN context 109B, thecontext 107A, and theLayer 3 VPN EGP table 215, theconfiguration process 223, theIGP process 225, theEGP process 227, and theRIB process 229. In various embodiments of the invention, thelocal context 211, theVPN context 109A, theVPN context 109B, the context 107, and theLayer 3 VPN EGP table 215, theconfiguration process 223, theIGP process 225, theEGP process 227, and theRIB process 229 may be hosted on a co-processor, an ASIC, etc. In alternative embodiments, the structures and tables of thecontext 107A andVPN contexts control card 801. - The
control card 801 is coupled with a transmission medium cloud 803 (e.g., a system bus, a mesh, a system bus and a mesh, etc.). The transmissionmedium cloud 803 is coupled withline cards 807A-807D. Theline cards 807A-807D are coupled to physical interfaces 809A-809D respectively. Thenetwork element 105 receives updates messages and transmits update messages via thephysical interfaces 805A-805D. - The
control card 801 and theline cards 807A-807D illustrated inFIG. 8 includes memories, processors, and/or ASICs. Such memories include a machine-readable medium on which is stored a set of instructions (i.e., software) embodying any one, or all, of the methodologies described herein. Software can reside, completely or at least partially, within this memory and/or within the processor and/or ASICs. For the purpose of this specification, the term “machine-readable medium” shall be taken to include any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustical, or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), etc. - A network element supporting multiple contexts and
layer 3 VPNs provides the owner of the network element the ability to support VPNs for multiple customers at a cost lower than the cost of layer 2 VPNs and more efficiently than without multiple contexts. The owner can provide customers access to their own context. Providing access to contexts can be offered as a service and shifts some administrative tasks from the network element owner to it's customers. Hence, the network element owner can providelayer 3 VPNs to multiple VPN customers (e.g. corporations, service providers, education institutions, etc.) and backbone access to non-VPN customers. The network element owner can serve this variety of customers from a single network element while offering administrative access to the network element through multiple contexts. - The method and apparatus of the invention can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting on the invention.
Claims (10)
1. A network element comprising:
a control card to host an exterior gateway protocol (EGP) process and an interior gateway protocol (IGP) process;
a machine readable medium coupled with the control card, the machine readable medium having a set of instructions to
cause the network element to maintain a first set of information for a first layer 3 virtual private network (VPN) and separately maintain a second set of information for a second layer 3 VPN,
to maintain a single exterior gateway protocol (EGP) table for the first layer 3 VPN and the second layer 3 VPN,
to identify the first layer 3 VPN with a first value and to identify the second layer 3 VPN with a second value, and
to associate a first route distinguisher (RD) with the first value and a second RD with the second value;
a line card coupled with the control card, the first line card to process traffic for the first layer 3 VPN and the second layer 3 VPN;
a first interface coupled with the line card, the first interface to receive traffic for the first layer 3 VPN; and
a second interface coupled with the line card, the second interface to receive traffic for the second layer 3 VPN.
2. The network element of claim 1 further comprising:
a second line card coupled with the control card and the line card, the second line card to process traffic for the first layer 3 VPN; and
a third interface coupled with the second line card, traffic for the first layer 3 VPN to be received through the third interface.
3. The network element of claim 1 wherein
the set of instructions also cause the network element to maintain a data structure to performing mappings between the first value and the first RD and between the second value and the second RD.
4. The network element of claim 1 wherein
the set of instructions also cause the network element to maintain a third set of information for a non-VPN customer separately from the first and second sets of information, the third set of information including a third value identifying the non-VPN customer and to maintain a second EGP table for the non-VPN customer.
5. A system comprising:
a first piece of customer equipment to transmit and receive traffic within a first layer 3 virtual private network (VPN);
a second piece of customer equipment to transmit and receive traffic within a second layer 3 VPN; and
a network element coupled with the first piece of customer equipment and the second piece of customer equipment, the network element to maintain a first set of information for the first layer 3 VPN and separately maintain a second set of information for the second layer 3 VPN, the first set of information to include a first value identifying the first layer 3 VPN and the second set of information to include a second value identifying the second layer 3 VPN, to maintain a single shared exterior gateway protocol (EGP) table for the first layer 3 VPN and the second layer 3 VPN, and to associate the first value with a first route distinguisher (RD) and the second value with a second RD.
6. The system of claim 5 wherein
the first and second pieces of customer equipment correspond to a single entity.
7. The system of claim 5 wherein
the first and second pieces of customer equipment correspond to different entities.
8. The system of claim 5 further comprising the network element to separately maintain a third set of information for a non-VPN customer and to maintain a second EGP table for the non-VPN customer.
9. The system of claim 5 further comprising the network element to exchange update messages with the first and second pieces of customer equipment.
10. The system of claim 5 wherein the network element also maintains a data structure to perform mappings between the first value and the first RD and between the second value and the second RD.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/409,193 US20060190573A1 (en) | 2001-11-17 | 2006-04-21 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/991,234 US7484003B2 (en) | 2001-11-17 | 2001-11-17 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
US11/409,193 US20060190573A1 (en) | 2001-11-17 | 2006-04-21 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/991,234 Division US7484003B2 (en) | 2001-11-17 | 2001-11-17 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060190573A1 true US20060190573A1 (en) | 2006-08-24 |
Family
ID=25537012
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/991,234 Expired - Fee Related US7484003B2 (en) | 2001-11-17 | 2001-11-17 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
US11/409,193 Abandoned US20060190573A1 (en) | 2001-11-17 | 2006-04-21 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/991,234 Expired - Fee Related US7484003B2 (en) | 2001-11-17 | 2001-11-17 | Method and apparatus for multiple contexts and layer 3 virtual private networks |
Country Status (4)
Country | Link |
---|---|
US (2) | US7484003B2 (en) |
AU (1) | AU2002346421A1 (en) |
GB (1) | GB2395875B (en) |
WO (1) | WO2003044685A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158420A1 (en) * | 2007-12-14 | 2009-06-18 | Ks Girish | Selective desktop control of virtual private networks (vpn's) in a multiuser environment |
US20110149980A1 (en) * | 2009-12-21 | 2011-06-23 | Patel Keyur P | Efficient generation of vpn-based bgp updates |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487232B1 (en) | 2000-09-13 | 2009-02-03 | Fortinet, Inc. | Switch management system and method |
US7444398B1 (en) * | 2000-09-13 | 2008-10-28 | Fortinet, Inc. | System and method for delivering security services |
US7111072B1 (en) | 2000-09-13 | 2006-09-19 | Cosine Communications, Inc. | Packet routing system and method |
US8250357B2 (en) | 2000-09-13 | 2012-08-21 | Fortinet, Inc. | Tunnel interface for securing traffic over a network |
US7389358B1 (en) | 2000-09-13 | 2008-06-17 | Fortinet, Inc. | Distributed virtual system to support managed, network-based services |
US7181547B1 (en) | 2001-06-28 | 2007-02-20 | Fortinet, Inc. | Identifying nodes in a ring network |
US7484003B2 (en) | 2001-11-17 | 2009-01-27 | Redback Networks Inc. | Method and apparatus for multiple contexts and layer 3 virtual private networks |
US7533183B1 (en) * | 2001-12-28 | 2009-05-12 | Nortel Networks Limited | Central control of multiple address domains within a router |
US7161904B2 (en) | 2002-06-04 | 2007-01-09 | Fortinet, Inc. | System and method for hierarchical metering in a virtual router based network switch |
US7203192B2 (en) * | 2002-06-04 | 2007-04-10 | Fortinet, Inc. | Network packet steering |
US7177311B1 (en) * | 2002-06-04 | 2007-02-13 | Fortinet, Inc. | System and method for routing traffic through a virtual router-based network switch |
US7376125B1 (en) | 2002-06-04 | 2008-05-20 | Fortinet, Inc. | Service processing switch |
US7116665B2 (en) * | 2002-06-04 | 2006-10-03 | Fortinet, Inc. | Methods and systems for a distributed provider edge |
US7266120B2 (en) * | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
US6970464B2 (en) * | 2003-04-01 | 2005-11-29 | Cisco Technology, Inc. | Method for recursive BGP route updates in MPLS networks |
US7720095B2 (en) | 2003-08-27 | 2010-05-18 | Fortinet, Inc. | Heterogeneous media packet bridging |
US7626948B1 (en) * | 2003-09-12 | 2009-12-01 | Cisco Technology, Inc. | System and method for verifying the validity of a path in a network environment |
US7925778B1 (en) | 2004-02-13 | 2011-04-12 | Cisco Technology, Inc. | Method and apparatus for providing multicast messages across a data communication network |
US7499419B2 (en) | 2004-09-24 | 2009-03-03 | Fortinet, Inc. | Scalable IP-services enabled multicast forwarding with efficient resource utilization |
US8619774B2 (en) * | 2004-10-26 | 2013-12-31 | Cisco Technology, Inc. | Method and apparatus for providing multicast messages within a virtual private network across a data communication network |
US7808904B2 (en) | 2004-11-18 | 2010-10-05 | Fortinet, Inc. | Method and apparatus for managing subscriber profiles |
US20060159091A1 (en) * | 2005-01-19 | 2006-07-20 | Arjen Boers | Active multicast information protocol |
US8179902B2 (en) * | 2005-07-15 | 2012-05-15 | Cisco Technology, Inc. | Method and system for automatic generation of route distinguishers for virtual private networks |
US7889655B2 (en) * | 2006-01-17 | 2011-02-15 | Cisco Technology, Inc. | Techniques for detecting loop-free paths that cross routing information boundaries |
US7609672B2 (en) * | 2006-08-29 | 2009-10-27 | Cisco Technology, Inc. | Method and apparatus for automatic sub-division of areas that flood routing information |
US7899005B2 (en) * | 2006-09-12 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for passing routing information among mobile routers |
US8009591B2 (en) * | 2006-11-30 | 2011-08-30 | Cisco Technology, Inc. | Automatic overlapping areas that flood routing information |
US8166205B2 (en) | 2007-07-31 | 2012-04-24 | Cisco Technology, Inc. | Overlay transport virtualization |
US7936732B2 (en) * | 2007-09-27 | 2011-05-03 | Cisco Technology, Inc. | Selecting aggregation nodes in a network |
US9524167B1 (en) * | 2008-12-10 | 2016-12-20 | Amazon Technologies, Inc. | Providing location-specific network access to remote services |
US8488491B2 (en) * | 2009-11-12 | 2013-07-16 | Cisco Technology, Inc. | Compressed virtual routing and forwarding in a communications network |
US8694664B2 (en) | 2010-11-23 | 2014-04-08 | Cisco Technology, Inc. | Active-active multi-homing support for overlay transport protocol |
US9363227B2 (en) | 2012-08-17 | 2016-06-07 | Cisco Technology, Inc. | Multicast source in group address mapping |
US9548887B2 (en) | 2013-08-09 | 2017-01-17 | Cisco Technology, Inc. | Proactive creation of multicast state in an overlay transport network to achieve fast convergence on failover |
US9762545B2 (en) | 2014-11-03 | 2017-09-12 | Cisco Technology, Inc. | Proxy forwarding of local traffic by edge devices in a multi-homed overlay virtual private network |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517620A (en) * | 1993-05-19 | 1996-05-14 | Nec Corporation | Dynamic updating of routing information for routing packets between LAN's connected to a plurality of routers via a public network |
US5802316A (en) * | 1995-01-26 | 1998-09-01 | Ito; Yuji | Routers connecting LANs through public network |
US5916306A (en) * | 1996-11-14 | 1999-06-29 | Johnson Controls Technology | Communication protocol for a router-based building automation and control network |
US20010050914A1 (en) * | 2000-06-02 | 2001-12-13 | Shinichi Akahane | VPN router and VPN identification method by using logical channel identifiers |
US6339595B1 (en) * | 1997-12-23 | 2002-01-15 | Cisco Technology, Inc. | Peer-model support for virtual private networks with potentially overlapping addresses |
US6421731B1 (en) * | 1996-10-29 | 2002-07-16 | Telxon Corporation | Dynamic next hop routing protocol |
US6496510B1 (en) * | 1997-11-14 | 2002-12-17 | Hitachi, Ltd. | Scalable cluster-type router device and configuring method thereof |
US6553423B1 (en) * | 1999-05-27 | 2003-04-22 | Cisco Technology, Inc. | Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes |
US6704795B1 (en) * | 1999-10-12 | 2004-03-09 | Cisco Technology, Inc. | Technique for reducing consumption of router resources after BGP restart |
US6891793B1 (en) * | 1999-01-20 | 2005-05-10 | Fujitsu Limited | Network system |
US7039720B2 (en) * | 2001-01-25 | 2006-05-02 | Marconi Intellectual Property (Ringfence) , Inc. | Dense virtual router packet switching |
US7068661B1 (en) * | 1999-07-13 | 2006-06-27 | Alcatel Canada Inc. | Method and apparatus for providing control information in a system using distributed communication routing |
US7095740B1 (en) * | 1998-06-30 | 2006-08-22 | Nortel Networks Limited | Method and apparatus for virtual overlay networks |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226751B1 (en) * | 1998-04-17 | 2001-05-01 | Vpnet Technologies, Inc. | Method and apparatus for configuring a virtual private network |
US6609153B1 (en) | 1998-12-24 | 2003-08-19 | Redback Networks Inc. | Domain isolation through virtual network machines |
US6662221B1 (en) * | 1999-04-12 | 2003-12-09 | Lucent Technologies Inc. | Integrated network and service management with automated flow through configuration and provisioning of virtual private networks |
US6990103B1 (en) * | 1999-07-13 | 2006-01-24 | Alcatel Canada Inc. | Method and apparatus for providing distributed communication routing |
JP2001237876A (en) * | 2000-02-21 | 2001-08-31 | Nec Corp | Buildup method for ip virtual private network and the ip virtual private network |
US20020090089A1 (en) * | 2001-01-05 | 2002-07-11 | Steven Branigan | Methods and apparatus for secure wireless networking |
US7099912B2 (en) * | 2001-04-24 | 2006-08-29 | Hitachi, Ltd. | Integrated service management system |
US7197550B2 (en) * | 2001-08-23 | 2007-03-27 | The Directv Group, Inc. | Automated configuration of a virtual private network |
US7484003B2 (en) | 2001-11-17 | 2009-01-27 | Redback Networks Inc. | Method and apparatus for multiple contexts and layer 3 virtual private networks |
-
2001
- 2001-11-17 US US09/991,234 patent/US7484003B2/en not_active Expired - Fee Related
-
2002
- 2002-11-15 WO PCT/US2002/036832 patent/WO2003044685A1/en not_active Application Discontinuation
- 2002-11-15 GB GB0405089A patent/GB2395875B/en not_active Expired - Fee Related
- 2002-11-15 AU AU2002346421A patent/AU2002346421A1/en not_active Abandoned
-
2006
- 2006-04-21 US US11/409,193 patent/US20060190573A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517620A (en) * | 1993-05-19 | 1996-05-14 | Nec Corporation | Dynamic updating of routing information for routing packets between LAN's connected to a plurality of routers via a public network |
US5802316A (en) * | 1995-01-26 | 1998-09-01 | Ito; Yuji | Routers connecting LANs through public network |
US6421731B1 (en) * | 1996-10-29 | 2002-07-16 | Telxon Corporation | Dynamic next hop routing protocol |
US5916306A (en) * | 1996-11-14 | 1999-06-29 | Johnson Controls Technology | Communication protocol for a router-based building automation and control network |
US6496510B1 (en) * | 1997-11-14 | 2002-12-17 | Hitachi, Ltd. | Scalable cluster-type router device and configuring method thereof |
US6339595B1 (en) * | 1997-12-23 | 2002-01-15 | Cisco Technology, Inc. | Peer-model support for virtual private networks with potentially overlapping addresses |
US7095740B1 (en) * | 1998-06-30 | 2006-08-22 | Nortel Networks Limited | Method and apparatus for virtual overlay networks |
US6891793B1 (en) * | 1999-01-20 | 2005-05-10 | Fujitsu Limited | Network system |
US6553423B1 (en) * | 1999-05-27 | 2003-04-22 | Cisco Technology, Inc. | Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes |
US7068661B1 (en) * | 1999-07-13 | 2006-06-27 | Alcatel Canada Inc. | Method and apparatus for providing control information in a system using distributed communication routing |
US6704795B1 (en) * | 1999-10-12 | 2004-03-09 | Cisco Technology, Inc. | Technique for reducing consumption of router resources after BGP restart |
US20010050914A1 (en) * | 2000-06-02 | 2001-12-13 | Shinichi Akahane | VPN router and VPN identification method by using logical channel identifiers |
US7039720B2 (en) * | 2001-01-25 | 2006-05-02 | Marconi Intellectual Property (Ringfence) , Inc. | Dense virtual router packet switching |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158420A1 (en) * | 2007-12-14 | 2009-06-18 | Ks Girish | Selective desktop control of virtual private networks (vpn's) in a multiuser environment |
US8661524B2 (en) * | 2007-12-14 | 2014-02-25 | Novell, Inc. | Selective desktop control of virtual private networks (VPN's) in a multiuser environment |
US20110149980A1 (en) * | 2009-12-21 | 2011-06-23 | Patel Keyur P | Efficient generation of vpn-based bgp updates |
US8995446B2 (en) * | 2009-12-21 | 2015-03-31 | Cisco Technology, Inc. | Efficient generation of VPN-based BGP updates |
Also Published As
Publication number | Publication date |
---|---|
GB0405089D0 (en) | 2004-04-07 |
US7484003B2 (en) | 2009-01-27 |
AU2002346421A1 (en) | 2003-06-10 |
WO2003044685A1 (en) | 2003-05-30 |
GB2395875A (en) | 2004-06-02 |
US20030112799A1 (en) | 2003-06-19 |
GB2395875B (en) | 2004-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7484003B2 (en) | Method and apparatus for multiple contexts and layer 3 virtual private networks | |
US10116556B2 (en) | Techniques for routing and forwarding between multiple virtual routers implemented by a single device | |
US11805045B2 (en) | Selective routing | |
CN103139037B (en) | For realizing the method and apparatus of VLAN flexibly | |
US10243834B1 (en) | Interconnecting virtual networks using an ethernet virtual private network (EVPN) and virtual extensible local area network (VXLAN) based overlay network | |
US7756998B2 (en) | Managing L3 VPN virtual routing tables | |
US7185107B1 (en) | Redirecting network traffic through a multipoint tunnel overlay network using distinct network address spaces for the overlay and transport networks | |
US8937961B1 (en) | Modular software architecture for a route server within an internet exchange | |
US20070097991A1 (en) | Method and system for discovering and providing near real-time updates of VPN topologies | |
US8724505B2 (en) | Flexible mechanism for supporting virtual private network services based on source-independent distributed advertisements | |
CN102577256A (en) | Method and apparatus for transparent cloud computing with a virtualized network infrastructure | |
CN101455030A (en) | Dynamic shared risk node group (srng) membership discovery | |
CN106209643A (en) | Message forwarding method and device | |
CN102763377B (en) | For the distribution method of the routing iinformation of redundancy link | |
US11588731B1 (en) | Cloud-to-cloud interface | |
CN108259205B (en) | Route publishing method and network equipment | |
Cisco | Configuring Multiprotocol BGP Extensions for IP Multicast | |
JP4088179B2 (en) | Network device connection management device | |
Marques et al. | Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs) | |
KR20030088629A (en) | Exteranet ip-vpn service provinding methode in mpls based network | |
CN118524043A (en) | Traffic management method and edge node equipment | |
Marques et al. | RFC 6368: Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: ERICSSON AB,SWEDEN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:REDBACK NETWORKS INC.;REEL/FRAME:024002/0363 Effective date: 20070125 Owner name: ERICSSON AB, SWEDEN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:REDBACK NETWORKS INC.;REEL/FRAME:024002/0363 Effective date: 20070125 |