2016-01-12 6 views
0

Я создал ~ 10 узлов установки DevStack, чтобы узнать больше о том, как OpenStack управляет сетью. Я создал несколько VMS, и проверить их на какой-то хозяин, как следующее:Как работает OpenStack Floating IP-соединение?

virsh # list 
Id Name       State 
---------------------------------------------------- 
2  instance-0000001b    running 
3  instance-0000001f    running 
4  instance-00000024    running 
5  instance-0000002c    running 

Я сопоставляется floaring IP к идентификатору экземпляра 2, я проверил это, посмотрев его OpenStack идентификатор и соответствие с выходом virsh dumpxml 2. имеет следующий плавающую дэ IP: 172.16.6.12 и локальный IP: 10.4.128.11

Я вижу это использует vnet0:

<interface type='bridge'> 
     <mac address='fa:16:3e:a1:f8:65'/> 
     <source bridge='br100'/> 
     <target dev='vnet0'/> 
     <model type='virtio'/> 
     <filterref filter='nova-instance-instance-0000001b-fa163ea1f865'/> 
     <alias name='net0'/> 
     <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> 
    </interface> 

Doing IFCONFIG vnet0, он не показывает никаких IP-адрес:

vnet0  Link encap:Ethernet HWaddr fe:16:3e:a1:f8:65 
      inet6 addr: fe80::fc16:3eff:fea1:f865/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:70 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:44216 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:500 
      RX bytes:7232 (7.2 KB) TX bytes:29123311 (29.1 MB) 

Как я могу выполнить ip addr, я вижу, что IP-адрес определен в мосту, br100.

4: br100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether d8:50:e6:c3:22:ee brd ff:ff:ff:ff:ff:ff 
    inet 10.4.128.13/20 brd 10.4.143.255 scope global br100 
     valid_lft forever preferred_lft forever 
    inet 172.16.0.101/21 brd 172.16.7.255 scope global br100 
     valid_lft forever preferred_lft forever 
    inet 172.16.6.12/32 scope global br100 
     valid_lft forever preferred_lft forever 
    inet 172.16.6.19/32 scope global br100 
     valid_lft forever preferred_lft forever 
    inet6 fe80::80b6:99ff:fef7:dc16/64 scope link 
     valid_lft forever preferred_lft forever 
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br100 state UNKNOWN group default qlen 500 
    link/ether fe:16:3e:a1:f8:65 brd ff:ff:ff:ff:ff:ff 
    inet6 fe80::fc16:3eff:fea1:f865/64 scope link 
     valid_lft forever preferred_lft forever 
  • 172.16.0.101/21: Хост IP
  • 172.16.6.12/32: ВМ Floating IP

Однако там, где это Assocation что vnet0 -> 172,16. 6.12 (плавающий IP)? Почему трафик, идущий до 172.16.6.19, не переходит к 172.16.6.12,

Я искал правила iptables, но ничего не указывает vnet0 или плавающий ip. Как это делается? Я вижу, что они соединены с brctl, но нет никакой ассоциации IP-MAC, которую я вижу. Это даже не в таблицах arp. Я просмотрел iptables или прослушивающие порты, если какая-либо переадресация - это пространство пользователей, но это не так.

bridge name bridge id  STP enabled interfaces 
br100  8000.d850e6c322ee no  eth0 
             vnet0 
             vnet1 
             vnet2 
             vnet3 
+0

Это использование nova-network? нейтронный? Если нейтрон, в какой конфигурации? любые специальные драйверы/аппаратные средства в игре? этот материал ВЫСОКО настраивается в openstack. –

+0

Ну, я думаю, devstack использует nova-network – Mustafa

ответ

1

ОК, я нашел. Я забыл взглянуть на правила NAT iptables, он использует для пересылки данных плавающих ips на эти устройства veth.