Bug 1898567

Summary: ovs-configuration.service fails when multiple IPv6 default routes are provided via RAs over the same interface and deployment bootstrap fails
Product: OpenShift Container Platform Reporter: OpenShift BugZilla Robot <openshift-bugzilla-robot>
Component: NetworkingAssignee: Dan Winship <danw>
Networking sub component: ovn-kubernetes QA Contact: Marius Cornea <mcornea>
Status: CLOSED ERRATA Docs Contact:
Severity: urgent    
Priority: urgent CC: aconstan, anbhat, mcornea, zzhao
Version: 4.6Keywords: TestBlocker
Target Milestone: ---   
Target Release: 4.6.z   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-12-14 13:50:58 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1896898    
Bug Blocks:    

Description OpenShift BugZilla Robot 2020-11-17 14:27:55 UTC
+++ This bug was initially created as a clone of Bug #1896898 +++

Description of problem:
ovs-configuration.service when multiple IPv6 default routes are provided via RAs

During deployment on one of the master nodes we get multiple IPv6 default routes over the same interface:

ip -6 r show default
default proto ra metric 101 
	nexthop via fe80::200:5eff:fe00:201 dev eno6 weight 1 
	nexthop via fe80::2e21:3101:b5e3:8f00 dev eno6 weight 1 
	nexthop via fe80::d207:ca01:b521:2700 dev eno6 weight 1 pref medium

Trying to run manually the /usr/local/bin/configure-ovs.sh script we can see that it cannot find the default route as it's assuming only one:

/usr/local/bin/configure-ovs.sh OVNKubernetes
+ rpm -qa
+ grep -q openvswitch
+ touch /var/run/ovs-config-executed
+ '[' OVNKubernetes == OVNKubernetes ']'
+ NM_CONN_PATH=/etc/NetworkManager/system-connections
+ iface=
+ counter=0
+ '[' 0 -lt 12 ']'
++ ip route show default
++ awk '{if ($4 == "dev") print $5; exit}'
+ iface=
+ [[ -n '' ]]
++ ip -6 route show default
++ awk '{if ($4 == "dev") print $5; exit}'
+ iface=
+ [[ -n '' ]]
+ counter=1
+ echo 'No default route found on attempt: 1'
No default route found on attempt: 1
+ sleep 5

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:

1. Deploy baremetal environment via IPI flow with IPv6 control plane. The nodes should receive multiple IPv6 default routes via RAs

Actual results:

ovs-configuration.service assumes a single IPv6 default route

Expected results:

ovs-configuration.service should handle multiple IPv6 default routes over the same interface

Additional info:

Comment 3 Anurag saxena 2020-12-10 15:02:13 UTC
Assigning to @mcornea since he verified the original bug

Comment 4 zhaozhanqi 2020-12-11 03:40:48 UTC
Verified this bug on 4.6.8

Deployed ipv6 cluster and check the ip route

ip -6 r show default
default via fe80::5054:ff:fed9:77d0 dev br-ex proto ra metric 800 pref medium

Comment 6 errata-xmlrpc 2020-12-14 13:50:58 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.6.8 security and bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.