A network device is provided in a private virtual local area network (vlan). The network device receives a packet on one of multiple private vlan ports of the network device, and assigns a classified vlan signature to the packet. The network device also assigns a primary vlan signature to the packet, and stores a media access control (mac) address and the classified vlan signature of the packet in a single mac address table.
|
9. A device comprising:
a memory to store a plurality of instructions, and
one or more processors to execute the plurality of instructions to:
receive a first packet;
store, in a media access control (mac) address table, a mac address of the first packet;
receive a second packet;
determine that a mac address of the second packet matches a particular mac address entry in the mac address table;
determining that a classified virtual local area network (vlan) signature of the second packet is not a primary vlan signature after determining that the mac address of the second packet matches the particular mac address entry in the mac address table; and
flood, the second packet, as unknown unicast traffic, based on determining that the classified vlan signature of the second packet is not the primary vlan signature.
1. A method comprising:
receiving, by a network device in a private virtual local area network (vlan), a first packet;
storing, by the network device and in a media access control (mac) address table, a mac address of the first packet;
receiving, by the network device, a second packet;
determining, by the network device, that a mac address of the second packet matches a mac address entry in the mac address table;
determining, by the network device, that a classified vlan signature of the second packet is not a primary vlan signature after determining that the mac address of the second packet matches the mac address entry; and
flooding, by the network device, the second packet, as unknown unicast traffic, based on determining that the classified vlan signature of the second packet is not the primary vlan signature.
15. A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by at least one processor, cause the at least one processor to:
receive a first packet;
store, in a media access control (mac) address table, a mac address of the first packet;
receive a second packet;
compare first information associated with the second packet to second information associated with the mac address table;
determine that first information associated with the second packet matches second information associated with the mac address table;
determine that a classified vlan signature of the second packet is not a primary vlan signature after determining that the first information associated with the second packet matches the second information associated with the mac address table; and
flood the second packet, as unknown unicast traffic, based on determining that classified vlan signature of the second packet is not the primary vlan signature.
2. The method of
receiving, in the private vlan, the first packet on a particular port of a plurality of private vlan ports of the network device.
3. The method of
assigning a classified vlan signature to the first packet.
4. The method of
where the classified vlan signature of the second packet includes information identifying a classified vlan, and
where the classified vlan is associated with a particular port of a plurality of private vlan ports of the network device.
5. The method of
assigning a primary vlan signature to the first packet,
the primary vlan signature assigned to the first packet including information identifying a primary vlan of the private vlan.
6. The method of
storing, in the mac address table, a classified vlan signature assigned to the first packet.
7. The method of
where receiving the second packet comprises:
receiving the second packet via a particular port of the vlan, and where the method further comprises:
assigning the classified vlan signature to the second packet based on a type of the particular port.
10. The device of
determine that a first signature of the particular mac address entry does not match a second signature of the second packet after determining that the mac address of the second packet matches the particular mac address entry, and
flood the second packet, as the unknown unicast traffic, based on determining that the first signature of the particular mac address entry does not match the second signature of the second packet.
12. The device of
determine that a signature of the particular mac address entry is not the primary vlan signature after determining that the mac address of the second packet matches the particular mac address entry, and
flood the second packet, as the unknown unicast traffic, based on determining that the signature of the particular mac address entry is not the primary vlan signature.
13. The device of
receive the first packet on a particular port of a plurality of private vlan ports of the device.
16. The non-transitory computer-readable medium of
where the first information associated with the second packet includes a mac address of the second packet, and
where the second information associated with the mac address table includes one or more entries in the mac address table.
17. The non-transitory computer-readable medium of
where the instructions further comprise:
one or more instructions that, when executed by the at least one processor, cause the at least one processor to:
determine, before determining that the classified vlan signature of the second packet is not the primary vlan signature, that a signature of an entry of the mac address table does not match the classified vlan signature of the second packet.
18. The non-transitory computer-readable medium of
one or more instructions that, when executed by the at least one processor, cause the at least one processor to:
determine that a signature of an entry of the mac address table is not the primary vlan signature
before determining that the classified vlan signature of the second packet is not the primary vlan signature.
19. The non-transitory computer-readable medium of
20. The non-transitory computer-readable medium of
|
This application is a continuation of U.S. patent application Ser. No. 12/959,676, filed Dec. 3, 2010 (now U.S. Pat. No. 8,798,059), which is incorporated herein by reference.
A private virtual local area network (VLAN) is a Layer 2 (i.e., a data link layer of the seven-layer Open Systems Interconnection (OSI) model) security feature that allows segregation of host devices within a VLAN. A private VLAN includes a primary VLAN and one or more secondary VLANs provided within the primary VLAN. There are two types of secondary VLANs: a secondary community VLAN and a secondary isolated VLAN. Ports within a community VLAN can communicate with each other but cannot communicate with ports in other community VLANs at the Layer 2 level. Ports within an isolated VLAN cannot communicate with each other at the Layer 2 level. Private VLANs provide Layer 2 isolation between ports within the same private VLAN. The private VLAN ports may be promiscuous ports, community ports, or isolated ports.
A promiscuous port belongs to the primary VLAN and can communicate with all interfaces, including community and isolated ports that belong to the secondary VLANs associated with the primary VLAN. A community port is a host port that belongs to a secondary community VLAN. Community ports communicate with other ports in the same community VLAN and with promiscuous ports. Community ports are isolated from all other interfaces in other communities and from isolated ports within their private VLAN. An isolated port is a host port that belongs to a secondary isolated VLAN. Isolated ports have complete Layer 2 separation from other ports within the same private VLAN, except for promiscuous ports. Private VLANs block all traffic to isolated ports except traffic from promiscuous ports. Traffic received from an isolated port may be forwarded only to promiscuous ports.
In order to implement these communication guidelines, multiple broadcast domains are created and Ethernet media access control (MAC) addresses are installed in VLANs. For example, a MAC address learned on an isolated port is installed in the isolated VLAN and in the primary VLAN. A MAC address learned on a community port is installed in the community VLAN and in the primary VLAN. A MAC address learned on a promiscuous port is installed in the primary VLAN, in all community VLANs, and in all isolated VLANs. Thus, MAC address learning is needed in more than one VLAN. In an application-specific integrated circuit (ASIC)—based forwarding system, hardware learning is disabled, and MAC address learning is achieved with software learning. In software learning, a central processing unit (CPU) receives an indication of a new MAC address and decides whether to install the new MAC address in an unbounded number of VLAN MAC address tables. However, maintaining multiple VLAN MAC address tables puts a strain on hardware resources (e.g., the CPU).
According to one aspect, a method may be implemented by a network device provided in a private virtual local area network (VLAN). The method may include receiving, by the network device, a first packet on one of a plurality of private VLAN ports of the network device, and assigning, by the network device, a classified VLAN signature to the first packet. The method may also include assigning, by the network device, a primary VLAN signature to the first packet, and storing, by the network device, a media access control (MAC) address and the classified VLAN signature of the first packet in a single MAC address table.
According to another aspect, a network device may be provided in a private virtual local area network (VLAN), and may include a memory to store a plurality of instructions and a processor to execute instructions in the memory. The processor may execute instructions in the memory to receive a first packet on one of a plurality of private VLAN ports of the network device, assign a classified VLAN signature to the first packet, and assign a primary VLAN signature to the first packet. The process may also execute instructions in the memory to store a media access control (MAC) address and the classified VLAN signature of the first packet in a single MAC address table, where the MAC address of the first packet includes a destination MAC address of the first packet, and the classified VLAN signature is associated with a classified VLAN of the one of the plurality of private VLAN ports.
According to still another aspect, one or more non-transitory computer-readable media may store instructions executable by one or more processors provide in a network device of a private virtual local area network (VLAN). The media may store one or more instructions for receiving a first packet on one of a plurality of private VLAN ports of the network device, assigning a classified VLAN signature to the first packet, assigning a primary VLAN signature to the first packet, and storing a media access control (MAC) address and the classified VLAN signature of the first packet in a single MAC address table. The media may also store one or more instructions for receiving a second packet on another one of the plurality of VLAN ports, assigning a classified VLAN signature to the second packet, assigning a primary VLAN signature to the second packet, comparing the second packet to the MAC address table, and using a destination MAC address, determined from the comparison, to forward the second packet.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more implementations described herein and, together with the description, explain these implementations. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Systems and/or methods described herein may implement private VLANs with hardware learning and without CPU intervention. For example, the systems and/or methods may classify packets received by private VLAN ports based on the types of ports (e.g., promiscuous, community, or isolated) receiving the packets. The systems and/or methods may also apply MAC address learning to all private VLAN ports, and may store the learned MAC addresses in a single primary VLAN MAC address table (e.g., rather than in multiple tables). The systems and/or methods may also utilize a destination MAC lookup (e.g., of the primary VLAN MAC address table) to determine whether to forward a packet to a located MAC address or to treat the packet as unknown unicast traffic.
In an example implementation, the systems and/or methods may receive a first packet on a private VLAN port of a network device, and may assign a classified VLAN signature and a primary VLAN signature to the first packet. The systems and/or methods may store a MAC address and the classified VLAN signature of the first packet in a single MAC address table, and may receive a second packet on the private VLAN port. The systems and/or methods may assign a classified VLAN signature and a primary VLAN signature to the second packet, and may compare the second packet to the MAC address table. The systems and/or methods may use a destination MAC address, determined from the comparison, for forwarding the second packet. Alternatively, the systems and/or methods may flood the second packet, as unknown unicast traffic, to the second packet's classified VLAN based on the comparison.
The term “component,” as used herein, is intended to be broadly construed to include hardware (e.g., a processor, a microprocessor, an ASIC, a field-programmable gate array (FPGA), a chip, a memory device (e.g., a read only memory (ROM), a random access memory (RAM), etc.), etc.) or a combination of hardware and software (e.g., a processor, microprocessor, ASIC, etc. executing software contained in a memory device).
The term “packet,” as used herein, is intended to be broadly construed to include a frame, a datagram, a packet, or a cell; a fragment of a frame, a fragment of a datagram, a fragment of a packet, or a fragment of a cell; or another type, arrangement, or packaging of data.
Components of network 100 may interconnect via wired and/or wireless connections or links. Two network devices 110, one network 120, three client devices 130, one primary VLAN 140, one secondary community VLAN 150, and one secondary isolated VLAN 160 have been illustrated in
Network device 110 may include a traffic transfer device, such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic. In an example implementation, network device 110 may include a device that is capable of transmitting information to and/or receiving information from network 120 and client devices 130.
Network 120 may include a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), a cellular network, a Wi-Fi network, an intranet, the Internet, an optical fiber (or fiber optic)-based network, or a combination of networks.
Client device 130 may include any device that is capable of accessing network 120 via network devices 110-1 and 110-2. For example, client device 130 may include a server device, a workstation computer, a radiotelephone, a personal communications system (PCS) terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a personal digital assistant (PDA) (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.), a wireless device (e.g., a wireless telephone), a smart phone, a laptop computer, a personal computer, or other types of computation or communication devices.
Primary VLAN 140 may include network device 110-2 and all of client devices 130. Primary VLAN 140 may include all ports (e.g., promiscuous, community, and isolated ports) in the private VLAN (e.g., network 100). Primary VLAN 140 may define a flooding domain for broadcast, unknown unicast, and multicast (BUM) traffic received on the promiscuous ports. In a typical arrangement, a packet received on a promiscuous port may be classified to be associated with primary VLAN 140, and a MAC address learned on a promiscuous port may be installed in multiple MAC address tables associated with primary VLAN 140, secondary community VLAN 150, and secondary isolated VLAN 160. Implementations described herein may modify the classification of a packet received on a promiscuous port and may use a single MAC address table (e.g., as opposed to multiple MAC address tables).
Secondary community VLAN 150 may include client devices 130-1 and 130-2. Secondary community VLAN 150 may include the promiscuous ports and the community ports in the private VLAN (e.g., network 100). Secondary community VLAN 150 may define a flooding domain for BUM traffic received on the community ports. In a typical arrangement, a packet received on a community port may be classified to be associated with secondary community VLAN 150, and a MAC address learned on a community port may be installed in multiple MAC address tables associated with primary VLAN 140 and secondary community VLAN 150. Implementations described herein may modify the classification of a packet received on a community port and may use a single MAC address table (e.g., as opposed to multiple MAC address tables).
Secondary isolated VLAN 160 may include client device 130-3. Secondary isolated VLAN 160 may include the promiscuous ports and the isolated ports in the private VLAN (e.g., network 100), and may define a flooding domain for BUM traffic received on the isolated ports. A single isolated VLAN 160 may be sufficient to serve all isolated ports in the private VLAN. In a typical arrangement, a packet received on an isolated port may be classified to be associated with secondary isolated VLAN 160, and a MAC address learned on an isolated port may be installed in multiple MAC address tables associated with primary VLAN 140 and isolated community VLAN 160. Implementations described herein may modify the classification of a packet received on an isolated port and may use a single MAC address table (e.g., as opposed to multiple MAC address tables).
Although
Input ports 210 may be a point of attachment for physical links and may be a point of entry for incoming traffic (e.g., packets). Input ports 210 may carry out data link layer encapsulation and decapsulation. In example implementations, input ports 210 may send (e.g., may be an exit point) and/or receive (e.g., may be an entry point) packets.
Switching mechanism 220 may interconnect input ports 210 with output ports 230. Switching mechanism 220 may be implemented using many different techniques. For example, switching mechanism 220 may be implemented via busses, crossbars, and/or with shared memories (e.g., which may act as temporary buffers to store traffic from input ports 210 before the traffic is eventually scheduled for delivery to output ports 230).
Output ports 230 may store packets and may schedule packets for service on output links (e.g., physical links). Output ports 230 may include scheduling algorithms that support priorities and guarantees. Output ports 230 may support data link layer encapsulation and decapsulation, and/or a variety of higher-level protocols. In example implementations, output ports 230 may send packets (e.g., may be an exit point) and/or receive packets (e.g., may be an entry point).
Control unit 240 may use routing protocols and one or more forwarding tables for forwarding packets. Control unit 240 may connect with input ports 210, switching mechanism 220, and output ports 230. Control unit 240 may compute a forwarding table, implement routing protocols, and/or run software to configure and manage device 200. Control unit 240 may handle any packet whose destination address may not be found in the forwarding table.
In an example implementation, control unit 240 may include a bus 250 that may include a path that permits communication among a processor 260, a memory 270, and a communication interface 280. Processor 260 may include one or more processors, microprocessors, ASICs, FPGAs, or other types of processing units that may interpret and execute instructions. Memory 270 may include a RAM, a ROM device, a magnetic and/or optical recording medium and its corresponding drive, and/or another type of static and/or dynamic storage device that may store information and instructions for execution by processor 260. Memory 270 may also temporarily store incoming traffic (e.g., a header of a packet or an entire packet) from input ports 210, for processing by processor 260, before a packet is directed back to the shared memories (e.g., in switching mechanism 220), queued in the shared memories (e.g., based on processing results), and eventually scheduled to be sent to output ports 230. Communication interface 280 may include any transceiver-like mechanism that enables control unit 240 to communicate with other devices and/or systems.
Device 200 may perform certain operations, as described herein. Device 200 may perform these operations in response to processor 260 executing software instructions contained in a computer-readable medium, such as memory 270. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory 270 from another computer-readable medium, such as a data storage device, or from another device via communication interface 280. The software instructions contained in memory 270 may cause processor 260 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Although
Primary VLAN MAC address table 300 may include a single forwarding table that enables network device 110-2 to perform destination MAC address lookup for a packet (e.g., so that network device 110-2 can forward the packet to the appropriate device in network 100). For example, primary VLAN MAC address table 300 may include every MAC address learned on any of the private VLAN ports (e.g., promiscuous port 310, isolated port 320, community ports 330, and/or trunk port 340). Each MAC address provided in primary VLAN MAC address table 300 may also be associated with a signature that matches the MAC address' (e.g., a packet's) classified VLAN. In one example implementation, a packet may be classified to be associated with primary VLAN 140 (e.g., if the packet is received on promiscuous port 310), secondary community VLAN 150 (e.g., if the packet is received on one of community ports 330), and secondary isolated VLAN 160 (e.g., if the packet is received on isolated port 320). Further details of primary VLAN MAC address table 300 are provided below in connection with, for example,
Promiscuous port 310 may include one of input ports 210 or output ports 230 (
Isolated port 320 may include one of input ports 210 or output ports 230 (
Community port 330 may include one of input ports 210 or output ports 230 (
Trunk port 340 may include one of input ports 210 or output ports 230 (
Although
Packet classifier 400 may include hardware or a combination of hardware and software that may receive a packet (e.g., from one of promiscuous port 310, isolated port 320, or community port 330). Packet classifier 400 may assign the packet with a classified VLAN signature associated with the port's classified VLAN, and may assign the packet with a primary VLAN signature associated with primary VLAN 140. For example, if the packet is received on promiscuous port 310, the port's classified VLAN would be primary VLAN 140, and packet classifier 400 may assign the packet with a classified VLAN signature associated with primary VLAN 140. In another example, if the packet is received on isolated port 320, the port's classified VLAN would be secondary isolated VLAN 160, and packet classifier 400 may assign the packet with a classified VLAN signature associated with secondary isolated VLAN 160. For MAC addresses (e.g., provided in packets received by network device 110-2) learned on promiscuous port 310, isolated port 320, or community port 330, packet classifier 400 may populate primary VLAN MAC address table 300 with the MAC addresses and with signatures equal to the packets' classified VLAN signatures.
For example, and as further shown in
In another example, isolated port 320 may receive a packet 440 (e.g., that includes a source MAC address and a destination MAC address), and may provide packet 440 to packet classifier 400. Packet classifier 400 may receive packet 440, and may assign packet 440 with a classified VLAN signature associated with isolated port's 320 classified VLAN (e.g., secondary isolated VLAN 160). Packet classifier 400 may also assign packet 440 with a primary VLAN signature associated with primary VLAN 140. Thus, packet 440 may be converted to a modified packet 450 that includes the source MAC address, the destination MAC address, the classified VLAN signature, and the primary VLAN signature. Packet classifier 400 may populate primary VLAN MAC address table 300 with the source MAC address of modified packet 450 and with the classified VLAN signature of modified packet 450, as indicated by reference number 460.
In still another example, community port 330 may receive a packet 470 (e.g., that includes a source MAC address and a destination MAC address), and may provide packet 470 to packet classifier 400. Packet classifier 400 may receive packet 470, and may assign packet 470 with a classified VLAN signature associated with community port's 330 classified VLAN (e.g., secondary community VLAN 150). Packet classifier 400 may also assign packet 470 with a primary VLAN signature associated with primary VLAN 140. Thus, packet 470 may be converted to a modified packet 480 that includes the source MAC address, the destination MAC address, the classified VLAN signature, and the primary VLAN signature. Packet classifier 400 may populate primary VLAN MAC address table 300 with the source MAC address of modified packet 480 and with the classified VLAN signature of modified packet 480, as indicated by reference number 490.
Although
MAC address field 500 may include information associated MAC addresses learned on all private VLAN ports (e.g., promiscuous port 310, isolated port 320, and/or community ports 330). For example, with reference to
MAC address signature field 510 may include signatures associated with the MAC addresses provided in MAC address field 500. The signatures provided in MAC address signature field 510 may be equivalent to the classified VLAN signatures of the packets that provided the MAC addresses of MAC address field 500. For example, with reference to
As shown in
Although
Lookup component 600 may include hardware or a combination of hardware and software that may receive traffic (e.g., Ethernet unicast traffic) on any private VLAN port (e.g., promiscuous port 310, isolated port 320, and/or community port 330). Lookup component 600 may perform a destination MAC address lookup (e.g., for a packet of the traffic) of primary VLAN MAC address table 300. If lookup component 600 finds an entry (e.g., in MAC address field 500) of primary VLAN MAC address table 300 that matches the destination MAC address of the packet, lookup component 600 may deem the entry qualified (e.g., for forwarding the packet) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the same as the packet's classified VLAN signature. Lookup component 600 may also deem the entry qualified (e.g., for forwarding the packet) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the primary VLAN signature. Lookup component 600 may further deem the entry qualified (e.g., for forwarding the packet) if the classified VLAN signature of the packet is the primary VLAN signature.
If any of the aforementioned conditions are satisfied, lookup component 600 may use the destination MAC address of the located entry (e.g., of primary VLAN MAC address table 300) for forwarding the packet. If none of the aforementioned conditions are satisfied or if lookup component 600 does not locate a matching entry in primary VLAN MAC address table 300, lookup component 600 may treat the packet as unknown unicast traffic, and may flood the packet in the classified VLAN of the packet.
In one example implementation, if broadcast or multicast traffic is received on a private VLAN port (e.g., promiscuous port 310, isolated port 320, or community port 330), lookup component 600 may flood the broadcast or multicast traffic in the classified VLAN of the private VLAN port. In another implementation, the functions of network device 110-2, described above, may be utilized when the private VLAN spans multiple network devices 110, and may be applied to software learning and hardware learning models.
In one example, and as further shown in
Lookup component 600 may receive modified packet 620, and may perform a destination MAC address lookup (e.g., for modified packet 620) of primary VLAN MAC address table 300, as indicated by reference number 670. If lookup component 600 finds an entry (e.g., in MAC address field 500) of primary VLAN MAC address table 300 that matches the destination MAC address (“B”) of modified packet 620, lookup component 600 may deem the entry qualified (e.g., for forwarding modified packet 620) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the same as modified packet's 620 classified VLAN signature (“P”). Lookup component 600 may also deem the entry qualified (e.g., for forwarding modified packet 620) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the primary VLAN signature. Lookup component 600 may further deem the entry qualified (e.g., for forwarding modified packet 620) if the classified VLAN signature (“P”) of modified packet 620 is the primary VLAN signature.
If any of the aforementioned conditions are satisfied, lookup component 600 may use the destination MAC address of the located entry (e.g., of primary VLAN MAC address table 300) for forwarding modified packet 620, as indicated by reference number 680. If none of the aforementioned conditions are satisfied or if lookup component 600 does not locate a matching entry in primary VLAN MAC address table 300, lookup component 600 may treat modified packet 620 as unknown unicast traffic, and may flood modified packet 620 in the classified VLAN (e.g., primary VLAN 140) of modified packet 620, as indicated by reference number 690. In the example provided, since the classified VLAN signature (“P”) of modified packet 620 is the primary VLAN signature, modified packet 620 may be forwarded in accordance with reference number 680.
In another example, and as further shown in
Lookup component 600 may receive modified packet 640, and may perform a destination MAC address lookup (e.g., for modified packet 640) of primary VLAN MAC address table 300, as indicated by reference number 670. If lookup component 600 finds an entry (e.g., in MAC address field 500) of primary VLAN MAC address table 300 that matches the destination MAC address (“C”) of modified packet 640, lookup component 600 may deem the entry qualified (e.g., for forwarding modified packet 640) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the same as modified packet's 640 classified VLAN signature (“I”). Lookup component 600 may also deem the entry qualified (e.g., for forwarding modified packet 640) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the primary VLAN signature. Lookup component 600 may further deem the entry qualified (e.g., for forwarding modified packet 640) if the classified VLAN signature (“I”) of modified packet 640 is the primary VLAN signature.
If any of the aforementioned conditions are satisfied, lookup component 600 may use the destination MAC address of the located entry (e.g., of primary VLAN MAC address table 300) for forwarding modified packet 640, as indicated by reference number 680. If none of the aforementioned conditions are satisfied or if lookup component 600 does not locate a matching entry in primary VLAN MAC address table 300, lookup component 600 may treat modified packet 640 as unknown unicast traffic, and may flood modified packet 640 in the classified VLAN (e.g., secondary isolated VLAN 160) of modified packet 640, as indicated by reference number 690. In the example provided, since the classified VLAN signature (“I”) of modified packet 640 is the same as the MAC address signature of entry “C” (e.g., of primary VLAN MAC address table 300), modified packet 640 may be forwarded in accordance with reference number 680.
In still another example, and as further shown in
Lookup component 600 may receive modified packet 660, and may perform a destination MAC address lookup (e.g., for modified packet 660) of primary VLAN MAC address table 300, as indicated by reference number 670. If lookup component 600 finds an entry (e.g., in MAC address field 500) of primary VLAN MAC address table 300 that matches the destination MAC address (“E”) of modified packet 660, lookup component 600 may deem the entry qualified (e.g., for forwarding modified packet 660) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the same as modified packet's 660 classified VLAN signature (“C”). Lookup component 600 may also deem the entry qualified (e.g., for forwarding modified packet 660) if the MAC address signature (e.g., provided in MAC address signature field 510) of the entry is the primary VLAN signature. Lookup component 600 may further deem the entry qualified (e.g., for forwarding modified packet 660) if the classified VLAN signature (“C”) of modified packet 660 is the primary VLAN signature.
If any of the aforementioned conditions are satisfied, lookup component 600 may use the destination MAC address of the located entry (e.g., of primary VLAN MAC address table 300) for forwarding modified packet 660, as indicated by reference number 680. If none of the aforementioned conditions are satisfied or if lookup component 600 does not locate a matching entry in primary VLAN MAC address table 300, lookup component 600 may treat modified packet 660 as unknown unicast traffic, and may flood modified packet 660 in the classified VLAN (e.g., secondary community VLAN 150) of modified packet 660, as indicated by reference number 690. In the example provided, since the destination MAC address (“E”) of modified packet 660 is not provided in primary VLAN MAC address table 300, modified packet 660 may be forwarded in accordance with reference number 690.
Although
As illustrated in
As further shown in
Returning to
As further shown in
Process block 760 may include the process blocks depicted in
As further shown in
Returning to
As further shown in
Systems and/or methods described herein may implement private VLANs with hardware learning and without CPU intervention. For example, the systems and/or methods may classify packets received by private VLAN ports based on the types of ports (e.g., promiscuous, community, or isolated) receiving the packets. The systems and/or methods may also apply MAC address learning to all private VLAN ports, and may store the learned MAC addresses in a single primary VLAN MAC address table (e.g., rather than in multiple tables). The systems and/or methods may also utilize a destination MAC lookup (e.g., of the primary VLAN MAC address table) to determine whether to forward a packet to a located MAC address or to treat the packet as unknown unicast traffic.
The systems and/or methods may significantly improve MAC address learning performance for private VLANs by populating MAC address entries in a single MAC address table. Thus, the systems and/or methods conserve hardware resources by eliminating the need to maintain multiple MAC address tables.
The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while series of blocks have been described with regard to
It will be apparent that example aspects, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects should not be construed as limiting. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware could be designed to implement the aspects based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the invention includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Pogde, Pranay, Kommula, Sunanda, Rugge, Rudramahesh
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6741592, | May 22 2000 | Cisco Systems, Inc | Private VLANs |
8789059, | Nov 02 2007 | International Business Machines Corporation | Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events |
8798059, | Dec 03 2010 | Juniper Networks, Inc. | Optimizing private virtual local area networks (VLANs) |
20050175022, | |||
20060146835, | |||
20090154470, | |||
20090304007, | |||
20100020814, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 19 2010 | KOMMULA, SUNANDA | Juniper Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033434 | /0364 | |
Nov 22 2010 | POGDE, PRANAY | Juniper Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033434 | /0364 | |
Dec 01 2010 | RUGGE, RUDRAMAHESH | Juniper Networks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033434 | /0364 | |
Jul 31 2014 | Juniper Networks, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Feb 10 2017 | ASPN: Payor Number Assigned. |
Nov 02 2020 | REM: Maintenance Fee Reminder Mailed. |
Apr 19 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 14 2020 | 4 years fee payment window open |
Sep 14 2020 | 6 months grace period start (w surcharge) |
Mar 14 2021 | patent expiry (for year 4) |
Mar 14 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 14 2024 | 8 years fee payment window open |
Sep 14 2024 | 6 months grace period start (w surcharge) |
Mar 14 2025 | patent expiry (for year 8) |
Mar 14 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 14 2028 | 12 years fee payment window open |
Sep 14 2028 | 6 months grace period start (w surcharge) |
Mar 14 2029 | patent expiry (for year 12) |
Mar 14 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |