The present disclosure relates generally to communication networks, and more particularly, to fabric extenders.
Fabric extenders (FEXs) are used to simplify network access architecture and operations. A fabric extender may operate, for example, as a remote line card for a switch. The architecture enables physical topologies with the flexibility and benefits of top-of-rack (ToR) and end-of-row (EoR) deployments.
Corresponding reference characters indicate corresponding parts throughout the several views of the drawings.
In one embodiment, a method generally comprises receiving a packet at a fabric extender, performing a look up in a flow table at the fabric extender for a flow associated with the packet, processing the packet at the fabric extender based on an entry in the flow table if an entry for the flow is found in the flow table, and forwarding the packet to an upstream network device configured to forward the packet if an entry for the flow is not found in the flow table.
In another embodiment, an apparatus generally comprises a plurality of interfaces for communication with one or more upstream network devices configured for forwarding packets and communication with one or more downstream nodes, and a processor for performing a look up in a flow table at a fabric extender for a flow associated with a packet received at one of said interfaces in communication with the downstream node, processing the packet based on an entry in the flow table if an entry for the flow is found in the flow table, and forwarding the packet to the upstream network device if an entry for the flow is not found in the flow table. The apparatus further comprises memory for storing the flow table.
The following description is presented to enable one of ordinary skill in the art to make and use the embodiments. Descriptions of specific embodiments and applications are provided only as examples and various modifications will be readily apparent to those skilled in the art. The general principles described herein may be applied to other embodiments and applications without departing from the scope of the embodiments. Thus, the embodiments are not to be limited to those shown, but are to be accorded the widest scope consistent with the principles and features described herein. For purpose of clarity, features relating to technical material that is known in the technical fields related to the embodiments have not been described in detail.
The embodiments described herein provide local switching at a fabric extender (FEX) architecture to generally improve network performance and reduce management points within the network. As described below, the embodiments operate in the context of a data communications network including multiple network elements.
Referring now to the figures, and first to
The switches 12 are each connected to an FEX (Fabric Extender) 16 (also referred to as a remote replicator, remote line card, or port extender). The FEX 16 is configured to operate as a remote line card for one or more switches 12 or other network devices. As described in detail below, the FEX 16 includes a flow table 28 for use in locally forwarding packets received from servers 22, 24. Local forwarding at the FEX 16 allows packets to be transmitted between servers or virtual machines in communication with the same FEX without transmitting the packets upstream to the switch 12.
Each FEX 16 is in communication with one or more servers 22, 24. It is to be understood that the term ‘server’ as used herein may refer to a conventional server, a server comprising virtual machines 26, or a host. Multiple ports at the server may be grouped as a virtual Port Channel (vPC). The server 22 may include a virtual switch (e.g., virtual Ethernet module (VEM) of a Nexus 1000 switch, available from Cisco Systems, Inc.). In the example shown in
In the example shown in
It is to be understood that the network shown in
An example of a network device 30 that may be used to implement embodiments described herein is shown in
Memory 36 may be a volatile memory or non-volatile storage, which stores various applications, modules, and data for execution and use by the processor 34.
Memory 36 may include flow table 28 (described below).
Logic may be encoded in one or more tangible media for execution by the processor 34. For example, the processor 34 may execute codes stored in a computer-readable medium such as memory 36. The computer-readable medium may be, for example, electronic (e.g., RAM (random access memory), ROM (read-only memory), EPROM (erasable programmable read-only memory)), magnetic, optical (e.g., CD, DVD), electromagnetic, semiconductor technology, or any other suitable medium.
The network interfaces 38 may comprise wired or wireless interfaces (line cards, ports) for receiving signals or data or transmitting signals or data to other devices. The network interfaces 38 may incorporate Ethernet interfaces, Gigabit Ethernet interfaces, 10-Gigabit Ethernet interfaces, SONET interfaces, etc.
It is to be understood that the table 28 shown in
It is to be understood that the processes described above and shown in
When a new entry is installed in the flow table 28, one or more follow on packets may already be enroute to the upstream switch 12. Therefore, if the new entry is activated immediately, out-of-order packet issues may arise. To avoid out-of-order issues, a timed buffer or drop approach may be used, for example. In the buffer approach, whenever a new entry is installed, subsequent packets are buffered for a specified timeframe (e.g., long enough to drain packets enroute to the upstream switch 12). At the end of this time period, local forwarding is enabled for the entry. In the drop approach, packets are dropped for the specified timeframe.
Policies are preferably applied at the upstream switch 12. Therefore, the FEX 16 should be in sync with policy changes made at the upstream switch 12. In one embodiment, probe packets are used to enforce upstream switch policy changes at the FEX 16. The FEX 16 may forward one out of a specified number of packets (e.g., one out of every few thousand packets) to the upstream switch 12. This forwarded packet is referred to herein as a probe packet. The probe packet undergoes normal forwarding lookups at the switch 12 and reflects any policy changes at the switch to the FEX 16. For example, if the probe packet is a permit packet, bits in the packet are set to indicate (probe result, permit). If the probe packet is a deny packet, action is taken based on the type of deny. For example, if it is a deny due to policies, bits are set in the packet to indicate (probe result, deny) and the packet is sent back to the FEX 16. In cases where the result cannot be relayed to the FEX 16, the FEX continues to send packets to the switch 12, where the packets will be dropped.
In another embodiment, local switching is turned off for specific flows or a flush mechanism is used for the flow table 28 so that packets are forwarded to the upstream switch and the table can be updated.
In one embodiment, a probe result bit is set in a VNTag (Virtual Network Tag) in the probe packet. VNTag is an example of a networking data frame header that can be used in a virtual network environment. In one example, two bits are used in the VNTag for the probe bits as follows:
In one embodiment, the switch 12 may be disabled at a per-flow granularity. The switch 12 controls the flow table population via the probe result packet. For example, a user may issue configurations on the switch 12 to turn off local switching for specific flows, which will in turn cause the switch to not set probe result bits in the VNTag.
For routed flows, the flow table 28 matches source/destination IP addresses. The fact that a packet is routed can be explicitly hinted by the switch 12 to FEX 16 or the FEX can cache a gateway MAC address of the upstream router.
In one embodiment, routed multi-destination flows are handled by performing replication on the switch/router, if egress policies are an issue. If egress policies are not an issue, the embodiments described herein may be used for routed multi-destination flows and the probe result packet can indicate multi-destinations rather than one destination.
Although the method and apparatus have been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations made to the embodiments without departing from the scope of the embodiments. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.