Abstract:
A funnel in fan out network device includes a fast uplink port operating at a first data rate. A plurality of slow ports operate at a second data rate. The second data rate is slower than the first data rate. A processor is configured to direct a packet received on one of the slower ports directly to the fast uplink port without looking up the destination address of the packet.

Description:
FIELD OF THE INVENTION 
   The present invention relates generally to a data link layer (layer 2) multi-port bridge or switch that transfers packets between different networks. More specifically, a funnel in fan out device is disclosed that includes multiple ports including an uplink port designated to receive all packets sent from the remaining ports. 
   BACKGROUND OF THE INVENTION 
   The problem of networking a set of devices has been divided into layers. The bottom layer is a physical layer. It handles the actual physical connections between devices. The second layer is the data link layer. It describes how the data is formatted on the physical medium that connects the devices. The third layer is the network layer. It handles cases where there is greater than one connection per machine. The fourth layer is the transport layer. This determines that all of the messages from a source reach the destination reliably and in an unduplicated fashion. Often the second layer is subdivided into a Logical Link Control (“LLC”) layer and a Media Access Control (“MAC”) layer. A MAC address is required in this layer. In the TCP/IP suite of protocols employed on the Internet, the third layer or network layer is the IP layer. This layer requires a globally unique IP address in order to route packets to the right physical machine. The IP address is issued by a central authority. The TCP layer additionally requires a machine port number so that the packet is sent to the correct port of a specific machine. The present invention is implemented in one embodiment by directing packets to a network appliance using a layer 2 bridge or switch. 
   Bridges or switches that operate in the data link layer may be used to connect networks using different MAC level protocols such as Ethernet, Token Ring or Token Bus. Such devices do not examine the network layer header to transfer packets between networks and thus can copy IP, IPX, and OSI packets to different networks in contrast to a network level router (level 3) that handles packets conforming to a specific network layer protocol. 
   A bridge discovers the layer 2 addresses of devices on networks connected to it by examining packets sent by the devices and storing the layer 2 source addresses of the devices in a memory. When a bridge receives a packet, the bridge checks the packet destination address against its table of layer 2 addresses for each network that is connected to the bridge to determine the network interface to which the packet should be transferred. A multiport bridge has multiple ports that may be connected to multiple networks and the bridge determines the port that receives each incoming packet based on the layer 2 destination address of the packet and the layer 2 addresses known to the bridge to be reachable on each of its ports. It should be noted that throughout this specification reference is made to a multiport bridge or layer 2 switch and that whenever such reference is made, either device may be substituted for the other and other similar multiport layer 2 network devices may also be substituted for the multiport bridge or layer 2 switch. 
   A two port bridge that stores layer 2 addresses of devices connected to the two networks that are bridged is described in detail in U.S. Pat. No. 4,627,052 issued to Hoare et al., which is herein incorporated by reference for all purposes. The bridge keeps track of the layer 2 addresses of devices that send messages from networks connected to either of its ports. A layer 2 switch or multiport bridge is an extension of such a device where more than 2 ports are connected to networks or subnetworks and the multiport bridge or switch keeps a table of the layer 2 addresses of devices sending messages to each of the ports. Packets sent to the switch are inspected and transferred to the port that is connected to a network or subnetwork where the device corresponding to packet destination address has been transmitting. 
   Many layer 2 switches and multiport bridges are configured to have one of their ports running at a higher rate than the rest of the ports. The faster port is referred to as an uplink port. For example, a switch with 12 Fast Ethernet (100 Base T) ports and 1 Gigabit Ethernet port may be used to connect a number of small Fast Ethernet networks to a single larger network via the Gigabit Ethernet port. Such a switch functions similarly to a layer 2 switch having ports all operating at the same speed. A separate table of layer 2 addresses is maintained that may be reached via the fast uplink port just as a table of addresses is maintained for addresses that may be reached via any of the slower ports. 
   A number of network appliances have been developed that process or monitor all packets that enter or leave a network. For example, a load balancer such as the Cisco Local Director described in U.S. patent application Ser. No. 08/850,248, entitled “Distributing Connections To A Group Of Machines”, filed May 2, 1997, is used to intercept and redirect packets sent to or from a network served by the Local Director. Similarly, a firewall may need to receive all packets sent to or from a protected network for the purpose of filtering packets. Packet monitors may also need to receive all packets sent to or from a network. In each of these cases, a traffic situation exists that is similar to the situation described above where multiple networks are connected through a layer 2 switch uplink to a larger network. Relatively light traffic is experienced in and out of the various subnetworks that comprise the network being serviced by the network appliance. Since all network traffic is seen by the network appliance, very heavy traffic is experienced on the interface that connects the network appliance to all of the subnetworks. 
   It would be useful if a layer 2 switch with an uplink port could be adapted for use with a network appliance that needs to receive all network traffic that enters and leaves a network. 
   SUMMARY OF THE INVENTION 
   A layer 2 funnel in fan out device is disclosed that directs all packets from subnetworks or devices connected to a set of ports operating at a slow speed to a single port operating at a fast speed. This is referred to as the funnel in aspect of the device. Packets from the fast port are bridged to the slower ports based on tables kept by the funnel in fan out device that include the layer 2 addresses of devices connected to the slower ports. This is referred to as the fan out aspect of the device. The tables need not include the addresses of devices connected to the fast port since all packets from the slow ports are automatically directed to the fast port. A network appliance that must receive all packets entering or leaving the network is connected to the fast port. In this manner, the layer 2 funnel in fan out device functions as a port multiplier for the network appliance. 
   It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. Several inventive embodiments of the present invention are described below. 
   In one embodiment, a funnel in fan out network device includes a fast uplink port operating at a first data rate. A plurality of slow ports operate at a second data rate. The second data rate is slower than the first data rate. A processor is configured to direct a packet received on one of the slower ports directly to the fast uplink port without looking up the destination address of the packet. 
   In one embodiment, a method of directing packets to a network appliance includes receiving packets on a plurality of slow ports operating at a first data rate and recording the source addresses of the packets received from each slow port. Packets are transferred to a fast uplink port operating at a second data rate. The second data rate is faster than the first data rate; and the packets are transferred to the fast uplink port without determining whether a device connected to the fast uplink port corresponds to the packet destination address. 
   In one embodiment, a computer program product for directing packets to a network appliance includes computer instructions for receiving packets on a plurality of slow ports operating at a first data rate and recording the source addresses of the packets received from each slow port. Packets are transferred to a fast uplink port operating at a second data rate. The second data rate is faster than the first data rate; and the packets are transferred to the fast uplink port without determining whether a device connected to the fast uplink port corresponds to the packet destination address. 
   These and other features and advantages of the present invention will be presented in more detail in the following detailed description and the accompanying figures which illustrate by way of example the principles of the invention. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which: 
       FIG. 1  is a block diagram illustrating a layer 2 funnel in fan out device used to connect a load balancer to a set of network devices. 
       FIG. 2  is a diagram illustrating a table generated and stored by the funnel in fan out device to keep track of the devices connected to the various slow ports of the funnel in fan out device. 
       FIG. 3  is a flow chart illustrating a process executed for packets received at one of the slower ports of the funnel in fan out device. 
       FIG. 4  is a flow chart illustrating a process executed for packets received at the uplink port from the network appliance. 
   

   DETAILED DESCRIPTION 
   A detailed description of a preferred embodiment of the invention is provided below. While the invention is described in conjunction with that preferred embodiment, it should be understood that the invention is not limited to any one embodiment. On the contrary, the scope of the invention is limited only by the appended claims and the invention encompasses numerous alternatives, modifications and equivalents. For the purpose of example, numerous specific details are set forth in the following description in order to provide a thorough understanding of the present invention. The present invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail in order not to unnecessarily obscure the present invention. 
   For the purpose of example, the funnel in fan out device described below is described as directing packets to a load balancing network appliance. It should be realized that other network appliances including a firewall and a packet monitor are substituted for the load balancing network appliance in other embodiments. 
     FIG. 1  is a block diagram illustrating a layer 2 funnel in fan out device  102  used to connect a load balancer  104  to a set of network devices  106 . Funnel in fan out device  102  includes a processor  102   a  and a memory  102   b.  Load balancer  104  is connected to a single Gigabit Ethernet port (the uplink port) labeled E of funnel in fan out device  102 . Network devices  106  are connected to various 100 Base T ports labeled A, B, C and D of funnel in fan out device  102 . Network devices  106  may be connected individually to one of the 100 Base T ports or they may be connected indirectly via a subnetwork that includes a number of other network devices also connected to funnel in fan out device  102  through the same port. Although only four 100 Base T ports are shown for the purpose of illustration, ten or more 100 base T ports may be included in an actual system. In addition to the various ports shown which each include a network interface for transferring packets to and from communication lines attached to the ports, funnel in fan out device  102  also includes one or more microprocessors for processing packets and searching for addresses when necessary. Addresses and port designations are stored in one or more nonvolatile or volatile memories that contain one or more tables such as the table described in FIG.  2 . 
   All packets entering funnel in fan out device  102  from the slower ports are sent to the uplink port so that they are intercepted by load balancer  104 . The redirection of packets to load balancer  104  is accomplished very quickly and without a need to refer to a look up table. Instead of a look up, a universal rule that all packets from the slower ports are automatically routed to the uplink port is implemented. Unlike a conventional multiport bridge, no table of devices that may be reached via the uplink port is maintained by the funnel in fan out device. 
   Furthermore, there is no look up executed among the tables maintained by the funnel in fan out device to determine whether the destination address corresponds to a device that may be reached via any of the slower ports. Regardless of the destination address indicated in the packet header, each packet from one of the slower ports is always sent to the uplink port. This rule saves considerable time redirecting network packets to the load balancer. The load balancer receives all network packets simply by virtue of being connected to the uplink port. Furthermore the network packets are sent to the load balancer on a fast port so that all of the traffic from the various slower ports may be aggregated or “funneled” into the uplink port without overloading the network. The funnel in fan out device effectively positions the load balancer at a location on the network where it can intercept and process all of the packets sent to and from the network. 
   Once the load balancer receives a network packet, the load balancer may change the address of the packet to redirect the packet to a different destination on the network or the load balancer may route the packet to a different network. If the packet is sent back to the network that generated the packet and sent the packet to the load balancer via the funnel in fan out device, then the packet is sent back to the funnel in fan out device on the uplink port. Packets received on the uplink port by the funnel in fan out device are treated differently than packets received on any of the slower ports. Such packets are bridged (“fanned out”) to the slower ports in a conventional manner based on the addresses of devices connected to the slower ports that have been discovered and stored by the funnel in fan out device. 
     FIG. 2  is a diagram illustrating a table generated and stored by the funnel in fan out device to keep track of the devices connected to the various slow ports of the funnel in fan out device. The addresses are used to bridge packets returning on the uplink port to the appropriate slow port on which the device corresponding to the packet layer 2 (MAC) address may be reached. The device with MAC address XX is found on port A; the device with MAC address YY is found on port B; and the device with MAC address ZZ is found on port C. The table also stores a time to live for each stored MAC address and port so that when devices are removed from the ports or the subnetworks attached to the ports, the entries indicating that such devices may be reached through their former ports are eventually deleted. Each time a device sends a packet to the funnel in fan out device on one of the slower ports, the source address of the packet is noted. Either a new entry is made in the table or the time to live of an existing entry is reset. It should be noted that in different embodiments the conceptual table shown is stored in different data structures such as a table in memory, a hash table, or a binary tree. 
     FIG. 3  is a flow chart illustrating a process executed for packets received at one of the slower ports of the funnel in fan out device. The process starts at  300 . In a step  302 , a packet is received. Next, in a step  304 , a table such as the table shown in  FIG. 2  is updated according to the packet source address. In a step  306 , the packet is forwarded to the uplink port. The packet is forwarded to the uplink port regardless of the packet destination MAC address and without translating that address. No search of an address table is required. Since the MAC address is not translated for the packet to be forwarded to the network appliance connected to the uplink port, the MAC address may be used unchanged if the network appliance does not redirect the packet. This might occur, for example, if the network appliance is a packet monitor. 
     FIG. 4  is a flow chart illustrating a process executed for packets received at the uplink port from the network appliance. The process starts at  400 . In a step  402 , the funnel in fan out device receives a packet. Next, in a step  404 , the funnel in fan out device skips learning the MAC source address of the packet. Whatever source address other than its own MAC address that the load balancer or other network appliance appends to the packet may not, in fact, be reachable via the uplink interface. In any case, there is no need to keep a table of addresses reachable via the uplink since all packets from the slow ports are forwarded to the uplink without an address look up being required. In a step  406 , the funnel in fan out device forwards the packet to the slower interface indicated for the packet destination MAC address in a table such as the table shown in FIG.  2 . 
   A layer 2 funnel in fan out device has been disclosed that forwards all packets received on a set of slower ports to a fast uplink port without referring to the packet destination address. When a network appliance such as a load balancer is connected to the uplink port, the funnel in fan out device functions as a port multiplier for the network appliance. The funnel in fan out device directs all packets to the network appliance. Packets sent back to the funnel in fan out device are bridged to a network device via one of the slower ports in a conventional manner. 
   Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. It should be noted that there are many alternative ways of implementing both the process and apparatus of the present invention. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.