Bug 1641740

Summary: [RFE] Support DHCP Option 252 in OVN Native DHCP
Product: Red Hat Enterprise Linux 7 Reporter: Timothy Redaelli <tredaelli>
Component: openvswitch2.10Assignee: Timothy Redaelli <tredaelli>
Status: CLOSED ERRATA QA Contact: haidong li <haili>
Severity: unspecified Docs Contact: Ioanna Gkioka <igkioka>
Priority: unspecified    
Version: 7.7CC: aaustin, amuller, apevec, atelang, atragler, chrisw, dmaley, ekuris, haili, igkioka, juvillar, kfida, mmichels, qding, rhos-maint, rzaleski, srevivo, tredaelli, wlehman
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openvswitch2.10-2.10.0-20.el7fdn Doc Type: Enhancement
Doc Text:
With this update, a support for the Dynamic Host Configuration Protocol (DHCP) option, 252, has been added in Open Virtual Network (OVN) Native DHCP.
Story Points: ---
Clone Of: 1613513
: 1641765 (view as bug list) Environment:
Last Closed: 2018-11-05 14:52:25 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:
Bug Depends On:    
Bug Blocks: 1641765    

Description Timothy Redaelli 2018-10-22 15:25:18 UTC
+++ This bug was initially created as a clone of Bug #1613513 +++

Description of problem:

A customer is looking to move from ML2/OVS in their current deployment to OVN in a new OSP13 deployment. They currently use dnsmasq settings to pass DHCP option 252 (WPAD) to their clients for site-specific proxy configuration. Option 252 is not currently configured as a supported option by ovn-northd.

This RFE is to add support for option 252 to ovn-northd to be used in conjunction with another RFE for Neutron's networking-ovn module.

--- Additional comment from Mark Michelson on 2018-08-15 22:58:12 CEST ---

I have added this to the OVN Trello board. I will update this when the feature is finished.

--- Additional comment from Mark Michelson on 2018-08-21 14:20:03 CEST ---

I have submitted a patch upstream for this feature: https://patchwork.ozlabs.org/patch/959947/

I am placing this issue in the POST state.

Comment 5 haidong li 2018-11-01 03:13:11 UTC
[root@hp-dl380pg8-05 images]# ovn-nbctl list DHCP_Options
 _uuid               : 6cf6faa7-31bb-4a9e-b232-85774cdc2835
 cidr                : "172.16.102.0/24"
 external_ids        : {}
 options             : {dns_server="172.16.102.254", lease_time="3600", router="172.16.102.254", server_id="172.16.102.254", server_mac="00:de:ad:ff:01:02", wpad="https://example.org"}
[root@hp-dl380pg8-05 images]#
captured the dhcp ack packet:
Frame 2: 345 bytes on wire (2760 bits), 345 bytes captured (2760 bits)
    Encapsulation type: Ethernet (1)
    Arrival Time: Oct 22, 2018 23:02:19.964465000 EDT
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1540263739.964465000 seconds
    [Time delta from previous captured frame: 0.000820000 seconds]
    [Time delta from previous displayed frame: 0.000820000 seconds]
    [Time since reference or first frame: 0.000820000 seconds]
    Frame Number: 2
    Frame Length: 345 bytes (2760 bits)
    Capture Length: 345 bytes (2760 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ip:udp:bootp]
Ethernet II, Src: 00e:ad:ff:01:02 (00e:ad:ff:01:02), Dst: 00:00:00_01:01:01 (00:00:00:01:01:01)
    Destination: 00:00:00_01:01:01 (00:00:00:01:01:01)
        Address: 00:00:00_01:01:01 (00:00:00:01:01:01)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Source: 00e:ad:ff:01:02 (00e:ad:ff:01:02)
        Address: 00e:ad:ff:01:02 (00e:ad:ff:01:02)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IP (0x0800)
Internet Protocol Version 4, Src: 172.16.102.254 (172.16.102.254), Dst: 172.16.102.10 (172.16.102.10)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x10 (DSCP 0x04: Unknown DSCP; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
        0001 00.. = Differentiated Services Codepoint: Unknown (0x04)
        .... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)
    Total Length: 331
    Identification: 0x0000 (0)
    Flags: 0x00
        0... .... = Reserved bit: Not set
        .0.. .... = Don't fragment: Not set
        ..0. .... = More fragments: Not set
    Fragment offset: 0
    Time to live: 128
    Protocol: UDP (17)
    Header checksum: 0x1469 [validation disabled]
        [Good: False]
        [Bad: False]
    Source: 172.16.102.254 (172.16.102.254)
    Destination: 172.16.102.10 (172.16.102.10)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
    Source port: bootps (67)
    Destination port: bootpc (68)
    Length: 311
    Checksum: 0x0000 (none)
        [Good Checksum: False]
        [Bad Checksum: False]
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet (0x01)
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x1a9d414d
    Seconds elapsed: 0
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 172.16.102.10 (172.16.102.10)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: 00:00:00_01:01:01 (00:00:00:01:01:01)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (53) DHCP Message Type
        Length: 1
        DHCP: ACK (5)
    Option: (6) Domain Name Server
        Length: 4
        Domain Name Server: 172.16.102.254 (172.16.102.254)
    Option: (51) IP Address Lease Time
        Length: 4
        IP Address Lease Time: (3600s) 1 hour
    Option: (1) Subnet Mask
        Length: 4
        Subnet Mask: 255.255.255.0 (255.255.255.0)
    Option: (3) Router
        Length: 4
        Router: 172.16.102.254 (172.16.102.254)
    Option: (54) DHCP Server Identifier
        Length: 4
        DHCP Server Identifier: 172.16.102.254 (172.16.102.254)
    Option: (252) Private/Proxy autodiscovery
        Length: 19
        Private/Proxy autodiscovery: https://example.org
    Option: (0) Padding
        Padding: 00000000
    Option: (255) End
        Option End: 255
    Padding
[root@localhost dhclient]# cat dhclient.leases
lease {
  interface "eth0";
  fixed-address 192.168.122.192;
  option subnet-mask 255.255.255.0;
  option routers 192.168.122.1;
  option dhcp-lease-time 3600;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.122.1;
  option dhcp-server-identifier 192.168.122.1;
  option dhcp-renewal-time 1800;
  option broadcast-address 192.168.122.255;
  option dhcp-rebinding-time 3150;
  renew 2 2018/10/23 08:55:45;
  rebind 2 2018/10/23 09:22:25;
  expire 2 2018/10/23 09:29:55;
}
lease {
  interface "eth1";
  fixed-address 172.16.102.10;
  option subnet-mask 255.255.255.0;
  option unknown-252 "https://example.org";
  option dhcp-lease-time 3600;
  option routers 172.16.102.254;
  option dhcp-message-type 5;
  option domain-name-servers 172.16.102.254;
  option dhcp-server-identifier 172.16.102.254;
  renew 2 2018/10/23 09:01:57;
  rebind 2 2018/10/23 09:27:16;
  expire 2 2018/10/23 09:34:46;
}

Comment 7 errata-xmlrpc 2018-11-05 14:52:25 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-2018:3499