Da rivedere a più passate
La chiave del DVR è che il traffico Nord/Sud con floating IP viene gestito direttamente dai compute nodes, mentre il traffico SNAT (senza floating IP) passa ancora attraverso il network node centralizzato.
Questa è una lista di servizi da configurare
Abbiamo optato per una configurazione DVR ibrida (DVR Hybrid Mode) dove:
Il controller node in realtà è un container LXC e ospita in esecuzione i servizi API/RPC di Neutron:
In particolare /etc/neutron/neutron.conf:
# Distributed virtual routing router_distributed = True enable_dvr = True
Il network node corrisponde all'host fisico dei controller. Qui sono in esecuzione:
# openstack network agent list --host os-ctrl-1
+--------------------------------------+--------------------+-----------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+-----------+-------------------+-------+-------+---------------------------+
| 129d1377-eb08-4472-ae78-8963238a3adf | L3 agent | os-ctrl-1 | nova | :-) | UP | neutron-l3-agent |
| 6a7d3928-83e4-4733-b8f1-51f6941ab0e3 | DHCP agent | os-ctrl-1 | nova | :-) | UP | neutron-dhcp-agent |
| 6f3b6b48-0ac6-406f-98fc-577549256c3b | Open vSwitch agent | os-ctrl-1 | None | :-) | UP | neutron-openvswitch-agent |
| da35d0e0-f84f-4c81-bad8-db8e2e2cd6f5 | Metadata agent | os-ctrl-1 | None | :-) | UP | neutron-metadata-agent |
| f323441d-e8bb-4229-baa7-cecfce0eb94c | Metering agent | os-ctrl-1 | None | :-) | UP | neutron-metering-agent |
+--------------------------------------+--------------------+-----------+-------------------+-------+-------+---------------------------+
Ovvero:
in /etc/neutron/l3agent.ini
<code>
[DEFAULT]
debug = False
# Drivers
interfacedriver = openvswitch
agentmode = dvr_snat
</code>
==== Compute Node ====
Sul compute node abbiamo:
<code>
# openstack network agent list –host os-worker-3
+————————————–+——————–+————-+——————-+——-+——-+—————————+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+————————————–+——————–+————-+——————-+——-+——-+—————————+
| 603eaa61-dfb3-4a57-b292-1e8b36359e2d | Metadata agent | os-worker-3 | None | /etc/neutron/l3agent.ini
| UP | neutron-metadata-agent |
| a70773c1-9cc0-462c-8510-a284ee17c197 | Open vSwitch agent | os-worker-3 | None |
| UP | neutron-openvswitch-agent |
| ed466f61-b3e8-45a2-b0bc-6549d7255449 | L3 agent | os-worker-3 | nova |
| UP | neutron-l3-agent |
+————————————–+——————–+————-+——————-+——-+——-+—————————+
</code>
* L'agente di routing (L3 Agent) è distribuito su ogni compute node e gestisce il routing Est/Ovest e Nord/Sud per le istanze locali (DVR mode)
* L'agente dei metadati fornisce servizi metadata alle istanze in modalità distribuita
* L'agente Open vSwitch gestisce la configurazione dei virtual switch
[DEFAULT] # Drivers interface_driver = openvswitch agent_mode = dvr
Per visualizzare lo stato degli agenti registrati:
# openstack network agent list
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
| 129d1377-eb08-4472-ae78-8963238a3adf | L3 agent | os-ctrl-1 | nova | :-) | UP | neutron-l3-agent |
| 402cb26e-3362-49bc-850b-65e06c49aa62 | Metadata agent | os-worker-2 | None | :-) | UP | neutron-metadata-agent |
| 5f73dbcc-0dd5-425b-b387-f1836e78e9aa | Open vSwitch agent | os-ctrl-3 | None | :-) | UP | neutron-openvswitch-agent |
| 603eaa61-dfb3-4a57-b292-1e8b36359e2d | Metadata agent | os-worker-3 | None | :-) | UP | neutron-metadata-agent |
| 65456e04-bb6f-4602-8fe6-7e8dac37d2f7 | DHCP agent | os-ctrl-2 | nova | :-) | UP | neutron-dhcp-agent |
| 6681d4d4-b1fa-469e-8565-fb61836a8161 | Open vSwitch agent | os-worker-4 | None | :-) | UP | neutron-openvswitch-agent |
| 6a7d3928-83e4-4733-b8f1-51f6941ab0e3 | DHCP agent | os-ctrl-1 | nova | :-) | UP | neutron-dhcp-agent |
| 6b49877c-8dad-46df-a125-230ccda418ea | Metadata agent | os-worker-4 | None | :-) | UP | neutron-metadata-agent |
| 6f3b6b48-0ac6-406f-98fc-577549256c3b | Open vSwitch agent | os-ctrl-1 | None | :-) | UP | neutron-openvswitch-agent |
| 80063729-2025-4d3a-9d0c-963731dc8e8c | L3 agent | os-worker-2 | nova | :-) | UP | neutron-l3-agent |
| 82deda29-d3f8-43de-a243-0d116425d52a | L3 agent | os-ctrl-2 | nova | :-) | UP | neutron-l3-agent |
| 90768cba-1bda-459f-9350-5a0603e53c45 | DHCP agent | os-ctrl-3 | nova | :-) | UP | neutron-dhcp-agent |
| 94c16b8a-3e0e-41eb-b592-4c10e7e2c50a | Metadata agent | os-ctrl-2 | None | :-) | UP | neutron-metadata-agent |
| 98d4da56-1046-4be8-829e-f6afa0bc9c90 | Open vSwitch agent | os-worker-2 | None | :-) | UP | neutron-openvswitch-agent |
| 9c3c0c49-6a86-4d65-aa9f-8c7c374dc5f0 | Metering agent | os-ctrl-2 | None | :-) | UP | neutron-metering-agent |
| a70773c1-9cc0-462c-8510-a284ee17c197 | Open vSwitch agent | os-worker-3 | None | :-) | UP | neutron-openvswitch-agent |
| b4f7b4c4-ee50-47fb-89f5-361571ff846c | Metadata agent | os-ctrl-3 | None | :-) | UP | neutron-metadata-agent |
| b5e0d5e9-78fc-4480-bf57-3d6e2e7ea04b | Metering agent | os-ctrl-3 | None | :-) | UP | neutron-metering-agent |
| d4c6f8a0-f7fb-41e2-b6da-35e85c9fff60 | L3 agent | os-ctrl-3 | nova | :-) | UP | neutron-l3-agent |
| d7210303-2c7d-4418-9b49-62ede9fa20f5 | L3 agent | os-worker-4 | nova | :-) | UP | neutron-l3-agent |
| da35d0e0-f84f-4c81-bad8-db8e2e2cd6f5 | Metadata agent | os-ctrl-1 | None | :-) | UP | neutron-metadata-agent |
| ed466f61-b3e8-45a2-b0bc-6549d7255449 | L3 agent | os-worker-3 | nova | :-) | UP | neutron-l3-agent |
| f323441d-e8bb-4229-baa7-cecfce0eb94c | Metering agent | os-ctrl-1 | None | :-) | UP | neutron-metering-agent |
| f9d5b41b-41f1-4454-b33f-ac928e9636b8 | Open vSwitch agent | os-ctrl-2 | None | :-) | UP | neutron-openvswitch-agent |
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
filtri utili sono nel caso del DVR: 'dhcp', 'open-vswitch', 'l3', 'metadata', 'metering'
openstack network agent list --agent-type l3
oppure –host, per esempio:
openstack network agent list --host os-ctrl-2
Per eseminari i dettagli di un agente (qui richiediamo il formato yaml, opzionale):
# openstack network agent show 129d1377-eb08-4472-ae78-8963238a3adf -f yaml
admin_state_up: true
agent_type: L3 agent
alive: true
availability_zone: nova
binary: neutron-l3-agent
configuration:
agent_mode: dvr_snat
ex_gw_ports: 1
extensions: []
floating_ips: 0
handle_internal_only_routers: true
interface_driver: openvswitch
interfaces: 1
log_agent_heartbeats: false
routers: 2
created_at: '2025-10-07 11:59:17'
description: null
ha_state: null
host: os-ctrl-1
id: 129d1377-eb08-4472-ae78-8963238a3adf
last_heartbeat_at: '2025-10-14 14:48:08'
resources_synced: null
started_at: '2025-10-14 09:13:07'
topic: l3_agent
dove troviamo conferma del modo DVR: agentmode: dvrsnat