Configure DVR fip router fail when l3 agent restarts and it cannot be recovered
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
New
|
Undecided
|
RaoFei |
Bug Description
* Issue Description
When creating a fip and l3 agent is restarted, if the veth devices(rtr and fip) are created but the ip addresses are not configured. it will cause the IP address cannot be configure no more, even if the l3 agent restart.
* Pre-conditions
Create a fip and the fip status is active. The external public network can access fip successfully.
* Step-by-step and Result
1. loop create and delete fip on neutron-server side.
2. loop restart l3 agent.
3. the FIP status becomes ERROR. The external public network access fip unsuccessfully.
* Version
from Juno->Latest
* Analysis
The processing of the link from rtr to fip is 1) if veth is not existed, then create it. and then configure ip addresses. 2) if veth is existed, then configure router.
if veth device is not existed:
create veth devices -------Here l3 implement stopped. the ip address are not configured
configure veth devices ip address
create router -----Here configure router failed due to no ip address on the veth interfaces
....
def create_
"""Create interface between router and Floating IP namespace."""
fip_ns_name = self.get_name()
# add link local IP to interface
if ri.rtr_fip_subnet is None:
rtr_2_fip, fip_2_rtr = ri.rtr_
ip_wrapper = ip_lib.
if not device_exists:
int_dev = ip_wrapper.
if self.agent_
# add default route for the link local interface
device = ip_lib.
#setup the NAT rules and chains
I will commit a patch for this issue. If you are also follow with interest l3-dvr, please raise your comment.