openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #08147
Re: [Netstack] Can't associate floating IP
Hi Doude,
I was dealing with another issue caused by this NULL 'host', and Dan told
me that has been fixed:
https://github.com/openstack/nova/commit/43f2492175d11a3f8ea4198e65b2a6a6b38cbbb6
I haven't verified, though. Good luck.
Best,
Tomoe
On Thu, Mar 1, 2012 at 10:11 PM, Doude <doudouyam@xxxxxxxxx> wrote:
> Hi,
>
> I tested it with Quantum and I confirm the field 'host' in the 'network'
> table stays empty.
> Someone filled a bug for that ?
>
> Doude.
>
>
> On Tue, Feb 28, 2012 at 8:06 AM, Vishvananda Ishaya <vishvananda@xxxxxxxxx
> > wrote:
>
>> ...
>> At least that is the case for nova-network without quantum. I don't know
>> if using Quantum leads to a different result.
>>
>> Vish
>>
>> On Feb 27, 2012, at 9:49 PM, Yapeng Wu wrote:
>>
>> Hello, Brad,
>>
>> I read your reply to Darragph's email:
>> "Another thing to check .. when I run devstack by default my network
>> doesn't get associated with a host [host is NULL in the database].
>> Make sure the host for that network is set to the hostname of the
>> compute node."
>>
>> I found that when I use "nova-manage network create" CLI command, the
>> host is NULL in the database as well.
>> Is this a bug? Where would this "host" field get updated?
>>
>> Thanks,
>> Yapeng
>>
>>
>>
>> On Feb 27, 2012, at 04:02 PM, Yapeng Wu <yapengwu@xxxxxx> wrote:
>>
>> Hello, Darragh,
>>
>> I...
>>
>>
>>
>> 2) For the second problem: command line issue, I found that it was due to
>> the code in nova/network/manager.py, line 435 to 452:
>>
>> if network['multi_host']:
>> instance = self.db.instance_get(context, fixed_ip['instance_id'])
>> host = instance['host']
>> else:
>> host = network['host']
>>
>> interface = floating_ip['interface']
>> if host == self.host:
>> # i'm the correct host
>> self._associate_floating_ip(context, floating_address,
>> fixed_address, interface)
>> else:
>> # send to correct host
>> rpc.cast(context,
>> self.db.queue_get_for(context, FLAGS.network_topic, host),
>> {'method': '_associate_floating_ip',
>> 'args': {'floating_address': floating_address,
>> 'fixed_address': fixed_address,
>> 'interface': interface}})
>>
>>
>> The "host" should be self.host in this case, but not. So it calls
>> rpc.cast. I thought host is read from the database by the 'instance_id'? I
>> am not sure. If I "hacked" the code by calling self._associate_floating_ip
>> directly, associate floating ip works.
>>
>> Maybe someone familiar with nova-network code could help us on this.
>>
>> Yapeng
>>
>>
>>
>> On Feb 27, 2012, at 12:18 PM, Dan Wendlandt <dan@xxxxxxxxxx> wrote:
>>
>> Hi Darragh,
>>
>> Thanks for the detailed write-up. Would be great if you could take this
>> content and create a bug on launchpad. We'll look into this.
>>
>> On a related note. The check in stack.sh to avoid creating a floating IP
>> pool if quantum is enabled is no longer valid, now that Quantum Manager
>> does (or at least intends to :P ) support floating IPs. But rather than
>> remove it, it may be good to just change to the check to avoid creating
>> floating IPs if melange is enabled, as Quantum Manager's current floating
>> IP support requires using the traditional Nova IPAM, not Melange.
>>
>> Dan
>>
>>
>> On Mon, Feb 27, 2012 at 6:38 AM, Darragh OReilly <
>> darragh.oreilly@xxxxxxxxx> wrote:
>>
>>>
>>>
>>> When I try to associate a floating IP from the dash I get:
>>> Error: Error associating Floating IP: Associate floating ip failed (HTTP
>>> 500)
>>>
>>> >From the command line I don't get any errors or exceptions on any of
>>> the screens after nova add-floating-ip, but the association does not
>>> happen. Are these steps right?
>>>
>>> thanks Darragh
>>>
>>>
>>> u1@u1110srv:~/devstack$ cat localrc
>>> LOGFILE=stacklog
>>> MYSQL_PASSWORD=nova
>>> RABBIT_PASSWORD=nova
>>> SERVICE_TOKEN=nova
>>> ADMIN_PASSWORD=nova
>>> SWIFT_HASH=nova
>>>
>>> ENABLED_SERVICES="g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,horizon,mysql,rabbit,openstackx,n-vol,q-svc,q-agt,swift,quantum"
>>> Q_PLUGIN=openvswitch
>>>
>>> After running stack.sh have:
>>>
>>> u1@u1110srv:~/devstack$ nova-manage network list
>>> id IPv4 IPv6 start address
>>> DNS1 DNS2 VlanID project
>>> uuid
>>> 2012-02-27 13:38:04 DEBUG nova.utils
>>> [req-7b6febc7-c8cd-49e5-ac48-5707c70d8bb5 None None] backend <module
>>> 'nova.db.sqlalchemy.api' from '/opt/stack/nova/nova/db/sqlalchemy/api.pyc'>
>>> from (pid=4776) __get_backend /opt/stack/nova/nova/utils.py:603
>>> 1 10.0.0.0/24 None 10.0.0.2
>>> 8.8.4.4 None None None
>>> 20cda3a7-f4a8-4b3c-b399-4dd624cb7a40
>>>
>>>
>>> u1@u1110srv:~/devstack$ TENANT=
>>> u1@u1110srv:~/devstack$ USERNAME=
>>> u1@u1110srv:~/devstack$ . openrc
>>> u1@u1110srv:~/devstack$
>>>
>>> u1@u1110srv:~/devstack$ nova boot --flavor 6 --image
>>> 21b0573e-8dd6-4b42-9c01-4c8684b0b080 guest1
>>>
>>>
>>> u1@u1110srv:~/devstack$ nova show guest1
>>>
>>> +-------------------+----------------------------------------------------------+
>>> | Property |
>>> Value |
>>>
>>> +-------------------+----------------------------------------------------------+
>>> | OS-DCF:diskConfig |
>>> MANUAL |
>>> | accessIPv4
>>> | |
>>> | accessIPv6
>>> | |
>>> | config_drive
>>> | |
>>> | created |
>>> 2012-02-27T13:49:00Z |
>>> | flavor |
>>> micro |
>>> | hostId |
>>> 372f92b8889526d07feaa81ec5ab9bb80228350db4cfa563c15baf6f |
>>> | id |
>>> 3d931521-9ea2-4344-ad52-13faf4172e96 |
>>> | image |
>>> cirros-0.3.0-x86_64-blank |
>>> | key_name
>>> | |
>>> | metadata |
>>> {} |
>>> | name |
>>> guest1 |
>>> | private network |
>>> 10.0.0.2 |
>>> | progress |
>>> None |
>>> | status |
>>> ACTIVE |
>>> | tenant_id |
>>> 5b5a2c42b5874058962c6f543ee91c72 |
>>> | updated |
>>> 2012-02-27T13:49:30Z |
>>> | user_id |
>>> demo |
>>>
>>> +-------------------+----------------------------------------------------------+
>>>
>>>
>>> u1@u1110srv:~/devstack$ ssh cirros@10.0.0.2
>>> The authenticity of host '10.0.0.2 (10.0.0.2)' can't be established.
>>> RSA key fingerprint is ed:b0:be:78:26:23:2a:8d:81:22:84:84:f0:6c:ec:3c.
>>> Are you sure you want to continue connecting (yes/no)? yes
>>> Warning: Permanently added '10.0.0.2' (RSA) to the list of known hosts.
>>> cirros@10.0.0.2's password:
>>> $ ping www.openstack.org
>>> PING www.openstack.org (98.129.229.144): 56 data bytes
>>> 64 bytes from 98.129.229.144: seq=1 ttl=61 time=182.020 ms
>>> 64 bytes from 98.129.229.144: seq=2 ttl=61 time=182.166 ms
>>> ^C
>>> --- www.openstack.org ping statistics ---
>>> 3 packets transmitted, 2 packets received, 33% packet loss
>>> round-trip min/avg/max = 182.020/182.093/182.166 ms
>>> $ Connection to 10.0.0.2 closed.
>>> u1@u1110srv:~/devstack$
>>>
>>>
>>> stack.sh is not creating any floating range with quantum enabled:
>>>
>>> if is_service_enabled q-svc; then
>>> echo "Not creating floating IPs (not supported by
>>> QuantumManager)"
>>> else
>>> # create some floating ips
>>> $NOVA_DIR/bin/nova-manage floating create $FLOATING_RANGE
>>>
>>> # create a second pool
>>> $NOVA_DIR/bin/nova-manage floating create
>>> --ip_range=$TEST_FLOATING_RANGE --pool=$TEST_FLOATING_POOL
>>> fi
>>>
>>>
>>> u1@u1110srv:~/devstack$ nova-manage floating create --ip_range=
>>> 172.241.1.0/24 --interface=eth2
>>>
>>> u1@u1110srv:~/devstack$ nova-manage floating list 2>/dev/null | head -3
>>> None 172.241.1.1 None nova eth2
>>> None 172.241.1.2 None nova eth2
>>> None 172.241.1.3 None nova eth2
>>>
>>> u1@u1110srv:~/devstack$ nova floating-ip-create
>>> +-------------+-------------+----------+------+
>>> | Ip | Instance Id | Fixed Ip | Pool |
>>> +-------------+-------------+----------+------+
>>> | 172.241.1.1 | None | None | nova |
>>> +-------------+-------------+----------+------+
>>>
>>> u1@u1110srv:~/devstack$ nova add-floating-ip guest1 172.241.1.1
>>> u1@u1110srv:~/devstack$ echo $?
>>> 0
>>> u1@u1110srv:~/devstack$ nova floating-ip-list
>>> +-------------+-------------+----------+------+
>>> | Ip | Instance Id | Fixed Ip | Pool |
>>> +-------------+-------------+----------+------+
>>> | 172.241.1.1 | None | None | nova |
>>> +-------------+-------------+----------+------+
>>>
>>> u1@u1110srv:~/devstack$ ip link show dev eth2
>>> 2: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
>>> link/ether 08:00:27:1a:5c:69 brd ff:ff:ff:ff:ff:ff
>>>
>>> u1@u1110srv:~/devstack$ sudo iptables -t nat -vnL | grep -i float
>>> Chain nova-api-float-snat (1 references)
>>> 81 4863 nova-api-float-snat all -- * * 0.0.0.0/0
>>> 0.0.0.0/0
>>> Chain nova-compute-float-snat (1 references)
>>> 82 4947 nova-compute-float-snat all -- * * 0.0.0.0/0
>>> 0.0.0.0/0
>>> Chain nova-manage-float-snat (1 references)
>>> 81 4863 nova-manage-float-snat all -- * * 0.0.0.0/0
>>> 0.0.0.0/0
>>> Chain nova-network-float-snat (1 references)
>>> 82 4947 nova-network-float-snat all -- * * 0.0.0.0/0
>>> 0.0.0.0/0
>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~netstack
>>> Post to : netstack@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~netstack
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>>
>> --
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Dan Wendlandt
>> Nicira Networks: www.nicira.com
>> twitter: danwendlandt
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to : netstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~netstack
>> More help : https://help.launchpad.net/ListHelp
>>
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to : netstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~netstack
>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>>
>> Mailing list: https://launchpad.net/~openstack
>> Post to : openstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openstack
>> More help : https://help.launchpad.net/ListHelp
>>
>>
>>
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to : netstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~netstack
>> More help : https://help.launchpad.net/ListHelp
>>
>>
>
> --
> Mailing list: https://launchpad.net/~netstack
> Post to : netstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~netstack
> More help : https://help.launchpad.net/ListHelp
>
>
Follow ups
References