Home
Coping with Link Failures in Centralized Control Plane Architectures
Contents
1. flooding However in the most of the cases a network could be much more complex than a simple chain topology hence specifying an ingress port could lead to a huge advantage in the scenarios like link failure E Flow tables without ingress ports Sometimes in existing networks it may not be possible to specify ingress ports for the flow table entries in all the switches In such a case we may have to flood LFM to all the switches in the network However flooding a message could increase the risk of a message floating around in the network indefinitely In such a scenario it is advisable to include a Hop count or Time to live field in the LFM These value are included by the switch that initiates the LFM The value of Hop count could be an integer value that would decrease by one every hop as the message gets forwarded A switch could stop forwarding a message once Hop count indicates 0 The other option is to include a Time to live value which contains a time stamp A switch could stop forwarding a LFM once the Time to live expires Hop count and Time to live values have to be chosen carefully If these values are too small and the size of the network is too large a LFM may not reach all the switches that should receive this message If these values are too big and the size of the network is too small a LFM may have to travel a large portion of the network before a switch identifies the pre
2. is a function that sends out a message msg through port prt splitEntry flow creates a new flow table entry whose flow definition is flow and action is drop packet The original flow table entry remains intact 1 for each entry FlowTable do 2 if entry inPort brkPrt then 3 prt entry inPort 4 for each flow lfm flowList do 5 if flow D entry flowDef then 6 entry action drop 7 8 9 FlowDict prt append entry flowDef else if flow C entry flowDef then splitEntry flow 10 Flow Dict prt append flow ii end if 12 end for 13 end if 14 end for 15 for each key FlowDict keys do 16 msg srcAddr Self IP MAC Addr 17 msg id lfm id 18 msg flowDef Predefined flow definition 19 msg flowCount length FlowDict key 20 msg flowList FlowDict key 21 SendMsg key msg 22 end for go towards the failed link Therefore it is not necessary to send out LFMs on all these interfaces Controller Fig 7 Specifying ingress port will be the most helpful in the topology that is similar to a perfect graph In figure 7 switches A through F are connected to each other in a manner such that their topology will form a perfect graph Furthermore let s assume that flow tables of switches A through E are configured such that switch G is only two hops away from these switches In other words if switch A through E have a flow that goes to G this flow will directly go to F and
3. link a LFM will only reach the switches that could send a flow in the direction of the failed link Therefore only the relevant switches are informed about the link failure and the LFM does not go to the switches that have no use of 1t Algorithm 2 gives the pseudo code for a switch that receives a LFM and verifies that its message ID is not one of the stored message IDs Finally we should mention that although we utilize port numbers to receive and forward messages if a system is using DynaBind or ForCES 8 algorithms in a SoftRouter architecture switches may have the knowledge of their next hop neighbors If a system administrator prefers dealing with IP addresses instead of port numbers our algorithm is still applicable in those scenarios by replacing forwarding port numbers with next hop neighbor IP address D Importance of specifying ingress port in the flow definition While so far we have been emphasizing on specifying ingress port with every flow definition in this section we explain how much benefit we can achieve by doing so If a switch has a lot of interfaces attached to it it is not necessary that all these interfaces bring in the flows that could Algorithm 2 Algorithm for a downstream switch receiving lfm on brkPrt FlowDict is a dictionary hash table whose keys are the ingress ports that bring in the flows going towards brkPrt and the values are the lists containing the definition of these flows SendMsg prt msg
4. separating both of them Since the control functions run on every router maintaining a large network is extremely complex and expensive Authors of SoftRouters hope to gain some simplicity in a network by separating the control and packet forwarding functions of a router Elements of a SoftRouter network could be classified as follows e Forwarding Element FE FEs are basically switches that perform packet forwarding and switching functions They have minimum amount of control functions running on them Control Element CE CEs are general purpose servers they are connected to multiple FEs and run the control plane functions on behalf of them Network Element NE NE is a logical grouping of some CEs and a few FEs It is suggested that by separating control and packet for warding functions SoftRouter architecture could also increase reliability in a network An IP router could have hundreds of thousands of lines of code With such a high amount of software running on every router in the network probability of the control plane functions making a mistake is very high If control functions could be governed by a centralized authority CE and the packet forwarding functions could be given to the switches with little software on them FE probability of a control plane error could be greatly reduced Besides simplicity and increased reliability authors of Soft Router also make a case for scalability control plane security reduc
5. unnecessary traffic from floating around in a network during an event of a link failure it is important to test this solution too However most of the commercial switches are closed boxes and hence they fail to give a good insight into network management In recent years many academic researches have turn their attention to developing open platforms that could help researcher experiment with various networking protocols Geni 1 XORP 5 and OpenFlow 7 are some of such efforts To test our solution to overcome link failure problems we use a network formed by OpenFlow switches OpenFlow switches could be controlled by a remotely located controller hence it is suitable for creating networks with a centralized control plane OpenFlow switches allow maintaining multiple data paths in the same network such as production flows and research oriented flows Furthermore these switches easily allow network administrators to add remove and monitor flows in the network Each OpenFlow switch maintains a flow table A flow table entry has three main parts 2 e Header Fields Table I shows a sample flow table header In OpenFlow switches a flow could be defined according to the fields in this header For example a flow could be defined according to the ingress port or it could be defined according to the destination s IP address A flow could also be defined as the combination of multiple header fields The header fields that are defined as
6. 0 24 1 10 0 4 0 24 Forward to interface 1 Forward to interface 2 With such a configuration whenever the link between the switches A and B fails switch A could look up its flow table and identify that flows that are going towards the failed link come from interface 4 Now all switch A has to do is to prepare a LFM and send it out on interface 4 A switch located on the other end of that link will receive this LFM and stop sending messages that could go towards the failed link Therefore it is important to include ingress port in the definition of a flow Whenever a switch sends out a LFM it should include enough information in that message so that the switch re ceiving this message could understand which flows should be prevented from going out In the following section we specify the information that should be included in a LFM and how this information should be used to identify flows that could go towards the failed link To maintain the simplicity in ex plaining we split our scheme into two parts 1 Computations that would be performed at the switch that experiences a link failure 2 Computations that would be performed at the switch that receives a LFM B Computations for the switch experiencing link failure Algorithm for the switch experiencing the link failure is relatively simple Once a switch learns that one of its link is down it identifies the network interface associated with that link
7. 0 3 0 24 10 0 4 0 24 Forward to interface 1 Forward to interface 2 In such a configuration if the link between switches A and B breaks switch A could look up its flow table and identify that all the flows that go to interface 1 are coming from IP addresses 10 0 5 0 24 Unfortunately flow table of A does not specify which output port should be used to send link failure messages to the switches with IP addresses 10 0 5 0 24 Hence specifying the source s IP address is not necessarily useful Similar argument could be made to justify that specifying the source s MAC address may be helpful in identifying the origin of the flow but it may not be too useful to forward link failure messages If a flow definition includes ingress port of a flow as well it is possible to send link failure messages to the switches from where the flows are coming in An ingress port is the interface from where packets enter into a switch In fact once every switch in the network uses ingress port in the flow definition LFM could be delivered to the every switch that could send flows in the direction of the failed link Let us consider the same example shown in figure 4 however this time flows are defined according to the ingress port and the destination s IP address The new flow table of switch A is shown in table VII TABLE VII NEW FLOW TABLE OF SWITCH A FIGURE 4 Ingress Port Destination IP Address Action 4 10 0 3
8. ANY or left blank in the flow table are considered to be wild card entries Counters Counters maintain statistics for the switch They keep count on how many packets are received transmitted dropped etc Actions If the header of a received packet matches with the header fields specified in a flow table entry action defined in this field is applied to that packet An action could be transmit the packet to a certain interface drop or flood the packet etc Once an OpenFlow switch receives a packet this packet is matched against the flow table entries If the packet matches with a flow table entry action specified in that entry is applied to the packet However if a packet does not match any of the entries it is transmitted to the controller through a secure channel Secure channel is simply an interface that connects the OpenFlow switch to its controller TABLE I FLOW TABLE ENTRY HEADER Ingress VLAN Port ID Ethernet Type Ethernet Destination Ethernet Source IP Source TCP UDP Source Port TCP UDP Destination Port IP IP Destination Type Ease of use and open source nature of OpenFlow switches make them very useful tools for experimenting with newly developed networking schemes II LINK FAILURE Link failures are quite common in large networks Based on the topology and flow structure of a network a failed link could have different kind of implications on a net
9. Coping with Link Failures in Centralized Control Plane Architectures Maulik Desai maulik ee columbia edu Department of Electrical Engineering Columbia University New York NY 10027 Abstract Recently proposed SoftRouter and 4D network architectures recommend having the least amount of intelligence in the switches They advocate transferring control plane functionalities to general purpose servers that could govern these switches remotely A link failure in such architectures could result into switches losing contact with the controller or even generating routing loops These scenarios could generate a large amount of unnecessary traffic in the network We study the implications of a failed link in such architectures We develop an algorithm that would inform only the relevant switches to refrain from sending messages in the direction of the failed link and yet have the minimum amount of intelligence on the switches We implement our algorithm on a network formed by OpenFlow switches and evaluate its performance Our experiments verify that the performance of our algorithm is dependent on the total number of flow table entries in a switch We also verify that by implementing our algorithm all the necessary switches are informed of the failed link significantly sooner than the controller identifies the failed link and sends out an update Index Terms tLink failures Centralized control plane I INTRODUCTION Some of the recent rese
10. ace 2 TABLE III ORIGINAL FLOW TABLE FOR SWITCH B FIGURE 3 Destination s IP Address Action 10 0 4 0 24 Forward to interface 1 However the link between switches B and C fails and the controllers decide that the messages destined for C should go through switch A While Controller II successfully updates switch B s flow table switch A is not updated due to the delay in the network Therefore switch B s flow table gets updated while A s flow table remains unchanged as shown in IV and V TABLE IV UNMODIFIED FLOW TABLE OF SWITCH A FIGURE 3 Destination s IP Address Action 10 0 4 0 24 Forward to interface 2 TABLE V UPDATED FLOW TABLE OF SWITCH B FIGURE 3 Destination s IP Address Action 10 0 4 0 24 Forward to interface 2 In this case A will send all the messages going towards C to B and B will send them back to A and thus a routing loop is induced in the network This situation could be prevented if B could inform A that the link between B and C has failed and it will no longer be able to forward messages towards C This process can be completed a lot sooner than the controllers could identify a failed link and update their respective switches and hence the routing loops could be avoided Considering the scenarios presented in the this section it becomes necessary to come up with a scheme that would reduce the damag
11. arch efforts emphasize on main taining a centralized control plane in a network instead of having routers make their own control decisions In such architectures routers could be replaced with the switches that would have the least amount of intelligence and all the control plane functions of these switches could be handled by a centralized authority such as a general purpose server While a centralized control plane could help establish a firm grip over the network s behavior this new architecture also introduces a new set of problems One such problem is link failures SoftRouter 6 8 and 4D 4 are two of the proposed centralized control plane architectures in which a switch has to rely on a remotely connected controller to make all of its control decisions In traditional networks every time a link fails a router identifies the failure and establishes an alternate route However in SoftRouter 4D architectures even though a switch could identify the failed link it has neither the intelligence nor the global knowledge to establish a new route It must depend on the updates from the controller to establish an alternate route Until a controller identifies a failed link and updates flow table entries in all the relevant switches packets that are supposed to travel on the failed link will be dropped 978 1 4244 5489 1 10 26 00 2010 IEEE Thyagarajan Nandagopal thyaga alcatel lucent com Bell Laboratories Alcatel Lucent Murray Hil
12. arly larger the number of flow table entries longer it takes to search for the flows that go towards the failed link To understand how a flow table entry could affect the processing time we add multiple flow table entries to switch F and calculate the time it takes to send out a LFM to E Since total time taken to prepare and transmit a LFM could vary depending on the load on the processor the results shown in figure 9 are the averages of one hundred runs Processing time Vs Flow table entries 105 T T T y 0 11 x 75 Processing time milliseconds at i i 50 100 200 250 150 Flow table entries Fig 9 Processing time Vs Flow table entries From the algorithms presented in section IV it was clear that processing time may increase with the flow table entries However figure 9 shows that increment in processing time is rather too small Adding a flow table entry could only increase processing time by approximately 0 1 millisecond on the switches with scarcity of computational resources Total number of flow definitions included in a LFM may also affect the overall process time If a LFM contains a lot of flow definition naturally it will take longer to scan flow table and look for the entries that match with the definitions given in LFM Finally if a switch has a lot of ingress ports that bring in flows going towards the broken link this switch will have to send LFMs through all those ports Fortunately o
13. atches with the definition attached with the received LFM Therefore switch C will send out a new LFM to the ingress port of this entry which is interface 1 The flow definition attached to this new LFM would be the definition available in the flow table table entry 10 1 1 0 24 and not the definition attached with the received LFM Whenever switch E will receive this LFM from C it will learn that it should not send 10 1 1 0 24 traffic to switch C While the next step is to modified the Action field of the affected flow table entries this part is a bit tricky as well Many times a received LFM may contain flow definitions that represent only a subset of flows defined in a flow table entry In such cases it is important to split a flow table entry into two before modifying its Action field For the topology shown in figure 6 let us assume that flow table of switch E is as shown in table XII TABLE XII FLOW TABLE OF SWITCH E FIGURE 6 Ingress Port Destination IP Address Action 1 10 1 0 0 16 Forward to interface 2 When switch E receives a LFM from C this message will indicate to refrain from sending 10 1 1 0 24 traffic towards C However E does not have any flow table entry that exactly matches with 10 1 1 0 24 If it modifies the action field of 10 1 0 0 16 entry it will not be able to send any messages to C Therefore in this case switch E will split this flow table entry into two Whil
14. e caused by a failed link We outline basic requirements for such a scheme as follows e In case of a link failure all the switches that could send flows in the direction of the failed link should be informed of this event e Link failure messages should not propagate in the net work indefinitely and unless required these messages should not be flooded in the network e The scheme should provide enough information to the network switches regarding the flows that are affected by the failed link At the same time it should make sure that the flows that are not affected by this event do not get modified e The proposed scheme should not violate the basic premises of keeping the minimum amount of intelligence available at the switches IV SOLUTION TO LINK FAILURES In this section we develop a solution to minimize the problems created by a failed link In the solution we do not concern ourselves with how a controller learns about the broken link and how it updates the flow table of network switches in order to accommodate the link failure Our primary focus is to develop a solution that will inform the network switches to not send any flows that are supposed to go through the failed link yet this solution will have to impose the least amount of computational burden on the network A A proper way to define a flow A good solution that could minimize the problems created by a failed link begins with properly defining flows in a networ
15. e the original entry will remain intact the new entry s action field will be changed to Drop packet or Send packet to the Controller The new flow table for switch E will look like as shown in XIII TABLE XIII NEW FLOW TABLE FOR SWITCH E FIGURE 6 Ingress Port Destination IP Address Action 1 10 1 1 0 24 1 10 1 0 0 16 Drop Send to Controller Forward to interface 2 Now if switch E receives a packet going towards IP address 10 1 2 5 this packet will match with the second flow table entry and hence it will be sent out on interface 2 On the other hand if E receives a packet going towards 10 1 1 5 on interface 1 this packet will match with both the flow table entries however most of the switches are configured such that when a flow packet matches with multiple entries only the entry with the highest priority will be considered Therefore in this particular case the packets going towards 10 1 1 5 will be dropped While one could come up with cases where instead of splitting a flow table entry we have to merge or even delete some of the entries However we refrain from doing so since a switch does not possess the global knowledge of the topology This task is left for the controller to complete This LFM forwarding procedure could continue until the LFM reaches an end host Since LFM is forwarded only to the ingress ports which could potentially bring in packets going towards the failed
16. ed cost and ease of adding new functionality 4D architecture is another proposed scheme whose design and benefits are similar to SoftRouter Authors of 4D archi tecture suggest splitting a network into four logical planes e Decision Plane Decision plane makes all the decisions regarding network control It is made up of multiple servers called decision elements Dissemination Plane Dissemination plane is responsible for efficient communication between the decision ele ments and network switches Dissemination plane main tains separate paths for control information and regular data packets It is more of a logical entity and may not be comprised of any physical element Discovery Plane Discovery plane is responsible for identifying physical components of a network such as switches This plane is also a logical plane e Data Plane Data plane is controlled by decision plane and it is primarily responsible for handling individual packets Authors of 4D architecture indicate that this scheme could offer further robustness increased security more heterogeneity and a separate networking logic from distributed systems Both SoftRouter and 4D architecture share one thing in common that is they maintain a separate control plane from the data plane Moreover packet forwarding elements switches are controlled remotely by control elements that could be multiple hops away from the switches While we develop a solution that will prevent
17. ery well time synchronized 3 which makes it difficult to calculate total amount of time taken to reach all the switches We calculate the time difference between the event of receiving a LFM and sending out a newly prepared LFM to a downstream switch for the chain topology For switch F total processing time taken is the time between identifying a failed link and sending out LFM to a downstream switch TABLE XIV TIME DIFFERENCE BETWEEN THE EVENTS OF RECEIVING A LFM AND SENDING OUT A NEW LFM FIGURE 8 TIME SHOWN IN MILLISECONDS Switch A BI C D E Processing Time mSec 43 66 44 43 152 F 46 While we do not have the information of the time taken between transmitting and receiving LFMs this time is negli gible If we ignore it total time taken between F identifying a failed link and A sending out last LFM would be the sum off all the processing times which is 394 mSec Depending on implementation the time between controller s connectivity probe could vary between tens of seconds to a few hundred seconds Compared to that the total time taken to send LFM to every switch is quite negligible Total time taken to notify all the switches may depend on a few factors Naturally if a network has a lot of switches that send flows towards the failed link it will take longer to send LFM to all of them Another important factor is the total number of flow table entries in a switch Cle
18. from F it will be delivered to G Let us also assume that these switches do not have an ingress port specified with their flow table entries Therefore these switches will have to flood LFMs in the network in order to spread the news of a broken link If the link between the switches F and G breaks F will generate a LFM and send it out on rest of its five interfaces Switches A through E will receive these messages and forward them to rest of their four interfaces all interfaces except for the one connected to the switch F For example when switch A receives a LFM from F it will forward its own LFM to the switches B C D and E These switches will learn that the message coming from A has the same Message ID as the message that came from F Therefore these switches will disregard the LFM that came from A Thus if we do not specify an ingress port instead of sending 5 messages from F we end up sending 25 messages to spread the news of the failed link 5 from F and 4 from A through E Controller Fig 8 Specifying ingress port could be the least helpful in a chain topology On the other hand specifying the ingress port could be the least helpful in a chain topology as shown in figure 8 In such a case if switch A has a flow for the switch G it will go through switches B to F before it reaches G Therefore whenever the link connecting F and G break an LFM will have to go through all the switches to reach A which is similar to
19. he switch that initiates the LFM If a network supports MAC level routing instead of IP routing IP address could be replaced with the MAC address of the source Whichever switch receives LFM uses this field to identify where this LFM is coming from Message ID field helps make sure that the same LFM does not get forwarded multiple times by the same switch If routes in a network are not configured correctly the same LFM could come back at the same switch multiple times If a switch receives two LFMs with the same message ID in a short time period it disregards the second LFM The switch that initiate a LFM chooses a message ID randomly and this value does not change as the message gets forwarded to the downstream switches Once a switch receives a LFM it stores it in its memory The next time this switch receives a LFM it compares it with the stored value and takes an action only if the message differs from the stored values This way a switch does not propagate the same message multiple times A stored LFM could be discarded after receiving an update from the controller or after a predefined time interval expires Flow Definition field lists a subset of header fields shown in table I that make up the definition of a flow While it is possible to attach all the eight fields in the LFM to define a flow it could increase the length of the message Also since not always all the fields are used to define a flow it is unnecessary to add all eig
20. his example when the link connecting A and B fails switch A will look up its flow table and identify that it is receiving flows from interfaces 3 and 4 that will be sent out on interface 1 Therefore A will create two LFMs one for interface 3 and one for 4 Even though A is receiving a flow from interface 2 since this flow is not going out on interface 1 no LFM will be sent out through 2 Since there are two flows that come through interface 3 and go out from interface 1 LFM that goes out through 3 will have two flow definitions attached to it 10 0 4 0 24 and 10 0 5 0 24 There is just one flow that comes in from interface 4 and goes out from interface 1 hence LFM that goes out from 4 will have only one flow definition attached to it 10 0 4 0 24 It should be noted that even though we are using ingress port to define a flow we do not have to attach that information to LFM since ingress ports are switch specific Finally we modify the Action field of the flow table and new flow table of switch A would look like as shown in X TABLE X NEW FLOW TABLE FOR SWITCH A FIGURE 5 Ingress Port Destination IP Address Action 2 10 0 7 0 24 Forward to interface 4 3 10 0 4 0 24 Drop Send to controller 3 10 0 5 0 24 Drop Send to controller 4 10 0 6 0 24 Forward to interface 2 4 10 0 4 0 24 Drop Send to controller Various fields of LFM are described below Source Address is the IP address of t
21. ht header fields of a flow in LFM Therefore flow definition field indicates which information is attached with this message Each field in table I is given a numerical representation and this value is included in the Flow Definition field of a LFM For example for the scenario presented in figure 5 whenever switch A creates a LFM its Flow Definition field will have the numerical representation of Destination IP Address field This way the switch receiving the LFM will know that the information attached with this message represent IP addresses of the destination Flow Count indicates the total number of flow specifica tions that are attached with the LFM For figure 5 the LFM that goes out of interface 3 will have a flow count of 2 and the LFM that goes out of interface 4 will have a flow count of 1 The rest of the fields provide the actual definition of the flows Total number of such definitions attached to a LFM would be equal to the Flow Count value Therefore in figure 5 when switch C receives a LFM from A by looking at Flow Definition field it will know that the flow definitions are made up of Destination IP Address and from Flow Count field it will learn that there are two flow definitions attached with this message Since switch B also experiences a link failure the same algorithm will also be run at switch B Algorithm 1 gives the pseudo code for preparing and transmitting LFMs as well as updating flow table ent
22. ince a large amount of controller s resources are occupied in executing control plane functionality it is imprudent to impose additional computational burden on the controller by asking it to manage the undelivered packets The best option in this situation is to inform all the relevant switches in the network about the failed link and ask them to refrain from sending messages to B that travel towards A until the controller sends them an update B Island Controller B 10 0 1 1 Fig 2 Formation of an island due to a failed link It is important for a switch in the network to maintain its connection with the controller If a switch loses connection with the controller often times it is possible to establish an alternative route However there are times when part of a network could completely get segregated from the rest of the network and an island is formed The switches that are part of this island do not have a way to reach their controller Figure 2 depicts a scenario when a link failure could lead to the formation of an island Switches B C and D are connected to the controller through A When the link between A and B fails nodes B C D do not have a way to reach the controller These three segregated switches form an island As mentioned earlier switches in SoftRouter 4D architectures do not possess much control plane functionality hence losing contact with the controller could adversely affect the functionality of the
23. k Whenever a link fails in the network our goal is to inform this event to all the switches that could send flows in the direction of the failed link However we have to make sure that these Link Failure Messages LFM do not get flooded in the entire network Therefore it is necessary for a switch to have the knowledge of where a flow is coming from While switches in a centralized control plane architectures do not have the knowledge of the global topology origin of a flow could be identified from a flow table entry As mentioned earlier in OpenFlow switches a flow could be defined by choosing any combination of eight header fields shown in table I For example if a flow is defined according to source s and destination s IP addresses a switch could easily derive the origin of the flow and send a link failure message in that direction However in many cases this information may not be very useful Let us consider following example Controller B 10 0 1 1 Fig 4 An example of why source IP addresses do not necessarily indicate which direction a flow is coming from In figure 4 all the switches are connected to the same controller Let us assume that the flows in this network are specified according to the source and destination IP addresses and switch A s flow table is described in table VI TABLE VI FLOW TABLE OF SWITCH A FIGURE 4 Source IP Address 10 0 5 0 24 10 0 3 0 24 Destination IP Address Action 10
24. k whether all of its links are up and working If B could inform its neighbors of the failed link it is possible to avoid this unnecessary traffic On the other hand even though the controller could have the knowledge of the global topology it will keep trying to reach the switches that belong to the island It does not immediately know that the link between with A and B is broken If A could inform the controller of the broken link its attempt to reach the island could be prevented C Routing Loop In many cases link failure could lead to forming routing loops Routing loops also adversely affect a system s perfor mance by increasing network traffic significantly Controller 1 Controller II 10 0 5 1 Fig 3 An example of routing loop caused by a failed link Figure 3 demonstrates a scenario where a link failure could result into routing loops In this figure switch A is controlled by Cotroller I and switches B C are controlled by Controller II IP addresses of the switches and their interface names are labeled in the diagram Let us assume that the flows in this network are defined according to destination IP addresses Flow tables of switches A and B are shown in tables II and III According to these flow tables messages coming from A and going towards C have to go through switch B TABLE II ORIGINAL FLOW TABLE FOR SWITCH A FIGURE 3 Destination s IP Address Action 10 0 4 0 24 Forward to interf
25. l NJ 07974 Therefore until a controller sends an update it is important to prevent the traffic going towards the failed link to preserve the processing resources of the network In many cases a group of switches could completely get disconnected from their controller due to a failed link and start sending out messages to reach their controller In such cases it is important to instruct these switches to stop their attempts to find a controller since all their efforts are going in vain In large networks different sets of switches may be con trolled by different controllers If a link fails in such scenarios and the controllers make conflicting decisions in establishing new routes it could lead to forming routing loops in the network Routing loops induce a large amount of unnecessary traffic in the network hence it is important to take precautions to prevent any loops in the network that could be formed by a failed link To avoid the problems created by a failed link it is important to come up with a way to inform all the relevant switches of this event and ask them to refrain from sending messages in that direction While flooding the news of a failed link could easily accomplish this objective it disregards the idea of keeping the unnecessary network traffic to a minimum Therefore we devise a way such that only the necessary switches will be informed of the link failure Furthermore we accomplish this without violating the basic p
26. let us call this interface brokenInterface Now the switch will look up its flow table and create a LFM for every input interface which brings in a flow that could be sent to brokenInterface Structure of the LFM is show in table VIII If txInterface is one of the interfaces where a LMF is sent out this particular LFM will contain the definition of all the flows that come in from tx nterface and go out from brokenInterface Finally we modify the Action field of the flow table entries whose flow definitions are attached to LFMs The new action will indicate that packets from these flows should be dropped If the network is configured properly and the connection with the controller is not interrupted due to the failed link packets from these flows could be diverted to the controller also TABLE VIII LINK FAILURE MESSAGE STRUCTURE Source Message Flow Flow Flow Flow Address ID Definition Count Def 1 Def n Controller 10 0 1 1 Fig 5 A figure demonstrating how to generate LFM Consider a topology shown in 5 Switch A s flow table for this topology is shown in table IX TABLE Ix FLOW TABLE OF SWITCH A FIGURE 5 Ingress Port Destination IP Address Action 2 10 0 7 0 24 Forward to interface 4 3 10 0 4 0 24 Forward to interface 1 3 10 0 5 0 24 Forward to interface 1 4 10 0 6 0 24 Forward to interface 2 4 10 0 4 0 24 Forward to interface 1 In t
27. network Depending on the implementation of the network whenever a switch loses contact with its controller the switch or the controller or both of them may try to reach each other However whenever an island is formed there is no way for the switches and the controller to establish a contact Hence switch B will end up dropping all the packets from the messages that come from C and D and try to reach the controller Thus all the attempts by B C D to reach the controller result into unwanted and unnecessary traffic Similarly switch A will also drop all the packets that come from the controller and try to reach B C D For example OpenFlow implementation of a switch offers two kinds of functionalities e fail closed In fail closed mode whenever the con nection between the switch and the controller fails the switch does not take any actions it simply waits for the controller to establish a new connection e fail open In fail open mode the switch becomes proactive and tries to reach the controller periodically once it loses the connection with the switch By default the period between two such attempts increases exponen tially with the maximum wait period of 15 seconds Switches B C and D do not necessarily have the global knowledge of the network topology hence they may not have the intelligence to avoid sending message towards the con troller whenever an island is formed However it is possible for B to chec
28. on and Eddie Kohler Xorp An open platform for network research In ACM SIGCOMM Computer Communication Review pages 53 57 2002 T V Lakshman T Nandagopal R Ramjee K Sabnani and T Woo The softrouter architecture In In HotNets II 2004 Nick McKeown Tom Anderson Hari Balakrishnan Guru Parulkar Larry Peterson Jennifer Rexford Scott Shenker and Jonathan Turner Openflow enabling innovation in campus networks SIGCOMM Comput Commun Rev 38 2 69 74 2008 Ramachandran Ramjee Furquan Ansari Martin Havemann T V Laksh man Thyagarajan Nandagopal Krishan K Sabnani and Thomas Y C Woo Separating control software from routers In COMSWARE IEEE 2006
29. remises of maintaining the minimum amount of intelligence available on the switches We implement our scheme in a network formed by OpenFlow 7 switches and verify that the news of the failed link reaches network switches a lot sooner than the controller can identify the failure and send out an update OpenFlow switches are open source switches that could be controlled by a remote controller Therefore it is possible to create a SoftRouter 4D network architecture using these switches They provide a great deal of flexibility in defining network flows and it is quite easy to observe these flows Therefore they are very useful in observing the performance of our scheme The rest of the paper is organized as follows In section II we provide an overview of SoftRouter and 4D architectures We also give a small overview of OpenFlow switches in the same section Section III elaborates on the problems introduced by link failures In section IV we give a solution to overcome the problems introduced by link failures Section V analyzes our algorithm and presents the results of our experiments Finally section VI presents the conclusion II RELATED WORK SoftRouter and 4D architectures are two of the proposed centralized control plane architectures SoftRouter architecture was proposed by Bell Labs While in existing networks a router s control functions and packet forwarding functions are tightly interwined SoftRouter archi tecture advocates
30. ries To update the flow table entry in a switch line 3 the program may have to make system a call Executing shell commands from the program may take longer To inform all the switches about the link failure as soon as possible updating flow table entries might be put off until all the LFMs are sent out Algorithm 1 Algorithm for LFM initiator upon detecting a broken link on port brkPrt FlowDict is a dictionary hash table whose keys are the ingress ports that bring in the flows going towards brkPrt and the values are the lists containing the definition of these flows SendMsg prt msg is a function that sends out a message msg through port prt 1 for each entry FlowT able do 2 if entry inPort brkPrt then 3 entry action drop 4 Flow Dictlentry inPort append entry flowDef 5 end if 6 end for p 8 9 for each key FlowDict keys do msg srcAddr Self IP MAC Addr msg id RandomNumber 10 msg flowDef Predefined flow definition 11 msg flowCount length Flow Dict key 12 msg flowList FlowDict key 13 SendMsg key msg 14 end for C Computations for the switch receiving a LFM Once a switch receives a LFM it makes the note of the interface from where the message came in Let us call this interface rxInterface The switch will also detach the list of flow definitions attached with this LFM let us call it flowList Next it will look up its flow table and try to locate ingres
31. s ports that bring in flows that match with the flows in flowList and go out from rxinterface A new LFM will be generated and sent out from each of these ingress ports Whenever a switch generates a new LFM the Message ID field of this new message remains the same as the Message ID of the original LFM Naturally one could ask why do we have to create a new LFM every hop instead of forwarding the same LFM Following example helps answer this question 10 1 0 0 16 Controller 1 2 1 10 1 2 0 24 Fig 6 An example showing why a new LFM should be created every hop TABLE XI FLOW TABLE OF SWITCH C FIGURE 6 Ingress Port Destination IP Address Action 1 10 1 1 0 24 1 10 1 2 0 24 Forward to interface 2 Forward to interface 3 In figure 6 switch B sends all of its 10 1 0 0 16 traffic to switch A Whenever the link between the switches A and B breaks B will inform switch C to not send any 10 1 0 0 16 traffic in its direction If switch C forwards the same LFM to E switch E will simply stop sending all its 10 1 0 0 16 traffic to C even though C is completely capable of accepting and forwarding part of 10 1 0 0 16 traffic Therefore whenever switch C receives a LFM from switch B it will make a note that this LFM is received on interface 2 rxInterface It will notice that there is just one flow table entry that sends out flow on rxInterface Furthermore flow definition of this entry m
32. verhead of sending a message out through a port is very low Moreover if switches in a network have a lot of interfaces in a highly connected network we may not have to transmit LFMs for several hops to reach all the necessary switches VI CONCLUSION In centralized control plane architectures where a controller could be located multiple hops away from a switch an event like link failure could create many problems We studied these problems and proposed a solution that will keep unnecessary network traffic to a minimum in such an event Our solution informs all the relevant network switches to refrain from sending traffic towards the failed link without flooding The simplicity of algorithm helps maintain the basic premises of keeping the minimum intelligence available at the network switches Finally we also make sure that all the relevant switches are informed of the failed link significantly sooner than a controller learns about this event and sends out an update 1 2 3 4 5 6 7 8 REFERENCES Global environment for network innovations In http geni net Openflow switch specification In www openflowswitch org documents openflow spec v0 8 9 pdf Virtualbox end user manual In http Avww virtualbox org A Greenberg G Hjalmtysson D A Maltz A Myers J Rexford G Xie H Yan J Zhan and H Zhang A clean slate 4d approach to network control and management In In SIGCOMM CCR 2005 Mark Handley Orion Hods
33. viously recorded Message ID and stops forwarding this LFM V PERFORMANCE ANALYSIS While our algorithm is very simple it is necessary to check that it is able to send LFM to all the necessary switches in a very short time period To test the performance of our algorithm and give the proof of the concept that LFM will indeed be delivered to all the relevant switches in a small period of time we set up a small network of kernel based OpenFlow switches These switches run the solution we developed in section IV The switches are installed on virtual machines that run on Debian Lenny linux The virtual machines are connected to each other such that a controller six OpenFlow switches and an end host form a chain topology as shown in figure 8 These virtual machines are assigned relatively low system resources All eight virtual machines share a 2 6 GHz processor with only 64MB of RAM assigned to each of them Flows in this network are defined according to the destination s IP address and ingress port Each switch s flow table will have entries that specify how to send flows to every other switch as well as the end host We choose this topology to test the performance since once we break the link between the switch F and end host G every switch in the network will have to be informed of this event since all of them have a flow table entry that specifies a path to the end host G Unfortunately these virtual machines are not v
34. work In this section we study the effects of a failed link on various networking scenarios A A simple link failure scenario Fig 1 A simple link failure scenario All the switches shown in figure 1 are controlled by a single controller Furthermore flows in these switches are configured in a manner that all the messages going towards 10 1 0 0 16 go through switches A and B In regular network settings if the link between A and B fails node B will have enough intelligence to find another route for 10 1 0 0 16 traffic However in SoftRouter 4D architectures switches are not clever enough to divert the traffic and wait for some instructions from the controller Since the controller may have the knowledge of the global topology it could do one of two things The controller can recalculate an alternative path going towards 10 1 0 0 16 and it can either update the flow tables of all the switches in the network or it can simply instruct B to send these messages to A through C However until the controller sends an update all the switches in the network will keep sending their messages to B and B will have to drop these packets If the network is configured in a proper manner B can send these messages to the controller and have the controller figure out what should be done with these undelivered packets Naturally it is unwise to have packets floating around in the network that are eventually going to be dropped At the same time s
Download Pdf Manuals
Related Search
Related Contents
Trust Flexible Stand with Cleaning Wipes for tablets Philips Battery charger 15 minutes SCENIC 2 - Transmission - Frank Villaro Mellerware TWEETY WB201102000W User's Manual user manual for MM400A - Murray Tregonning & Associates User's Guide v2.0 Operating Instructions Model No. PT-CW331RU PT Etang - Vivez nature, vivez bien! M760 manuale - Aggiungi a preferiti Copyright © All rights reserved.
Failed to retrieve file