OpenStack allows virtual instances to access metadata by sending an HTTP request to the link-local address 169.254.169.254.
The metadata request from the instance is proxied to Nova, with additional HTTP header fields added, which Nova uses to identify the source instance. Then Nova responds with appropriate metadata.
The Contrail vrouter acts as the proxy, trapping the metadata requests, adding the necessary header fields, and sending the requests to the Nova API server.
Troubleshooting Procedure for Link-Local Metadata Services
Metadata service is also a link-local service, with a fixed service name (metadata), a fixed service address (169.254.169.254:80), and a fabric address pointing to the server where the OpenStack Nova API server is running. All of the configuration and troubleshooting procedures for Contrail link-local services also apply to the metadata service.
However, for metadata service, the flow is always set up to the compute node, so the vrouter agent will update and proxy the HTTP request. The vrouter agent listens on a local port to receive the metadata requests. Consequently, the reverse flow has the compute node as the source IP, the local port on which the agent is listening is the source port, and the instance’s metadata IP is the destination IP address.
After performing all of the troubleshooting procedures for link-local services, the following additional steps can be used to further troubleshoot metadata service.
- Check the metadata statistics for: the number of metadata requests received by the vrouter agent, the number of proxy sessions set up with the Nova API server, and number of internal errors encountered.
http://<compute-node-ip>:8085/Snh_MetadataInfo?
The port on which the vrouter agent listens for metadata requests is also displayed.

2. Check the metadata trace messages, which show the trail of metadata requests and responses.
http://<compute-node-ip>:8085/Snh_SandeshTraceRequest?x=Metadata
3. Check the Nova configuration. On the server running the OpenStack service, inspect the nova.conf
file.
- Ensure that the metadata proxy is enabled, as follows:
service_neutron_metadata_proxy = True
service_quantum_metadata_proxy = True
(on older installations)
- Check to see if the metadata proxy shared secret is set:
neutron_metadata_proxy_shared_secret
quantum_metadata_proxy_shared_secret
(on older installations)
If the shared secret is set in nova.conf
, the same secret must be configured on each compute node in the file /etc/contrail/contrail-vrouter-agent.conf
, and the same shared secret must be updated in the METADATA
section as metadata_proxy_secret=<secret>.
- Restart the vrouter agent after modifying the shared secret:
service contrail-vrouter restart