<div dir="ltr"><div>As the follow up action of IPv6 sub-team meeting [1], I created a
new blueprint [2] to store both IPv6 LLA and GUA address on router
interface port. </div><div><br clear="none"></div><div>Here is what it's about:</div><div><br clear="none"></div><div>Based
on the two modes (ipv6-ra-mode and ipv6-address-mode) design[3], RA
can be sent from both openstack controlled dnsmasq or existing devices. </div><div><br></div><div>RA
From dnsmasq: gateway ip that dnsmasq binds into should be link local
address (LLA) according to [4]. This means we need to pass the LLA of
the created router internal port (i.e. qr-xxxx) to dnsmasq spawned by
openstack dhcp agent. In the mean while, we need to assign an GUA to the
created router port so that the traffic from external network can be
routed back using the GUA of the router port as the next hop into the
internal subnet. Therefore, we will need some change to the current
logic to leverage both LLA and GUA on router port. </div><div><br clear="none"></div><div>RA
from existing device on the same link which is not controlled by
openstack: dnsmasq will not send RA in this case. RA is sending from
subnet's gateway address which should also be LLA according to [4].
Allowing subnet's gateway IP to be LLA is enough in this case. Current
code works when force_gateway_on_subnet = False.<br><br><p>RA from
router gateway port (i.e. qg-xxxx): the LLA of the gateway port
(qg-xxxx) should be set as the gateway of tenant subnet to get the RA
from that. This could be potentially calculated by [5] or by other
methods in the future considering privacy extension. However, this will
make the tenant network gateway port qr-xxxx useless. Therefore, we also
need code change to current router interface attach logic. <br></p></div><div>If you have any comments on this, please let me know. </div><div><br clear="none"></div><div>[1] <a href="http://eavesdrop.openstack.org/meetings/neutron_ipv6/2014/neutron_ipv6.2014-02-25-14.02.html">http://eavesdrop.openstack.org/meetings/neutron_ipv6/2014/neutron_ipv6.2014-02-25-14.02.html</a></div>
<div><span style="color:rgb(255,0,0)"><span style="color:rgb(0,0,0)">[2] <a href="https://blueprints.launchpad.net/neutron/+spec/ipv6-lla-gua-router-interface">https://blueprints.launchpad.net/neutron/+spec/ipv6-lla-gua-router-interface</a></span><br>
</span></div><div><span style="color:rgb(0,0,0)">[3] <a href="https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes">https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes</a><br></span></div><div>
<span style="color:rgb(0,0,0)">[4] <a href="http://tools.ietf.org/html/rfc4861">http://tools.ietf.org/html/rfc4861</a></span><br clear="none"></div><span style="color:rgb(0,0,0)">[5] <a href="https://review.openstack.org/#/c/56184/">https://review.openstack.org/#/c/56184/</a></span></div>