← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1645625] Re: [RFE] Add support active-active router

 

[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1645625

Title:
  [RFE] Add support active-active router

Status in neutron:
  Expired

Bug description:
     In current neutron reference implementation, it supports legacy
  router and DVR router. In order to archive high availability, in
  legacy router implementation, it supports HA router, and in DVR router
  implementation, it composes of two parts, one part of it is
  responsible for east-west traffic which located on computer
  node(called east-west part), the other part of it is responsible for
  north-south traffic which located on network node(called north-south
  part),the north-south already support HA.

     HA router can only support high availability,but can't support load
  balance functionality. This RFE will propose a active-active router in
  both scenarios. In DVR router implementation, since east-west part is
  distributed,this rfe only propose a active-active for north-south
  part. Active-Active router supports some kind of traffic load balance
  functionality based on five tuple(such as, source ip, destination ip,
  source port, destination port, protocol) hash. There are two key
  technical problems need to fix. 1. how to implement load balance? 2.
  how to monitor router's availability?

     Load balance method:
       Method 1: called L2 load balance, in active-active router, there are at least two namespaces will be spawned by L3_Agent in two different network nodes, from logical router model point of view, there is one router interface which has one logical port object. and from data plane point of view, there are two qr interface in two namespaces in two different network nodes. this two qr interfaces have the same IP address and MAC address. This works in VXLAN provider network, since OVS supports multipath instruction,but it don't work in VLAN provider network. since in VLAN provider network, physical switch don't support the same MAC learns from two port.
     Monitor:
       It needs a component to monitor the qr interface's availability. Maybe OVS-Agent can take this role.

       Method 2: called L3 load balance, in active-active router, there are at least two namespaces will be spawned by L3_Agent in two different network nodes, from logical router model point of view, there is one router interface which has two logical port objects. and from data plane point of view, there are two qr interface in two namespaces in two different network nodes. this two qr interfaces have different IP address and MAC address. This works in both VXLAN and VLAN provider network. But it need some changes from gateway ip properties of subnet object. Since in active-active router, actually there are at least two gateways.From routing point of view, there are multiple next-hops. In case of legacy router implementation, VMs belong to the subnet which attach to the active-active router should configure ECMP routes. In case of DVR router implementation, east-west part should configure ECMP routes.
     Monitor:
       It can deploy BFD in qrouter namespace and SNAT namespace to detect qr interface's availability in DVR implementation. But in legacy router implementation, it is still open question about how to monitor qr interface's availability. Maybe DHCP-Agent can take this role.

       For a active-active router towards external network side, it
  always connects to data center VLAN provider network, qg interfaces
  should have two different IP and MAC addresses. In this way, it needs
  to configure ECMP routes in upstream physical router. About
  monitoring, it should configure upstream physical router's monitoring
  feature.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1645625/+subscriptions


References