структурированное знание

Jan 15, 2014 01:10

Всё-таки получение структурированного знания - одно из самых приятных событий в жизни человека.

Когда несколько разрозненных кусков "хер знает как работает и почему" стройно срастаются в единое понимание, простую и ясную модель, из которой естественным образом выводятся самые странные свойства (которые раньше заставляли грызть зубы от нелогичности и неожиданности) - в этот момент ощущаешь реальный кайф (мозг обнаруживает, что больше не нужно помнить 100500 мелочей в виде хаоса и можно построить изящную компактную нейтронную сеть?).

Только что проебался примерно два дня (и это уже третий заход был), пытаясь понять, почему neutron не работает.

Симптомы: трафик из виртуалки выходит, между виртуалками на хосте ходит, за пределы хоста - нет. Глазами видно, что трафик выходит из виртуалки, но gre-трафика не видно. При этом гре-интерфейсы внутри openvswitch создаются, но там нет никакого трафика.

Симптомы второго порядка: ovs-ofctl dump-flows br-tun показывает, что у table 21 только drop, без полагающегося strip_vlan, set_segment, output.

После того, как я раза три все конфиги новы и нейтрона вылизал вдоль и вглубь, после вычитывания сырцов и отладочного лога ovs-agent'а (адское развлечение), я нашёл причину: сеть помечена как local. А должна быть gre.

Это в базе. Видно даже руками:

neutron net-show d1ae41a1-502a-4b30-a9ff-61c00cf51df1
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | d1ae41a1-502a-4b30-a9ff-61c00cf51df1 |
| name | internal |
| provider:network_type | local |
| provider:physical_network | |
| provider:segmentation_id | |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | 91a7ec38-bcc0-4ae7-8f83-06cec509718d |
| tenant_id | 3458268fc2ea455f84c5ef1eeaeb4849 |
+---------------------------+--------------------------------------+

После пересоздания сети, она начинает работать. Легко понять почему:

neutron net-show 51027d33-af34-43d4-a123-f24edef88b9a
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 51027d33-af34-43d4-a123-f24edef88b9a |
| name | internal |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 3458268fc2ea455f84c5ef1eeaeb4849 |
+---------------------------+--------------------------------------+

Почему же получилась local network? Потому что на момент создания сети не был отконфигурирован должным образом (тут надо уточнить что именно надо конфигурировать) neutron-server. А потом конфиг нормализовали, а сеть осталась такой же, и никакие ребуты не помогают.

openstack, грабли, neutron

Previous post Next post
Up