Control/Data Separation (English text)
  
  
  
    
      
      by
      Sasha Shkrebets
      
         —
    
  
  
  
  
  
    
      last modified
    
    Feb 21, 2023 12:53 PM
  
  
  
  
  
  
                   We're now starting the second module where we
will talk about the control and data plane separation.
By the end of the module you should be able
to explain the difference between the control and data planes as
well as the functions of each of them including the infrastructure
that's required to support each of the control and data plane. 
                
            
            
        
                             
                             Welcome back. 
We're now starting the second module where we 
will talk about the control and data plane separation. 
By the end of the module you should be able 
to explain the difference between the control and data planes as 
well as the functions of each of them including the infrastructure 
that's required to support each of the control and data plane. 
We'll also talk about the challenges of separating the control and data 
plane and various approaches that have been taken to tackling these challenges. 
The module comprises three lessons. 
The first lesson is the Overview, where we will 
discuss what control data plane separation is, why it's a 
good idea, and will provide a brief overview of the 
opportunities and challenges of separating the control and data plane. 
The second lesson we'll discuss opportunities in more detail, and the 
third we'll talk about challenges and approaches to tackling those challenges. 
So first, what are the control and data plans? 
The control plan is logic that controls the forwarding behavior in the network. 
Examples of the control plane are routing protocols, network box configuration 
such as firewall configuration or load balancer configuration, and so forth. 
One can think of it in some ways as the brain of the network. 
The Data Plane on the other hand 
forwards traffic according to the control plane logic. 
Examples of data planes are IP forwarding layered to switching and so forth. 
Data plane is sometimes implemented in hardware, but 
also is increasingly implemented in things like software routers. 
So why separate the data plane and the control plane? 
One reason is that by separating the data plane and the control plane. 
Each can evolve, and be developed independently. 
In particular the software control of the 
network can evolve independently of the hardware. 
That means one can buy a router, switches, 
middle boxes, and so forth deploy them in the 
network and not be bound by capabilities of software 
that ship with the hardware at that particular time. 
Second reason to separate the control and data planes is that it 
allows the network to be controlled from a single high level software program. 
So higher order programs could control the behavior of 
the entire network and in doing so not only is 
it easier to reason about the behavior of the network 
but it's also easier to debug and check this behavior. 
So there's various opportunities that we look at where separation actually helps. 
In this particular lecture I will provide a brief overview of where separating 
the data and control plane can help in data centers and in routing. 
And in a subsequent lecture we will talk about also where this control and 
data plane separation can help make certain 
applications in enterprise networks easier to manage. 
We'll also talk about how the separation of control and data plane can help in 
research networks by allowing research networks to coexist 
with production networks on the same physical infrastructure. 
One particular domain where operating the control and data 
planes has proved particularly useful is the data center. 
Where it's relatively common place to move a virtual machine from one 
physical location in the data center to another as traffic demands shift. 
As one example, Yahoo sites says it has about 20,000 servers. 
In a cluster in a data center resulting in about 400,000 virtual 
machines each of which might need 
to communicate with any other virtual machine. 
Thus resulting in about 1,024 distinct inter 
host links between any pair of virtual machines. 
For the topology that they've deployed. 
Now if on top of that, you 
want to guarantee sub-second virtual machine migration, 
and guaranteed consistency in the network as 
that migration occurs, this problem becomes particularly hairy. 
The solution to this problem. 
That Yahoo has taken is to program each 
of the network switches from a central database. 
So as virtual machines migrate, that central 
controller knows about the migration and can update 
the switch state accordingly so that network paths 
update in accordance with the virtual machine migration. 
As another example, suppose that an attacker is 
sending denial of service attack traffic to a victim. 
In this case it can sometimes be difficult to squelch that traffic near the source. 
One approach that AT&T has taken is to separate 
the data plane to the routers that forward that traffic. 
From the control plane that makes decisions 
about what to do with particular traffic flows. 
In particular they deployed something called a IRSCP. 
Which is a commercial version of the RCP, which we've talked about. 
Which will insert a null route into a router 
for particular flows or destinations that are receiving attack traffic. 
So those are just two examples of how the 
control and data plane separation have helped in specific cases. 
But there are also challenges to making 
the control and data plane separation a reality. 
The first is scalability, once you separate 
the control elements from the forwarding elements. 
Its likely that a control element maybe responsible for 
many many forwarding elements and 
sometimes thousands of forwarding elements. 
The other challenge is reliability or security what 
happens if a controller fails or is compromised? 
Well we should hope that the forwarding 
elements continue forwarding traffic, business as usual. 
But once we've separated the brains of the network 
from the devices that are actually forwarding the traffic. 
Correct behavior is no longer guaranteed if 
a controller should be failed or compromised. 
So in the coming two lessons, we'll talk about both the 
opportunities and challenges associated with 
separating the data and control planes. 
