Network Control Plane

Network Control Plane is a subsystem of Libnetwork to manage routing information and we need a protocol that converge quickly to do that job. For example, Libnetwork does not use BGP as the protocol (despite that BGP is great at scalability to support very large number of endpoints), because point BGP won't converge quick enough to use in the highly dynamic environment such as the software container environment.

In a container-centric world, the networking system is expected to change very quickly, especially for the new Docker service model, which requires a massive and fast IP assignation. We want the routing information to converge very rapidly as well, especially at a big scale, for example, for more than 10,000 containers. In Swarm2k and Swarm3k experiments, we really did start 10,000 containers at a time. Especially, in Swarm3k, we started 4,000 NGINX containers on the Ingress load-balancing network. Without a fine implementation, this number of scale won't work correctly.

To solve this problem, the Libnetwork team chose to include the gossip protocol in the Network Control Plane. The internal algorithm of the protocol works like this: It choses 3 neighbors and then propagates the same information; in the case of Libnetwork, the routing and other network related information. The Gossip protocol will do this process repeatedly, until every node shares the same information. With this technique, the whole cluster will receive the information very quickly, in a matter of seconds.

Network Control Plane

Anyway, the whole cluster does not need the same information all the time. Every node on the cluster does not need to know information of all the networks. Only nodes in a particular network need to know its own networking information. To optimize this for Libnetwork, the team implemented two scopes, Cluster Scoped Gossip Communication and Network Scoped Gossip Communication. What we have explained so far is the Cluster Scope Gossip Communication, while Network Scoped Gossip Communication limits the network information within a particular network. When a network expands to cover addition nodes, its gossip scoped broadcast will also cover them.

This activity is built on top Docker's CNM and therefore relieson the network abstraction. From the Figure, we have node w1, w2, and w3 in the Left network and also w3, w4, w5 in the right network. The left network performs gossip and only w1, w2, w3 would know its routing information. You may observe that w3 is in both the networks. Therefore, it will receive routing information of all left and right networks.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset