The CNI (Container Network Interface), a Cloud Native Computing Foundation project, consists of a specification and libraries for writing plugins to configure network interfaces in Linux/Windows containers, along with a number of supported plugins.
cni.dev/docs/spec/
cnitool
A simple program that executes a CNI configuration. It will add or remove an interface in an already-created network namespace.
cni.dev/docs/cnitool/
There are three ways of passing information to plugins using the Container Network Interface (CNI):
1) plugin specific fields in the JSON config
2) args field in the JSON config
3) CNI_ARGS environment variable
cni.dev/docs/conventions/#pl…
Who is using CNI?
Container runtimes
🔸rkt - container engine
coreos.com/blog/rkt-cni-netw…
🔸Kubernetes - a system to simplify container operations
kubernetes.io/docs/concepts/…
🔸OpenShift - Kubernetes with additional enterprise features
github.com/openshift/origin/…
🔸Cloud Foundry - a platform for cloud applications
bosh.io/docs/runtime-config/
🔸Apache Mesos - a distributed systems kernel
github.com/apache/mesos/blob…
🔸Amazon ECS - a highly scalable, high performance container management service
aws.amazon.com/ecs/
🔸Singularity - container platform optimized for HPC, EPC, and AI
github.com/sylabs/singularit…
🔸OpenSVC - orchestrator for legacy and containerized application stacks
docs.opensvc.com/latest/fr/a…
3rd party plugins
🔸Project Calico - a layer 3 virtual network
docs.tigera.io/calico/latest…
🔸Weave - a multi-host Docker network
github.com/weaveworks/weave
🔸Contiv Networking - policy networking for various use cases
github.com/contiv/netplugin
🔸SR-IOV
github.com/hustcat/sriov-cni
🔸Cilium - BPF & XDP for containers
github.com/cilium/cilium
🔸Infoblox - enterprise IP address management for containers
blogs.infoblox.com/community…
🔸Multus - a Multi plugin
github.com/k8snetworkplumbin…
🔸Romana - Layer 3 CNI plugin supporting network policy for Kubernetes
github.com/romana/kube
🔸CNI-Genie - generic CNI network plugin
cnigenie.netlify.app/en/
🔸Nuage CNI - Nuage Networks SDN plugin for network policy kubernetes support
nuagenetworks.net/
🔸Silk - a CNI plugin designed for Cloud Foundry
github.com/cloudfoundry-incu…
🔸Linen - a CNI plugin designed for overlay networks with Open vSwitch and fit in SDN/OpenFlow network environment
github.com/John-Lin/linen-cn…
🔸Vhostuser - a Dataplane network plugin - Supports OVS-DPDK & VPP
github.com/intel/userspace-c…
🔸Amazon ECS CNI Plugins - a collection of CNI Plugins to configure containers with Amazon EC2 elastic network interfaces (ENIs)
github.com/aws/amazon-ecs-cn…
🔸Bonding CNI - a Link aggregating plugin to address failover and high availability network
builders.intel.com/
🔸ovn-kubernetes - an container network plugin built on Open vSwitch (OVS) and Open Virtual Networking (OVN) with support for both Linux and Windows
ovn.org/ovn-kubernetes/
🔸Juniper Contrail / TungstenFabric - Provides overlay SDN solution, delivering multicloud networking, hybrid cloud networking, simultaneous overlay-underlay support, network policy enforcement, network isolation, service chaining and flexible load balancing
juniper.net/us/en/it-network…
🔸Knitter - a CNI plugin supporting multiple networking for Kubernetes
github.com/ZTE/Knitter
🔸DANM - a CNI-compliant networking solution for TelCo workloads running on Kubernetes
github.com/nokia/danm
🔸VMware NSX – a CNI plugin that enables automated NSX L2/L3 networking and L4/L7 Load Balancing; network isolation at the pod, node, and cluster level; and zero-trust security policy for your Kubernetes cluster.
techdocs.broadcom.com/
🔸cni-route-override - a meta CNI plugin that override route information
github.com/redhat-nfvpe/cni-…
🔸Terway - a collection of CNI Plugins based on alibaba cloud VPC/ECS network product
aliyun.com/product/kubernete…
🔸Cisco ACI CNI - for on-prem and cloud container networking with consistent policy and security model.
github.com/noironetworks/aci…
OpFlex is a App Centric Infrastructure
blogs.cisco.com/datacenter/i…