Public bug reported: 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. ** Affects: neutron Importance: Undecided Status: New ** Tags: rfe -- 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: New 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp