<div dir="ltr"><div><div>Hi Yuhan<br><br></div>Sorry I am slow to respond, but I was catching up on some emails and found this one from you. Regarding your comments on the RA from the router gateway port...<br><br></div><div>
I disagree that the LLA for the qg-xxxx interface is (or should be) the gateway for the tenant's subnet. On the contrary, it should be the LLA of the qr-yyyy to which the dnsmasq binds [2]. Using [1] as a starting point, packets arriving on the qr-xxxx interface are routed across (via linux) in the qrouter-namespace, taking the default route (gateway-ip) as specified in [1] to unknown destinations.<br>
<br></div><div>In a future release, we may need to consider implementing support for accepting RA from service providers' upstream routers on the qg-xxxx interface, but whether we allow a SLAAC address on the external gateway port needs further discussion (perhaps a topic for the IPv6 sub-team IRC). SLAAC requires a /64 subnet which might be considered a bit of overkill for what's typically a point-to-point connection. Let's see about adding it to the topics to discuss.<br>
<br></div><div>Cheers,<br></div><div>Randy<br><br>[1] <a href="https://blueprints.launchpad.net/neutron/+spec/allow-multiple-subnets-on-gateway-port">https://blueprints.launchpad.net/neutron/+spec/allow-multiple-subnets-on-gateway-port</a><br>
[2] <a href="https://blueprints.launchpad.net/neutron/+spec/dnsmasq-bind-into-qrouter-namespace">https://blueprints.launchpad.net/neutron/+spec/dnsmasq-bind-into-qrouter-namespace</a><br><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Feb 27, 2014 at 12:49 AM, Xuhan Peng <span dir="ltr"><<a href="mailto:pengxuhan@gmail.com" target="_blank">pengxuhan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<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" target="_blank">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" target="_blank">https://blueprints.launchpad.net/neutron/+spec/ipv6-lla-gua-router-interface</a></span><br>

</span></div><div><span style>[3] <a href="https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes" target="_blank">https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes</a><br></span></div><div>
<span style>[4] <a href="http://tools.ietf.org/html/rfc4861" target="_blank">http://tools.ietf.org/html/rfc4861</a></span><br clear="none"></div><span style>[5] <a href="https://review.openstack.org/#/c/56184/" target="_blank">https://review.openstack.org/#/c/56184/</a></span></div>

<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>