Anthony and Robert,

Thanks for your reply. I don't know if the arping is there for NAT, but I am pretty sure it's for HA setup to broadcast the router's own change since the arping is controlled by "send_arp_for_ha" config. By checking the man page of arping, you can find the "arping -A" we use in code is sending out ARP REPLY instead of ARP REQUEST. This is like saying "I am here" instead of "where are you". I didn't realized this either until Brain pointed this out at my code review below.

http://linux.die.net/man/8/arping

https://review.openstack.org/#/c/114437/2/neutron/agent/l3_agent.py

Thoughts?

Xu Han


On 08/27/2014 10:01 PM, Veiga, Anthony wrote:


    Hi Xuhan,

    What I saw is that GARP is sent to the gateway port and also to
    the router ports, from a neutron router. I'm not sure why it's
    sent to the router ports (internal network). My understanding for
    arping to the gateway port is that it is needed for proper NAT
    operation. Since we are not planning to support ipv6 NAT, so this
    is not required/needed for ipv6 any more?


I agree that this is no longer necessary.


    There is an abandoned patch that disabled the arping for ipv6
    gateway port:
    https://review.openstack.org/#/c/77471/3/neutron/agent/l3_agent.py

    thanks,
    Robert

    On 8/27/14, 1:03 AM, "Xuhan Peng" <pengxu...@gmail.com
    <mailto:pengxu...@gmail.com>> wrote:

        As a follow-up action of yesterday's IPv6 sub-team meeting, I
        would like to start a discussion about how to support l3 agent
        HA when IP version is IPv6.

        This problem is triggered by bug [1] where sending gratuitous
        arp packet for HA doesn't work for IPv6 subnet gateways. This
        is because neighbor discovery instead of ARP should be used
        for IPv6.

        My thought to solve this problem turns into how to send
        out neighbor advertisement for IPv6 routers just like sending
        ARP reply for IPv4 routers after reading the comments on code
        review [2].

        I searched for utilities which can do this and only find a
        utility called ndsend [3] as part of vzctl on ubuntu. I could
        not find similar tools on other linux distributions.

        There are comments in yesterday's meeting that it's the new
        router's job to send out RA and there is no need for neighbor
        discovery. But we didn't get enough time to finish the
        discussion.


Because OpenStack runs the l3 agent, it is the router. Instead of needing to do gratuitous ARP to alert all clients of the new MAC, a simple RA from the new router for the same prefix would accomplish the same, without having to resort to a special package to generate unsolicited NA packets. RAs must be generated from the l3 agent anyway if it's the gateway, and we're doing that via radvd now. The HA failover simply needs to start the proper radvd process on the secondary gateway and resume normal operation.


        Can you comment your thoughts about how to solve this problem
        in this thread, please?

        [1] https://bugs.launchpad.net/neutron/+bug/1357068

        [2] https://review.openstack.org/#/c/114437/

        [3] http://manpages.ubuntu.com/manpages/oneiric/man8/ndsend.8.html

        Thanks,
        Xu Han



-Anthony


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to