Вопрос или проблема
У меня развертывание OpenStack с использованием Neutron и Open vSwitch (без DPDK). Я сталкиваюсь с потерей пакетов в моих виртуальных машинах, но не могу определить очевидные причины этой проблемы.
Во время устранения неполадок я обнаружил, что трафик достигает сетевого шлюза и также попадает на гипервизор, но отбрасывается Open vSwitch (OVS).
Окружение:
- Метод развертывания OpenStack: Koll Ansible
- Сетевая конфигурация: Neutron + Open vSwitch
519535738764037 (9) [swapper/9] 0 [tp] **skb:kfree_skb drop (reason openvswitch/OVS_DROP_LAST_ACTION)**
__init_scratch_end+0x2d232ad7
bpf_get_stackid_raw_tp+0x73
__init_scratch_end+0x2d232ad7
bpf_trace_run3+0x51
kfree_skb_reason+0x89
do_execute_actions+0x345
ovs_execute_actions+0x48
ovs_dp_process_packet+0x95
ovs_vport_receive+0x6e
netdev_frame_hook+0x1b
__netif_receive_skb_core.constprop.0+0x280
__netif_receive_skb_list_core+0x136
netif_receive_skb_list_internal+0x1c6
napi_complete_done+0x6f
bnx2x_poll+0x13b
__napi_poll+0x2a
net_rx_action+0x233
__do_softirq+0xca
__irq_exit_rcu+0xa1
common_interrupt+0x80
asm_common_interrupt+0x22
cpuidle_enter_state+0xca
cpuidle_enter+0x29
cpuidle_idle_call+0xfa
do_idle+0x78
cpu_startup_entry+0x19
start_secondary+0x10d
secondary_startup_64_no_verify+0xe5
(OVS_DROP_LAST_ACTION: пакеты OVS были отброшены из-за неявного действия отброса, например, из-за настроенной сетевой политики.)
Не было выполнено никаких пользовательских настроек для параметров openswitch.
Статистика ЦП Linux 5.14.0-362.24.1.el9_3.0.1.x86_64 16/10/2024 x86_64 (48 ЦП)
12:34:53 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:34:53 PM all 6.76 0.00 17.67 0.09 1.38 12.36 0.00 22.29 0.00 39.45
12:34:53 PM 0 2.31 0.00 12.70 0.07 1.31 33.66 0.00 14.76 0.00 35.19
12:34:53 PM 1 2.94 0.00 17.19 0.08 1.50 15.60 0.00 19.82 0.00 42.86
12:34:53 PM 2 2.78 0.00 15.88 0.07 1.39 20.80 0.00 18.41 0.00 40.67
12:34:53 PM 3 2.88 0.00 16.76 0.07 1.44 16.68 0.00 19.62 0.00 42.55
12:34:53 PM 4 3.42 0.00 19.16 0.07 1.54 8.07 0.00 24.57 0.00 43.17
12:34:53 PM 5 3.38 0.00 19.84 0.08 1.55 5.06 0.00 24.04 0.00 46.05
12:34:53 PM 6 3.56 0.00 19.72 0.08 1.56 6.18 0.00 25.77 0.00 43.14
12:34:53 PM 7 2.25 0.00 11.38 0.05 1.26 38.46 0.00 13.34 0.00 33.26
12:34:53 PM 8 2.99 0.00 17.24 0.06 1.49 15.84 0.00 20.36 0.00 42.02
12:34:53 PM 9 2.82 0.00 16.17 0.05 1.40 20.11 0.00 18.67 0.00 40.78
12:34:53 PM 10 3.40 0.00 19.65 0.08 1.52 5.77 0.00 24.11 0.00 45.47
12:34:53 PM 11 2.21 0.00 11.63 0.05 1.26 37.33 0.00 13.15 0.00 34.37
12:34:53 PM 12 10.61 0.00 19.63 0.12 1.34 4.31 0.00 26.42 0.00 37.57
12:34:53 PM 13 10.52 0.00 19.66 0.12 1.35 4.26 0.00 26.38 0.00 37.70
12:34:53 PM 14 10.57 0.00 19.64 0.11 1.35 4.31 0.00 26.03 0.00 37.99
12:34:53 PM 15 10.52 0.00 19.66 0.12 1.37 4.32 0.00 25.65 0.00 38.36
12:34:53 PM 16 10.82 0.00 19.67 0.11 1.36 4.30 0.00 26.15 0.00 37.59
12:34:53 PM 17 10.72 0.00 19.63 0.11 1.35 4.31 0.00 26.02 0.00 37.85
12:34:53 PM 18 10.56 0.00 19.64 0.11 1.34 4.37 0.00 25.85 0.00 38.12
12:34:53 PM 19 10.61 0.00 19.55 0.11 1.33 4.36 0.00 26.03 0.00 38.01
12:34:53 PM 20 10.81 0.00 19.51 0.10 1.32 4.45 0.00 26.58 0.00 37.22
12:34:53 PM 21 10.51 0.00 19.58 0.11 1.33 4.41 0.00 25.82 0.00 38.24
12:34:53 PM 22 10.60 0.00 19.50 0.11 1.32 4.48 0.00 25.88 0.00 38.12
12:34:53 PM 23 10.51 0.00 19.51 0.11 1.32 4.45 0.00 25.49 0.00 38.61
12:34:53 PM 24 3.05 0.00 17.77 0.07 1.49 12.97 0.00 20.67 0.00 43.98
12:34:53 PM 25 3.55 0.00 19.91 0.08 1.56 5.57 0.00 25.98 0.00 43.35
12:34:53 PM 26 1.79 0.00 7.24 0.04 1.08 44.81 0.00 7.69 0.00 37.34
12:34:53 PM 27 2.32 0.00 11.47 0.04 1.25 38.12 0.00 13.28 0.00 33.52
12:34:53 PM 28 2.93 0.00 16.90 0.06 1.51 16.82 0.00 18.74 0.00 43.04
12:34:53 PM 29 2.20 0.00 11.50 0.05 1.27 38.15 0.00 12.59 0.00 34.24
12:34:53 PM 30 3.02 0.00 17.17 0.06 1.49 15.36 0.00 19.89 0.00 43.01
12:34:53 PM 31 3.41 0.00 19.49 0.07 1.51 5.37 0.00 24.21 0.00 45.95
12:34:53 PM 32 3.53 0.00 19.52 0.07 1.55 6.09 0.00 25.03 0.00 44.20
12:34:53 PM 33 1.78 0.00 7.23 0.04 1.06 44.48 0.00 7.68 0.00 37.73
12:34:53 PM 34 2.36 0.00 12.59 0.05 1.27 32.61 0.00 14.29 0.00 36.83
12:34:53 PM 35 3.37 0.00 19.49 0.07 1.50 5.30 0.00 23.12 0.00 47.14
12:34:53 PM 36 10.65 0.00 19.74 0.12 1.36 4.06 0.00 25.71 0.00 38.36
12:34:53 PM 37 10.62 0.00 19.70 0.11 1.35 4.02 0.00 25.63 0.00 38.57
12:34:53 PM 38 10.82 0.00 19.71 0.12 1.37 4.08 0.00 25.84 0.00 38.07
12:34:53 PM 39 10.69 0.00 19.69 0.11 1.36 4.09 0.00 25.87 0.00 38.19
12:34:53 PM 40 10.57 0.00 19.81 0.12 1.38 4.09 0.00 25.72 0.00 38.29
12:34:53 PM 41 10.74 0.00 19.77 0.12 1.38 4.11 0.00 25.94 0.00 37.95
12:34:53 PM 42 10.98 0.00 19.63 0.12 1.37 4.17 0.00 25.78 0.00 37.95
12:34:53 PM 43 10.70 0.00 19.68 0.11 1.34 4.16 0.00 25.56 0.00 38.45
12:34:53 PM 44 10.31 0.00 19.70 0.12 1.36 4.25 0.00 25.36 0.00 38.89
12:34:53 PM 45 10.75 0.00 19.57 0.11 1.34 4.21 0.00 25.82 0.00 38.20
12:34:53 PM 46 10.70 0.00 19.56 0.12 1.34 4.30 0.00 25.73 0.00 38.25
12:34:53 PM 47 10.73 0.00 19.53 0.12 1.35 4.25 0.00 25.79 0.00 38.
Ответ или решение
Потеря пакетов в OpenStack Neutron с использованием Open vSwitch
Проблема потери пакетов в вашей среде OpenStack с использованием Neutron и Open vSwitch (OVS) может быть вызвана несколькими факторами. В данном ответе мы рассмотрим возможные причины этой проблемы и предложим решения для её устранения.
Описание проблемы
Согласно вашему описанию, трафик достигает шлюза сети и гипервизора, но падает на уровне Open vSwitch с сообщением об ошибке OVS_DROP_LAST_ACTION. Это указывает на то, что пакеты были отклонены из-за установленной политики сети или правил, однако, вы не вносили никаких пользовательских конфигураций в настройки OVS.
Возможные причины потери пакетов
-
Политики безопасности: Проверьте, не применяются ли политики безопасности, которые могут блокировать трафик. В OpenStack Neutron такие политики могут включать в себя правила безопасности на уровне проекта, сети или порта. Убедитесь, что порты виртуальных машин (VM) настроены правильно и имеют правильные разрешения на входящий и исходящий трафик.
-
Настройки сетевых групп: Убедитесь, что ваши сетевые группы не содержат правил, блокирующих трафик. Неправильная конфигурация правил может привести к неожиданным проблемам с доступом.
-
Файрволы: Проверьте наличие правил в iptables или других компонентах файрвола, которые могут перехватывать и блокировать трафик.
-
QoS (Quality of Service): Если в вашей установке применяется управление качеством обслуживания (QoS), то его настройки могут препятствовать передачам определенного трафика.
-
Ошибки в конфигурации OVS: Поскольку вы используете Open vSwitch без DPDK, консистенция среди различных компонент может быть нарушена. Важно проверить логи OVS на предмет дополнительных сообщений об ошибках или предупреждений.
Рекомендации по устранению неполадок
-
Проверка логов OVS: Проверьте логи Open vSwitch. Лог с
ovs-vswitchd.log
может содержать больше информации о том, почему пакеты отбрасываются. -
Использование утилит диагностики: Используйте команды
ovs-vsctl show
иovs-ofctl show
, чтобы вывести текущее состояние вашего OVS и всю связанную информацию о потоках. -
Верификация сетевых групп и правил: Запустите команды для проверки настроек безопасности и правил, действующих на уровне проектных и сетевых ресурсов.
-
Мониторинг сети: Используйте инструменты мониторинга, такие как
tcpdump
илиWireshark
, чтобы отслеживать и анализировать трафик на гипервизоре. Это может помочь выявить, где трафик теряется. -
Проверка загруженности CPU: Согласно предоставленным данным, наблюдается некоторая загруженность CPU гипервизора (до 17.67% системных процессов). Убедитесь, что система не испытывает перегрузку, что может привести к потере пакетов.
-
Обновление прошивки и ПО: Убедитесь, что у вас установлены последние версии ПО для Open vSwitch и драйверов. Обновления могут включать исправления известных ошибок.
Заключение
Проблема потери пакетов в OpenStack Neutron с использованием Open vSwitch может быть вызвана множеством факторов, от правил безопасности до конфигурационных ошибок. Внимательное изучение логов и анализ конфигурации – ключевые этапы в устранении этой проблемы. Рекомендуется использовать различные инструменты мониторинга и диагностики для глубокого анализа ситуации.
Если после выполнения вышеуказанных действий проблема сохраняется, возможно, стоит рассмотреть возможность обращения в службу технической поддержки OpenStack или на специализированные форумы, где вы можете получить помощь от сообщества.