Go to file
Dan Prince b3e74611be Add nic1, nic2 naming abstraction
Implements a new active NIC abstraction and naming convention
that allows nic1, nic2, etc. to be translated to actual (active)
network device names like em1, em2 (or eth0, eth1).

This includes some logic to map ordered active nics to the
nic1, nic2 naming scheme. Embedded nics are always listed
first (in sort order) followed by any other active Nics
on the system.

With the new code:

 {"type": "interface", "name": "nic1" }

is automatically translated (internally) to:

 {"type": "interface", "name": "em1" }

This works for all top level "interface" devices, vlans, bonds, and
bridges alike. For vlans the 'device' name is translated instead
of the device name per vlan object conventions.
2014-08-20 13:10:40 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-06-06 12:27:50 -04:00
2014-07-09 16:05:56 -04:00
2014-07-01 16:54:25 -04:00
2014-07-01 16:54:25 -04:00
2014-06-06 12:27:50 -04:00

os-net-config

host network configuration tool

This is an initial implementation towards the 'network configuration' spec @ https://review.openstack.org/#/c/97859/ The intention is for this code to be moved under the tripleo project in due course.

Features

The core aim of this project is to allow fine grained (but extendable) configuration of the networking parameters for a network host. The project consists of:

  • A python library which provides configuration via an object model.
  • A CLI (os-net-config) which provides configuration via a JSON file format. By default os-net-config uses a JSON config file located at /etc/os-net-config/config.json. This can be customized via the --config-file CLI option.

JSON Config Examples

  • Configure an OVS bridge with a single attached interface (port)
{ "network_config": [
        {
            "type": "ovs_bridge",
            "name": "br-ctlplane",
            "use_dhcp": "true",
            "members": [
                {
                    "type": "interface",
                    "name": "em1"
                }
            ]
        }
    ]
}
  • Configure an OVS bridge on top of an OVS bond
{ "network_config": [
        {
            "type": "ovs_bridge",
            "name": "br-ctlplane",
            "use_dhcp": "true",
            "members": [
                {
                    "type": "ovs_bond",
                    "name": "bond1",
                    "use_dhcp": "true",
                    "members": [
                        { "type": "interface", "name": "em1" },
                        { "type": "interface", "name": "em2" }
                    ]
                }
            ]
        }
    ]
}
  • Configure a tagged VLAN interface on top of an OVS bridge
{ "network_config": [
        {
            "type": "ovs_bridge",
            "name": "br-ctlplane",
            "members": [
                {
                    "type": "vlan",
                    "device": "em1",
                    "vlan_id": "16",
                    "addresses": [{
                        "ip_netmask": "192.0.2.1/24"
                    }],
                    "routes": [{
                        "next_hop": "192.0.2.1",
                        "ip_netmask": "192.0.2.1/24"
                    }]
                }
            ]
        }
    ]
}

Provider Configuration

Providers are use to apply (implement) the desired configuration on the host system. By default 3 providers are implemented:

  • Ifcfg: persistent network config format stored in /etc/sysconfig/network-scripts
  • ENI: persistent network config format stored in /etc/network/interfaces
  • iproute2: non-persistent provider which implements the config using iproute2, vconfig, etc...

When using bin/os-net-config the provider is automatically selected based on the host systems perferred persistent network type (ifcfg or ENI). This can be customized via the --provider CLI option.

Description
RETIRED, Host network configuration tool
Readme 10 MiB