
Controlling the mac address of the interface (veth peer) in the container is useful for functionalities that depend on the mac address. Examples range from dynamic IP allocations based on an identifier (the mac) and up to firewall rules (e.g. no-mac-spoofing). Enforcing a mac address at an early stage and not through a chained plugin assures the configuration does not have wrong intermediate configuration. This is especially critical when a dynamic IP may be provided already in this period. But it also has implications for future abilities that may land on the bridge plugin, e.g. supporting no-mac-spoofing. The field name used (`mac`) fits with other plugins which control the mac address of the container interface. The mac address may be specified through the following methods: - CNI_ARGS - Args - RuntimeConfig [1] The list is ordered by priority, from lowest to higher. The higher priority method overrides any previous settings. (e.g. if the mac is specified in RuntimeConfig, it will override any specifications of the mac mentioned in CNI_ARGS or Args) [1] To use RuntimeConfig, the network configuration should include the `capabilities` field with `mac` specified (`"capabilities": {"mac": true}`). Signed-off-by: Edward Haas <edwardh@redhat.com>
plugins
Some CNI network plugins, maintained by the containernetworking team. For more information, see the CNI website.
Read CONTRIBUTING for build and test instructions.
Plugins supplied:
Main: interface-creating
bridge
: Creates a bridge, adds the host and the container to it.ipvlan
: Adds an ipvlan interface in the container.loopback
: Set the state of loopback interface to up.macvlan
: Creates a new MAC address, forwards all traffic to that to the container.ptp
: Creates a veth pair.vlan
: Allocates a vlan device.host-device
: Move an already-existing device into a container.
Windows: windows specific
win-bridge
: Creates a bridge, adds the host and the container to it.win-overlay
: Creates an overlay interface to the container.
IPAM: IP address allocation
dhcp
: Runs a daemon on the host to make DHCP requests on behalf of the containerhost-local
: Maintains a local database of allocated IPsstatic
: Allocate a static IPv4/IPv6 addresses to container and it's useful in debugging purpose.
Meta: other plugins
flannel
: Generates an interface corresponding to a flannel config filetuning
: Tweaks sysctl parameters of an existing interfaceportmap
: An iptables-based portmapping plugin. Maps ports from the host's address space to the container.bandwidth
: Allows bandwidth-limiting through use of traffic control tbf (ingress/egress).sbr
: A plugin that configures source based routing for an interface (from which it is chained).firewall
: A firewall plugin which uses iptables or firewalld to add rules to allow traffic to/from the container.
Sample
The sample plugin provides an example for building your own plugin.
Contact
For any questions about CNI, please reach out via:
- Email: cni-dev
- Slack: #cni on the CNCF slack.
If you have a security issue to report, please do so privately to the email addresses listed in the OWNERS file.
Description
Languages
Go
99.7%
Shell
0.3%