Bug 1699332 - RFE: OVN: add RDNSS support (RFC 6106)
Summary: RFE: OVN: add RDNSS support (RFC 6106)
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: ovn2.11
Version: FDP 19.C
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: ---
: ---
Assignee: lorenzo bianconi
QA Contact: Jianlin Shi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-04-12 12:48 UTC by lorenzo bianconi
Modified: 2020-01-21 17:02 UTC (History)
5 users (show)

Fixed In Version: ovn2.11-2.11.1-9.el7fdn
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-01-21 17:02:44 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2020:0190 0 None None None 2020-01-21 17:02:56 UTC

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


Note You need to log in before you can comment on or make changes to this bug.