Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 1699332

Summary: RFE: OVN: add RDNSS support (RFC 6106)
Product: Red Hat Enterprise Linux Fast Datapath Reporter: lorenzo bianconi <lorenzo.bianconi>
Component: ovn2.11Assignee: lorenzo bianconi <lorenzo.bianconi>
Status: CLOSED ERRATA QA Contact: Jianlin Shi <jishi>
Severity: low Docs Contact:
Priority: low    
Version: FDP 19.CCC: atragler, ctrautma, jishi, kfida, nusiddiq
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn2.11-2.11.1-9.el7fdn Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-01-21 17:02:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description lorenzo bianconi 2019-04-12 12:48:03 UTC
Description of problem:


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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 3 haidong li 2019-04-15 03:29:09 UTC
Hi Lorenzo, I think this option is for ipv6 RA,is it correct?And can you please show how to configure this option when it is supported in OVN? Thanks a lot!

Comment 4 lorenzo bianconi 2019-10-29 07:37:55 UTC
upstream commit: https://github.com/ovn-org/ovn/commit/fd8175f3e6b1d2b17521ab7bee3c86a6b5c20cc7

Comment 6 Jianlin Shi 2019-12-30 08:54:14 UTC
Verified on ovn2.12-2.12.0-19.el8fdp.x86_64:

setup on server:

[root@dell-per740-12 bz1699332]# bash -x setup.sh                                                                                                                                                  [12/1154]
+ systemctl start openvswitch                                             
+ systemctl start ovn-northd                                              
+ ovn-nbctl set-connection ptcp:6641                                                
+ ovn-sbctl set-connection ptcp:6642                                                       
+ ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.30.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.30.25                                      
+ systemctl restart ovn-controller          
+ ip netns add server0                                    
+ ip link add veth0_s0 netns server0 type veth peer name veth0_s0_p
+ ip netns exec server0 ip link set lo up 
+ ip netns exec server0 ip link set veth0_s0 up
+ ip netns exec server0 ip link set veth0_s0 address 00:00:00:01:01:02
+ ip netns exec server0 ip addr add 192.168.1.1/24 dev veth0_s0                                                                                                                                            
+ ovs-vsctl add-port br-int veth0_s0_p   
+ ip link set veth0_s0_p up  
+ ovs-vsctl set interface veth0_s0_p external_ids:iface-id=ls1p1
+ ovn-nbctl ls-add ls1  
+ ovn-nbctl lsp-add ls1 ls1p1
+ ovn-nbctl lsp-set-addresses ls1p1 00:00:00:01:01:02      
+ ovn-nbctl lsp-add ls1 ls1p2                     
+ ovn-nbctl lsp-set-addresses ls1p2 00:00:00:01:02:02                       
+ ovn-nbctl lr-add lr1                                                                                                                                                                                     
+ ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 aef0:0:0:0:0:0:0:1/64       
+ ovn-nbctl lsp-add ls1 ls1-lr1                                          
+ ovn-nbctl lsp-set-type ls1-lr1 router                                        
+ ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1                   
+ ovn-nbctl lsp-set-addresses ls1-lr1 00:00:00:00:00:01                       
+ ovn-nbctl lsp-add ls1 ls1p3
+ ovn-nbctl lsp-set-addresses ls1p3 00:00:00:01:03:02
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:send_periodic=true
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:address_mode=slaac
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:max_interval=4
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:min_interval=3
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:rdnss=aef0::11
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:router_preference=LOW
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:route_info=HIGH-aef1::11/48,LOW-aef2::11/96
+ ovn-nbctl list logical_router_port lr1-ls1                        
_uuid               : 8c2d593e-573a-4296-b1ae-4ab3b68d48ef
enabled             : []               
external_ids        : {}               
gateway_chassis     : []                             
ha_chassis_group    : []       
ipv6_ra_configs     : {address_mode=slaac, max_interval="4", min_interval="3", rdnss="aef0::11", route_info="HIGH-aef1::11/48,LOW-aef2::11/96", router_preference=LOW, send_periodic="true"}
mac                 : "00:00:00:00:00:01"
name                : lr1-ls1
networks            : ["aef0:0:0:0:0:0:0:1/64"]
options             : {}
peer                : []

[root@dell-per740-12 bz1699332]# rpm -qa | grep -E "openvswitch|ovn"
ovn2.12-host-2.12.0-19.el8fdp.x86_64
ovn2.12-central-2.12.0-19.el8fdp.x86_64
openvswitch2.12-2.12.0-12.el8fdp.x86_64
openvswitch-selinux-extra-policy-1.0-19.el8fdp.noarch
ovn2.12-2.12.0-19.el8fdp.x86_64


setup on client:
   
start ovn-controller:
                                                                                                                                                                           
[root@hp-dl380pg8-12 bz1779124]# bash -x setup.sh                    
+ systemctl start openvswitch                                      
+ ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:20.0.30.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.30.26
+ systemctl restart ovn-controller                                                                   
+ ip netns add client0                                                                                                                         
+ ip link add veth0_c0 netns client0 type veth peer name veth0_c0_p                                                                                                                                         
+ ip netns exec client0 ip link set lo up                                                            
+ ip netns exec client0 ip link set veth0_c0 up                                                                                                                                                             
+ ip netns exec client0 ip link set veth0_c0 address 00:00:00:01:02:02               
+ ip netns exec client0 ip addr add 192.168.1.2/24 dev veth0_c0                                                                                                                                             
+ ovs-vsctl add-port br-int veth0_c0_p                                                                                                                                                                      
+ ip link set veth0_c0_p up                                                                                                                                                                                 
+ ovs-vsctl set interface veth0_c0_p external_ids:iface-id=ls1p2

start vm and add interface to ovn:

[root@hp-dl380pg8-12 bz1779124]# virt-install --name $vm1 --vcpus=2 --ram=2048 --disk path=/var/lib/libvirt/images/$vm1.qcow2,device=disk,bus=virtio,format=qcow2 --network bridge=virbr0,model=virtio --boo
t hd --accelerate --graphics vnc,listen=0.0.0.0 --force --os-type=linux --noautoconsol

[root@hp-dl380pg8-12 bz1779124]# cat vm1.xml
<interface type='bridge'>
                                <target dev='vm1'/>
                                <mac address='00:00:00:01:03:02'/>
                                <source bridge='br-int'/>
                                <virtualport type='openvswitch'/>
                                <model type='virtio'/>
                        </interface>

[root@hp-dl380pg8-12 bz1779124]# virsh attach-device vm1 vm1.xml

[root@hp-dl380pg8-12 bz1779124]# ovs-vsctl set interface vm1 external_ids:iface-id=ls1p3


setup on vm1 on client:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
IPV6INIT="yes"
NETBOOT=yes

result:

[root@localhost ~]# ip -6 r
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
aef0::/64 dev eth1 proto ra metric 101 pref medium
aef1::/48 via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref high
aef2::/96 via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref low

<=== route info

fe80::/64 dev eth1 proto kernel metric 101 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref low

<=== router_preference

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.122.1
nameserver aef0::11

<=== rdnss

[root@localhost ~]# ip addr sh eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:00:00:01:03:02 brd ff:ff:ff:ff:ff:ff
    inet6 aef0::200:ff:fe01:302/64 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::200:ff:fe01:302/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

rdnss, router preference and route info work well

Comment 7 Jianlin Shi 2019-12-30 09:04:37 UTC
Verified on ovn2.11-2.11.1-24.el8fdp.x86_64:

[root@dell-per740-12 bz1699332]# rpm -qa | grep -E "openvswitch|ovn"
ovn2.11-host-2.11.1-24.el8fdp.x86_64
ovn2.11-central-2.11.1-24.el8fdp.x86_64
openvswitch2.11-2.11.0-35.el8fdp.x86_64
openvswitch-selinux-extra-policy-1.0-19.el8fdp.noarch
ovn2.11-2.11.1-24.el8fdp.x86_64

[root@dell-per740-12 bz1699332]# bash -x setup.sh                                                                                                                                                  [17/1288]
+ systemctl start openvswitch                                             
+ systemctl start ovn-northd                                              
+ ovn-nbctl set-connection ptcp:6641                                                
+ ovn-sbctl set-connection ptcp:6642                                                       
+ ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.30.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.30.25
+ systemctl restart ovn-controller                                                                                                                                                                         
+ ip netns add server0                      
+ ip link add veth0_s0 netns server0 type veth peer name veth0_s0_p
+ ip netns exec server0 ip link set lo up
+ ip netns exec server0 ip link set veth0_s0 up
+ ip netns exec server0 ip link set veth0_s0 address 00:00:00:01:01:02
+ ip netns exec server0 ip addr add 192.168.1.1/24 dev veth0_s0
+ ovs-vsctl add-port br-int veth0_s0_p                                                                                                                                                                      
+ ip link set veth0_s0_p up              
+ ovs-vsctl set interface veth0_s0_p external_ids:iface-id=ls1p1
+ ovn-nbctl ls-add ls1                         
+ ovn-nbctl lsp-add ls1 ls1p1
+ ovn-nbctl lsp-set-addresses ls1p1 00:00:00:01:01:02
+ ovn-nbctl lsp-add ls1 ls1p2                                              
+ ovn-nbctl lsp-set-addresses ls1p2 00:00:00:01:02:02     
+ ovn-nbctl lr-add lr1  
+ ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 aef0:0:0:0:0:0:0:1/64
+ ovn-nbctl lsp-add ls1 ls1-lr1 
+ ovn-nbctl lsp-set-type ls1-lr1 router
+ ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1                                                                                                                                                     
+ ovn-nbctl lsp-set-addresses ls1-lr1 00:00:00:00:00:01
+ ovn-nbctl lsp-add ls1 ls1p3  
+ ovn-nbctl lsp-set-addresses ls1p3 00:00:00:01:03:02
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:send_periodic=true
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:address_mode=slaac
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:max_interval=4    
+ ovn-nbctl set Logical_Router_Port lr1-ls1 ipv6_ra_configs:min_interval=3
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:rdnss=aef0::11
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:router_preference=LOW
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:dnssl=aa.bb.cc
+ ovn-nbctl --wait=hv set Logical_Router_port lr1-ls1 ipv6_ra_configs:route_info=HIGH-aef1::11/48,LOW-aef2::11/96
+ ovn-nbctl list logical_router_port lr1-ls1
_uuid               : 8b896ccb-e307-42e2-b172-83ab288e9559
enabled             : []
external_ids        : {}
gateway_chassis     : []                                            
ha_chassis_group    : []            
ipv6_ra_configs     : {address_mode=slaac, dnssl=aa.bb.cc, max_interval="4", min_interval="3", rdnss="aef0::11", route_info="HIGH-aef1::11/48,LOW-aef2::11/96", router_preference=LOW, send_periodic="true"}
mac                 : "00:00:00:00:00:01"
name                : "lr1-ls1"                      
networks            : ["aef0:0:0:0:0:0:0:1/64"]
options             : {}        
peer                : []

result on vm1 on client:

[root@localhost ~]# ip addr sh eth1 
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:00:00:01:03:02 brd ff:ff:ff:ff:ff:ff
    inet6 aef0::200:ff:fe01:302/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::200:ff:fe01:302/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip -6 r
aef0::/64 dev eth1 proto ra metric 101 pref medium
aef1::/48 via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref high
aef2::/96 via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref low

<=== route info

fe80::/64 dev eth1 proto kernel metric 101 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::200:ff:fe00:1 dev eth1 proto ra metric 101 pref low

<== router preference

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search aa.bb.cc aa

<=== dnssl, should be aa.bb.cc

nameserver 192.168.122.1
nameserver aef0::11

<=== rdnss

Comment 9 errata-xmlrpc 2020-01-21 17:02:44 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, and where to find the updated
files, follow the link below.

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

https://access.redhat.com/errata/RHBA-2020:0190