Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Dnsmasq not assigning an IP (juno ironic)

Hello!

I have a single node openstack box, on ubuntu server 14.04.2 with juno cloud repository. The box is successfully running keystone, glance, neutron and nova with qemu. I set up a flat network, bridged to a physical network over eth1 and could successfully ssh to VMs from another machine on the same network.

I wanted to test ironic. Because currently the ironic package in juno repository is broken (dependency issue), I cloned the stable/juno branch from github. I followed the Bare Metal Service Installation Guide for configuration settings.

When I try to provision my baremetal node (using fake_pxe), some things appear to start working: ironic node has an instance_id assigned to it; the tftpboot directory has the master_images subdirectory created and images are in there. But when I power up my baremetal node it doesn't get any IP from dnsmasq, although tcpdump shows DCHP requests coming in. After a while a timeout error occurrs because the node has not responded.

Dnsmasq is running:

nobody    4050  0.0  0.0  28208  2340 ?        S    22:33   0:00 dnsmasq --no-hosts --no-resolv --strict-order --bind-interfaces --interface=tap653e3f46-71 --except-interface=lo --pid-file=/var/lib/neutron/dhcp/e6f83703-8f56-40eb-9596-7520c4aa4875/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/e6f83703-8f56-40eb-9596-7520c4aa4875/host --addn-hosts=/var/lib/neutron/dhcp/e6f83703-8f56-40eb-9596-7520c4aa4875/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/e6f83703-8f56-40eb-9596-7520c4aa4875/opts --leasefile-ro --dhcp-range=set:tag0,10.0.14.0,static,86400s --dhcp-lease-max=256 --conf-file=/etc/neutron/dnsmasq-neutron.conf --domain=openstacklocal

ovs-vsctl show

31a7b038-205e-4a41-9217-a78d2be1aaba
    Bridge "br-eth1"
        Port "br-eth1"
            Interface "br-eth1"
                type: internal
        Port "eth1"
            Interface "eth1"
        Port "phy-br-eth1"
            Interface "phy-br-eth1"
                type: patch
                options: {peer="int-br-eth1"}
    Bridge br-int
        fail_mode: secure
        Port br-int
            Interface br-int
                type: internal
        Port "int-br-eth1"
            Interface "int-br-eth1"
                type: patch
                options: {peer="phy-br-eth1"}
        Port "tap653e3f46-71"
            tag: 1
            Interface "tap653e3f46-71"
                type: internal
    ovs_version: "2.0.2"

What is this "tap653e3f46-71" interface?

Below are the configuration files (with stripped comments); "mozaik" is the openstack box, it has two interfaces, eth0 (192.168.14.4) and eth1 (10.0.14.4), the flat network is 10.0.14.0/24:

ironic.conf

[DEFAULT]
debug = True
qpid_protocol=tcp
rabbit_host=mozaik
rabbit_use_ssl=false
rabbit_password=rabbit
my_ip=10.0.14.4
auth_strategy=keystone
enabled_drivers=pxe_ipmitool, fake, fake_pxe
host=mozaik
verbose=true
log_dir=/var/log/ironic/
[agent]
[api]
host_ip=mozaik
port=6385
[conductor]
api_url=http://mozaik:6385/
[console]
[database]
connection = mysql://ironic:ironic@mozaik/ironic?charset=utf8
[dhcp]
dhcp_provider=neutron
[disk_partitioner]
[glance]
glance_host=mozaik
glance_protocol=http
auth_strategy=keystone
[ilo]
[ipmi]
[keystone_authtoken]
auth_host=mozaik
auth_protocol=http
identity_uri=http://mozaik:35357/
admin_user=ironic
admin_password=ironic
admin_tenant_name=service
[matchmaker_redis]
[matchmaker_ring]
[neutron]
url=http://mozaik:9696
[pxe]
[seamicro]
[snmp]
[ssh]
[swift]

nova.conf

[DEFAULT]
verbose = True
debug = True
compute_driver=nova.virt.ironic.IronicDriver
firewall_driver=nova.virt.firewall.NoopFirewallDriver
ram_allocation_ratio=1.0
reserved_host_memory_mb=0
compute_manager=ironic.nova.compute.manager.ClusteredComputeManager
scheduler_use_baremetal_filters=True
rpc_backend = rabbit
rabbit_host = mozaik
rabbit_password = rabbit
auth_strategy = keystone
my_ip = 10.0.14.4
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
force_dhcp_release=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata
[ironic]
admin_username=ironic
admin_password=ironic
admin_url=http://mozaik:35357/v2.0
admin_tenant_name=service
api_endpoint=http://mozaik:6385/v1
[conductor]
clean_nodes=true
[database]
connection = mysql://nova:nova@mozaik/nova
[keystone_authtoken]
auth_uri = http://mozaik:5000/v2.0
identity_uri = http://mozaik:35357
admin_tenant_name = service
admin_user = nova
admin_password = nova
[glance]
host = mozaik
[neutron]
cleaning_network_uuid=e6f83703-8f56-40eb-9596-7520c4aa4875
url = http://mozaik:9696
auth_strategy = keystone
admin_auth_url = http://mozaik:35357/v2.0
admin_tenant_name = service
admin_username = neutron
admin_password = neutron

neutron.conf

[DEFAULT]
verbose = True
lock_path = $state_path/lock
core_plugin = ml2
service_plugins = router
auth_strategy = keystone
allow_overlapping_ips = True
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://mozaik:8774/v2
nova_region_name = regionOne
nova_admin_username = nova
nova_admin_tenant_id = 94cb5879be8749aa9283e04e879c8908
nova_admin_password = nova
nova_admin_auth_url = http://mozaik:35357/v2.0
rabbit_host=mozaik
rabbit_password=rabbit
rpc_backend=rabbit
[matchmaker_redis]
[matchmaker_ring]
[quotas]
[agent]
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
[keystone_authtoken]
auth_uri = http://mozaik:5000/v2.0
identity_uri = http://mozaik:35357
admin_tenant_name = service
admin_user = neutron
admin_password = neutron
[database]
connection = mysql://neutron:neutron@mozaik/neutron
[service_providers]
service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default

ml2_conf.ini

[ml2]
type_drivers = local,flat
tenant_network_types = flat
mechanism_drivers = openvswitch
[ml2_type_flat]
flat_networks = physnet1
[ml2_type_vlan]
[ml2_type_gre]
[ml2_type_vxlan]
[securitygroup]
enable_security_group = True
enable_ipset = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[ovs]
local_ip = 10.0.14.4
enable_tunneling = False
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-eth1