← Back to team overview

openstack team mailing list archive

Grizly - Quantum - Openvswitch : routeur and L3-agent

 

Hello,

I'm installing grizzly on a four node configuration : one controller, one
network node  and three hypervisor. I have already, by the past, installed
folsom in this setup with sucess.

I'm actually using centos 6.4 with openstack rdo repo.I'd like to use
quantum with openvswitch  in a GRE tunnel setup.

Any help will be greatly appreciate ;) Thank you in advance !

Well, my problem is when I try to add a router on the quantum l3 agent :
===============================================
# quantum l3-agent-router-add 1e4208c5-3615-488b-bfa9-56fbb512d2f9
9fbb0569-7e7b-4b47-8096-4f5e2f981c3b

return : Agent 1e4208c5-3615-488b-bfa9-56fbb512d2f9 is not a L3 Agent or
has been disabled
================================================

Well and i don't know where to search/fin the problem ... Some detail :
================================================
On the network node i have created the differnt bridge :

ovs-vsctl add-br br-int
ovs-vsctl add-br br-ex
ovs-vsctl br-set-external-id br-ex bridge-id br-ex

ovs-vsctl add-port br-ex eth3

================================================

quantum agent-list

+--------------------------------------+--------------------+------------+-------+----------------+
| id                                   | agent_type         | host       |
alive | admin_state_up |
+--------------------------------------+--------------------+------------+-------+----------------+
| 1e4208c5-3615-488b-bfa9-56fbb512d2f9 | L3 agent           | pvidgsi001 |
:-)   | True           |
| 2302bc0a-a242-4d9e-9826-b55ab9003338 | Open vSwitch agent | pvidgsh002 |
:-)   | True           |
| 23de5207-1fd6-4d07-b9f9-1adbaa000cdf | Open vSwitch agent | pvidgsi001 |
:-)   | True           |
| 519c56d6-1715-45af-b263-2fa03e7a74a9 | Open vSwitch agent | pvidgsh003 |
:-)   | True           |
| 98e4477a-2cae-4cf8-88b3-1bc46c150072 | Open vSwitch agent | pvidgsh004 |
:-)   | True           |
+--------------------------------------+--------------------+------------+-------+----------------+

================================================
quantum agent-show 1e4208c5-3615-488b-bfa9-56fbb512d2f9

+---------------------+-------------------------------------------------------------------------------+
| Field               |
Value
|
+---------------------+-------------------------------------------------------------------------------+
| admin_state_up      |
True
|
| agent_type          | L3
agent                                                                      |
| alive               |
True
|
| binary              |
quantum-l3-agent
|
| configurations      |
{
|
|                     |      "router_id":
"",                                                         |
|                     |      "gateway_external_network_id":
"",                                       |
|                     |      "handle_internal_only_routers":
true,                                    |
|                     |      "use_namespaces":
false,                                                 |
|                     |      "routers":
0,                                                            |
|                     |      "interfaces":
0,                                                         |
|                     |      "floating_ips":
0,                                                       |
|                     |      "interface_driver":
"quantum.agent.linux.interface.OVSInterfaceDriver",  |
|                     |      "ex_gw_ports":
0                                                         |
|                     |
}
|
| created_at          | 2013-05-15
13:30:30                                                           |
| description
|
|
| heartbeat_timestamp | 2013-05-15
13:31:42                                                           |
| host                |
pvidgsi001
|
| id                  |
1e4208c5-3615-488b-bfa9-56fbb512d2f9
|
| started_at          | 2013-05-15
13:30:30                                                           |
| topic               | l3_agent
================================================

Only one suspect thing in the l3-agent log :
================================================
Command: ['ip', '-o', 'link', 'show', 'br-ex']
Exit code: 0
Stdout: '30: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UNKNOWN \\    link/ether 00:00:c9:e4:0c:b2 brd ff:ff:ff:ff:ff:ff\n'
Stderr: ''
================================================
But well I ve tested vswitch connectivity with internal iface ...

================================================
cat /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini

[DATABASE]
sql_connection = mysql://quantum:quantum@192.168.11.101/ovs_quantum
# sql_max_retries = 10
reconnect_interval = 2
# sql_dbpool_enable = False
# sql_min_pool_size = 1
# sql_max_pool_size = 5
# sql_idle_timeout = 3600

[OVS]
tenant_network_type = gre
enable_tunneling = True
tunnel_id_ranges = 11:55
integration_bridge = br-int
tunnel_bridge = br-tun
int_peer_patch_port = patch-tun
tun_peer_patch_port = patch-int
local_ip = 192.168.40.2
root_helper = sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf


[AGENT]
polling_interval = 2

[SECURITYGROUP]
firewall_driver =
quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
================================================
cat /etc/quantum/quantum.conf

[DEFAULT]
# Default log level is INFO
# verbose and debug has the same result.
# One of them will set DEBUG log level output
#debug = True
debug = True
#verbose = True
verbose = True

# Where to store Quantum state files.  This directory must be writable by
the
# user executing the agent.
state_path = /var/lib/quantum

# Where to store lock files
lock_path = $state_path/lock

# log_format = %(asctime)s %(levelname)8s [%(name)s] %(message)s
# log_date_format = %Y-%m-%d %H:%M:%S

# use_syslog                           -> syslog
# log_file and log_dir                 -> log_dir/log_file
# (not log_file) and log_dir           -> log_dir/{binary_name}.log
# use_stderr                           -> stderr
# (not user_stderr) and (not log_file) -> stdout
# publish_errors                       -> notification system

# use_syslog = False
# syslog_log_facility = LOG_USER

#use_stderr = True
use_stderr = False
#use_syslog = False
#log_file = /var/log/quantum/quantum.log
#log_dir = /var/log/quantum

# publish_errors = False

# Address to bind the API server
bind_host = 0.0.0.0

# Port the bind the API server to
bind_port = 9696

# Path to the extensions.  Note that this can be a colon-separated list of
# paths.  For example:
# api_extensions_path =
extensions:/path/to/more/extensions:/even/more/extensions
# The __path__ of quantum.extensions is appended to this, so if your
# extensions are in there you don't need to specify them here
# api_extensions_path =

# Quantum plugin provider module
core_plugin =
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2

# Advanced service modules
# service_plugins =
service_plugins =
quantum.plugins.services.agent_loadbalancer.plugin.LoadBalancerPlugin


# Paste configuration file
api_paste_config = api-paste.ini

# The strategy to be used for auth.
# Supported values are 'keystone'(default), 'noauth'.
#auth_strategy = noauth
#auth_strategy = keystone

# Base MAC address. The first 3 octets will remain unchanged. If the
# 4h octet is not 00, it will also used. The others will be
# randomly generated.
# 3 octet
# base_mac = fa:16:3e:00:00:00
# 4 octet
# base_mac = fa:16:3e:4f:00:00

# Maximum amount of retries to generate a unique MAC address
# mac_generation_retries = 16

# DHCP Lease duration (in seconds)
# dhcp_lease_duration = 120

# Allow sending resource operation notification to DHCP agent
# dhcp_agent_notification = True

# Enable or disable bulk create/update/delete operations
# allow_bulk = True
# Enable or disable pagination
# allow_pagination = False
# Enable or disable sorting
# allow_sorting = False
# Enable or disable overlapping IPs for subnets
# Attention: the following parameter MUST be set to False if Quantum is
# being used in conjunction with nova security groups and/or metadata
service.
# allow_overlapping_ips = False
# Ensure that configured gateway is on subnet
# force_gateway_on_subnet = False


# RPC configuration options. Defined in rpc __init__
# The messaging module to use, defaults to kombu.
rpc_backend = quantum.openstack.common.rpc.impl_kombu
# Size of RPC thread pool
# rpc_thread_pool_size = 64,
# Size of RPC connection pool
# rpc_conn_pool_size = 30
# Seconds to wait for a response from call or multicall
# rpc_response_timeout = 60
# Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
# rpc_cast_timeout = 30
# Modules of exceptions that are permitted to be recreated
# upon receiving exception data from an rpc call.
# allowed_rpc_exception_modules = quantum.openstack.common.exception,
nova.exception
# AMQP exchange to connect to if using RabbitMQ or QPID
control_exchange = quantum

# If passed, use a fake RabbitMQ provider
# fake_rabbit = False

# Configuration options if sending notifications via kombu rpc (these are
# the defaults)
# SSL version to use (valid only if SSL enabled)
# kombu_ssl_version =
# SSL key file (valid only if SSL enabled)
# kombu_ssl_keyfile =
# SSL cert file (valid only if SSL enabled)
# kombu_ssl_certfile =
# SSL certification authority file (valid only if SSL enabled)'
# kombu_ssl_ca_certs =
# IP address of the RabbitMQ installation
rabbit_host = 192.168.11.101
# Password of the RabbitMQ server
# rabbit_password = guest
# Port where RabbitMQ server is running/listening
# rabbit_port = 5672
# User ID used for RabbitMQ connections
# rabbit_userid = guest
# Location of a virtual RabbitMQ installation.
# rabbit_virtual_host = /
# Maximum retries with trying to connect to RabbitMQ
# (the default of 0 implies an infinite retry count)
# rabbit_max_retries = 0
# RabbitMQ connection retry interval
# rabbit_retry_interval = 1

# QPID
# rpc_backend=quantum.openstack.common.rpc.impl_qpid
# Qpid broker hostname
# qpid_hostname = localhost
# Qpid broker port
# qpid_port = 5672
# Username for qpid connection
# qpid_username = ''
# Password for qpid connection
# qpid_password = ''
# Space separated list of SASL mechanisms to use for auth
# qpid_sasl_mechanisms = ''
# Seconds between connection keepalive heartbeats
# qpid_heartbeat = 60
# Transport to use, either 'tcp' or 'ssl'
# qpid_protocol = tcp
# Disable Nagle algorithm
# qpid_tcp_nodelay = True

# ZMQ
# rpc_backend=quantum.openstack.common.rpc.impl_zmq
# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or
IP.
# The "host" option should point or resolve to this address.
# rpc_zmq_bind_address = *

# ============ Notification System Options =====================

# Notifications can be sent when network/subnet/port are create, updated or
deleted.
# There are three methods of sending notifications: logging (via the
# log_file directive), rpc (via a message queue) and
# noop (no notifications sent, the default)

# Notification_driver can be defined multiple times
# Do nothing driver
# notification_driver = quantum.openstack.common.notifier.no_op_notifier
# Logging driver
# notification_driver = quantum.openstack.common.notifier.log_notifier
# RPC driver. DHCP agents needs it.
notification_driver = quantum.openstack.common.notifier.rpc_notifier

# default_notification_level is used to form actual topic name(s) or to set
logging level
default_notification_level = INFO

# default_publisher_id is a part of the notification payload
# host = myhost.com
# default_publisher_id = $host

# Defined in rpc_notifier, can be comma separated values.
# The actual topic names will be %s.%(default_notification_level)s
notification_topics = notifications

# Default maximum number of items returned in a single response,
# value == infinite and value < 0 means no max limit, and value must
# greater than 0. If the number of items requested is greater than
# pagination_max_limit, server will just return pagination_max_limit
# of number of items.
# pagination_max_limit = -1

# Maximum number of DNS nameservers per subnet
# max_dns_nameservers = 5

# Maximum number of host routes per subnet
# max_subnet_host_routes = 20

# Maximum number of fixed ips per port
# max_fixed_ips_per_port = 5

# =========== items for agent management extension =============
# Seconds to regard the agent as down.
# agent_down_time = 5
# ===========  end of items for agent management extension =====

# =========== items for agent scheduler extension =============
# Driver to use for scheduling network to DHCP agent
# network_scheduler_driver =
quantum.scheduler.dhcp_agent_scheduler.ChanceScheduler
# Driver to use for scheduling router to a default L3 agent
# router_scheduler_driver =
quantum.scheduler.l3_agent_scheduler.ChanceScheduler

# Allow auto scheduling networks to DHCP agent. It will schedule non-hosted
# networks to first DHCP agent which sends get_active_networks message to
# quantum server
# network_auto_schedule = True

# Allow auto scheduling routers to L3 agent. It will schedule non-hosted
# routers to first L3 agent which sends sync_routers message to quantum
server
# router_auto_schedule = True
# ===========  end of items for agent scheduler extension =====

[QUOTAS]
# resource name(s) that are supported in quota features
quota_items = network,subnet,port

# default number of resource allowed per tenant, minus for unlimited
default_quota = -1

# number of networks allowed per tenant, and minus means unlimited
quota_network = 20

# number of subnets allowed per tenant, and minus means unlimited
quota_subnet = 20

# number of ports allowed per tenant, and minus means unlimited
quota_port = 500

# default driver to use for quota checks
# quota_driver = quantum.quota.ConfDriver

[DEFAULT_SERVICETYPE]
# Description of the default service type (optional)
# description = "default service type"
# Enter a service definition line for each advanced service provided
# by the default service type.
# Each service definition should be in the following format:
# <service>:<plugin>[:driver]

[AGENT]
# Use "sudo quantum-rootwrap /etc/quantum/rootwrap.conf" to use the real
# root filter facility.
# Change to "sudo" to skip the filtering and just run the comand directly
# root_helper = sudo
root_helper = sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf

# =========== items for agent management extension =============
# seconds between nodes reporting state to server, should be less than
# agent_down_time
# report_interval = 4

# ===========  end of items for agent management extension =====

[keystone_authtoken]
auth_host = 192.168.11.101
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = servicepass
#signing_dir = /var/lib/quantum/keystone-signing
signing_dir = /tmp/quantum/keystone-signing

Thank you in advance !
-- 
--
Benoit

Follow ups