Port mirroring can be used to monitor network traffic and typically includes sending a copy of incoming and/or outgoing network packets seen on one switch port or an entire virtual local area network (VLAN) to a network monitoring connection on another switch port. A network administrator can place a network monitoring device on the port receiving the mirrored data to monitor the network traffic generally without affecting the client on the original port. For remote port monitoring, the packets are copied and sent to a port on another switch, which then forwards the mirroring message to the data monitoring device.
Layer 2 remote port mirroring is implemented through the cooperation between a remote source mirroring group and a remote destination mirroring group. A source device copies the packets passing through a mirroring port, and broadcasts the packets in the VLAN. The broadcasted packets may eventually be forwarded to a data monitoring device connected to the network.
Embodiments are described in detail in the following description with reference to examples shown in the following figures.
For simplicity and illustrative purposes, the principles of the embodiments are described by referring mainly to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It is apparent that the embodiments may be practiced without limitation to all the specific details. Also, the embodiments may be used together in various combinations.
According to an example, remote port mirroring utilizes multicasting or unicasting in a network to mirror packets to a remote port. Remote port mirroring includes copying incoming, outgoing or both incoming and outgoing packets from a source port on a network switch to a destination port on another network switch. The destination port may be connected to a data monitoring device to analyze the mirrored packets.
The remote port mirroring may be performed in a Transparent Interconnection of Lots of Links (TRILL) network. The TRILL protocol implements concepts for a layer 3 routing technology into a layer 2 network and combines the features of simplicity and flexibility of the layer 2 network with the features of stability, extensibility and high performance of the layer 3 network. TRILL is described in Internet Engineering Task Force (IETF) standard RFC 6325, “Routing Bridges (RBridges): Base Protocol Specification” and RFC 6326, “Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS.”
TRILL combines the advantages of both bridges and routers and is the application of link state routing to the VLAN-aware customer-bridging problem. The network switches implementing the TRILL protocol are referred to as routing bridges (referred to as RBs or RBridges). RBridges run a link state protocol amongst themselves. A link state protocol is one in which connectivity is broadcasted to all the RBridges, so that each RBridge knows about all the other RBridges, and the connectivity between them. This gives RBridges enough information to compute pair-wise optimal paths for unicast, and to calculate distribution trees for delivery of frames either to destinations whose location is unknown or to multicast/broadcast groups. A link state routing protocol that may be used is Intermediate System to Intermediate System (IS-IS).
For remote port mirroring, a mirroring source and mirroring destination may belong to different mirroring groups on different devices. A mirroring group for example includes one or multiple mirroring ports and may include a monitor port. These ports for example are not assigned to any other mirroring group. A mirroring group where the mirroring source is located is called a source mirroring group, and a mirroring group where the mirroring destination is located is called a destination mirroring group, and devices between the source device and the destination device are called intermediate devices.
According to an example, remote port mirroring in a TRILL network may include establishing a correspondence between a source mirroring group and a destination mirroring group. A mirrored packet may be unicasted (e.g., when the egress routing bridge is known) or multicasted on a multicast distribution tree in a TRILL network to multiple destinations based on stored correspondence information. This avoids broadcast flooding of mirroring messages in the network, which saves bandwidth. In one example, the stored correspondence information may be an entry in table stored at the network switch. Also, the remote port mirroring provides security in the network by providing for remote network traffic monitoring and analyzing using one or more data monitoring devices.
Network devices may be connected to the network 100 to send and receive data from other network devices. A network device is any computer that can connect to the network 100 to send and receive data. A network device may include server S1 connected to the network. A data monitoring device 110 may be connected to the network 100. The data monitoring device 110 can analyze packets. In one example, the packet analysis may be performed to detect network security threats. One example of the data monitoring device 110 is an intrusion prevention system (IPS). For remote port mirroring, the mirroring destination port may be selected based on where the data monitoring device 110 is located. For example, remote port mirroring may be performed to send packets to remote data monitoring device 110 to analyze the packets. The data monitoring device 110 may be connected to a remote network switch, so that switch and a port on that switch that is connected to the data monitoring device 110 may be selected as the mirroring destination port for remote port mirroring.
The network switches 1-5 may perform remote port mirroring. In the examples shown in
As shown in
Mirrored packets may be unicasted or multicasted to their mirroring destination ports in the network 100 instead of broadcasted. Furthermore, identifying the remote network switches for the remote port mirroring can be performed without flooding the network.
In one example, the network 100 is a TRILL network and the network switches 1-5 are Rbridges, shown as RBs 1-5 in
Each of the RBs 1-5 may store, in addition to link connectivity and link cost, information such as VLAN connectivity, root RBs for multicast distribution trees (also referred to as forwarding RBs), nicknames for RBs, etc. Each of the RBs 1-5 can independently calculate optimal point-to-point paths for unicast frames to a known destination and can determine multicast distribution trees for multicasting frames in the TRILL network. Unicast frames may be forwarded hop-by-hop toward an egress RB identified in the fame (i.e., a known destination), and multi-destination frames (e.g., broadcast or multicast) are forwarded on a multicast distribution tree rooted at an RB selected by the ingress RB.
Assuming the network 100 is a TRILL network, to mirror packets for S1, a source mirroring group is created on RB 3 including the mirroring source port P1 connected with S1. A remote destination mirroring group is created on RB5 including the mirroring destination port P5 connected to the data monitoring device 110. Also, RB 3 and RB 5 are assigned to the same VLAN, which is referred to as the mirror VLAN.
As discussed above, remote port mirroring may be performed by unicasting or multicasting a mirroring message to a mirroring destination port based on a stored correspondence information describing a correspondence or relationship between the mirroring source port and the mirroring destination port. In one example, the stored correspondence information may be an entry in a table in RB 3.
RB 3 may generate a request to determine an identify of any RBs with a mirroring destination port. TRILL uses “nicknames” as identities, so the nicknames of the RBs with a mirroring destination port for the port P1 are determined.
RB 3 multicasts a request 150 in the network 100 to determine the identity of any RB with a corresponding mirroring destination port for P1. For example, RB 3 determines the mirror VLAN of the source mirroring group for P1. When the source mirroring group is created, the source mirroring group, including P1, may be assigned to the mirror VLAN and the mirror VLAN ID may be stored in RB3 for the source mirroring group.
RB 3 sends request 150 via a TRILL multicast distribution tree to request for the nickname of any RBs where a mirroring destination port is located. TRILL uses the distribution trees to deliver multi-destination frames. Multiple trees can be used by an ingress RB for different flows and/or multicast groups. An RB may choose different distribution trees for the same VLAN and/or multicast group traffic. An RB can compute a distribution tree based on the link state information through shortest path first calculations, so the distribution tree may include shortest paths to destinations.
RB 3 may select a distribution tree for sending the request 150. The request 150 includes the VLAN ID of the mirror VLAN. Any RB receiving the request 150 determines whether its own mirror VLAN is the same as the mirror VLAN of RB 3. If so, the RB responds with its nickname. In the example shown in
After the correspondence information between the mirroring source port and the one or more mirroring destination ports is determined, the source RB can send copies of incoming or outgoing packets for the mirroring source port to the one or more mirroring destination ports to perform remote port mirroring.
In
RB3 sends the TRILL mirroring message 302 to RB5 for example through a TRILL unicast distribution tree. For example, intermediate RB5 between RB 3 and RB 5 in the TRILL unicast distribution tree forward the TRILL mirroring message 302 hop-by-hop in accordance with the egress RB nickname in the TRILL mirroring message 302 until the TRILL mirroring message 302 is received at RB 5. For example, at RB 1, TRILL mirroring message 302 is modified to include the next hop in the outerlayer Ethernet header, such as RB 5 for the destination MAC which is shown as TRILL mirroring message 302′. RB 5 de-encapsulates the received TRILL message 302′ and restores it into the original message 301 in order to be sent to the data monitoring device 110 from the mirroring destination port P5.
In
Upon receiving the message 401 on the mirroring source port P1, RB 3 determines, from a table of stored correspondence information, that multiple mirroring destination ports are associated with the mirroring source group. For example, a lookup is performed with mirror VLAN ID which identifies the nicknames of RB 4 and RB 5 where the mirroring destination ports are located. From the lookup, the nickname of the root RB 1 is determined.
RB 3 copies the message 401 and encapsulates the message 401 into a TRILL mirroring message 402. The TRILL mirroring message 402 may include the mirror VLAN ID and a TRILL header. Examples of the fields are shown at 402. RB3 sends the TRILL mirroring message 402 to root RB 1.
Upon receiving the TRILL message 402, RB 1 performs a lookup in a table of correspondence information for example using the mirror VLAN ID and the ingress RB nickname which are in the TRILL mirroring message 402. From the lookup, RB 1 identifies the nicknames of RB 4 and RB 4 including mirroring destination ports. RB 1 de-encapsulates TRILL mirroring message 402 and re-encapsulates the message 401 into a TRILL mirroring message for each destination. TRILL mirroring message 403 is generated for RB 4 and TRILL mirroring message 404 is generated for RB 4. RB 1 sends the TRILL mirroring messages 403 and 404 to their destinations through a TRILL multicast distribution tree. RB4 and RB4 de-encapsulate the received TRILL messages and restore them it to the original message 401 in order to send to the data monitoring devices 110 and 111.
The network switch 500 includes ports 507a-n. The ports 507a-n are configured to receive and send packets in the network 100. The network switch 500 also includes a chassis 502. The chassis 502 includes switch fabric 503, a processor 504, data storage 505, and line cards 506a-f. The switch fabric 503 may include a high-speed transmission medium for routing packets between the ports 507a-n internally in the network switch 500. The line cards 506a-f may store routing and link state information and other information described herein. The line cards 506a-f may also control the internal routing and perform other functions described herein. The network switch 500 may be configured to maximize a portion of packet-processing performed on the line cards 506a-f. The packets then travel between line-cards via the switch fabric 503. The processor 504 and data storage 505 may be used in cases where the network switch 500 exceeds capacity for processing, or storing data, on the line cards 506a-f. The data storage 505 may store the tables for routing and link state information and tables of the correspondence information described above.
Each of the line cards 505a-f may include multiple ports and port capacities. Each of the line cards 506a-f is connected to the chassis 503. The line cards 506a-f may be pluggable line cards that can be plugged into the chassis 503. The chassis 503 may include a plurality of slots (not shown), wherein line-cards 506a-f may be inserted as required. For instance, the network switch 500 may have between 4 and 9 slots for inserting line cards as is known for switches deployed in data centers or as network edges. In other instances, the line cards 506a-f are non-pluggable and integrated in the network switch 500. In yet another example, the line cards are not used and the processor 504 handles the internal routing between ports. The processor 504 may include an integrated circuit that can perform the routing and other protocol functions described herein.
The processor 504 may execute machine readable instructions 511 which are stored in a non-transitory computer readable medium, which may be included in data storage 505. The machine readable instructions 511 may include a routing module 508, correspondence determination module 509, and a remote port mirroring module 510. The remote port mirroring module 510 may generate mirroring messages as described with respect to
At 602, correspondence information describing a correspondence between the mirroring source port and the at least one mirroring destination port is stored at the source network switch. Examples of the correspondence information stored in RB 3 are shown in
At 603, a message received on the mirroring source port is copied. The message may be from or to S1. At 604, a mirroring message is generated based on the stored correspondence information and includes the copied message and the mirror VLAN ID. At 605, the mirroring message is sent to the at least one remote network switch including the at least one mirroring destination port. The mirroring message may be unicasted if there is a single corresponding mirroring destination port or may be multicasted if there are multiple corresponding mirroring destination ports.
While the embodiments have been described with reference to examples, various modifications to the described embodiments may be made without departing from the scope of the claimed features.
Number | Date | Country | Kind |
---|---|---|---|
201210416102.2 | Oct 2012 | CN | national |