Bug 1801258 - [RFE][OVN] OVN DHCP Server ignores DHCPINFORM messages from client
Summary: [RFE][OVN] OVN DHCP Server ignores DHCPINFORM messages from client
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: ovn2.13
Version: FDP 19.03
Hardware: All
OS: All
high
medium
Target Milestone: ---
: ---
Assignee: Numan Siddique
QA Contact: ying xu
URL:
Whiteboard:
Depends On:
Blocks: 1801734
TreeView+ depends on / blocked
 
Reported: 2020-02-10 14:23 UTC by Alex Stupnikov
Modified: 2020-08-18 11:24 UTC (History)
11 users (show)

Fixed In Version: ovn2.13-20.06.1-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1801734 (view as bug list)
Environment:
Last Closed: 2020-08-18 11:23:51 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2020:3488 0 None None None 2020-08-18 11:24:15 UTC

Description Alex Stupnikov 2020-02-10 14:23:37 UTC
Description of problem:

OVN DHCP server doesn't process DHCPINFORM packages from clients and silently drops them.

P.S. Couldn't find OVN component for RHOSP.

Comment 1 Dan Williams 2020-05-28 20:47:00 UTC
Which specific OVN RPM version is the customer using here?

Comment 8 ying xu 2020-07-14 09:28:04 UTC
create the env 
# dhcp options
                local dhcp_102=$(ovn-nbctl create DHCP_Options cidr=42.42.42.0/24 \
                        options="\"server_id\"=\"42.42.42.254\" \"server_mac\"=\"00:de:ad:ff:01:02\" \
                        \"lease_time\"=\"3600\" \"router\"=\"42.42.42.254\"")
                echo $dhcp_102

                ovn-nbctl ls-add ls
                ovn-nbctl lsp-add ls vm1
                ovn-nbctl lsp-set-addresses vm1 "00:00:00:00:00:01 42.42.42.2"
                rlRun "ovn-nbctl lsp-set-dhcpv4-options vm1 $dhcp_102"
                rlRun "ovn-nbctl lsp-get-dhcpv4-options vm1"
                ovn-nbctl lsp-add ls vm2
                ovn-nbctl lsp-set-addresses vm2 "00:00:00:00:00:02 42.42.42.3"
                rlRun "ovn-nbctl lsp-set-dhcpv4-options vm2 $dhcp_102"
                rlRun "ovn-nbctl lsp-get-dhcpv4-options vm2"

                ip netns add vm1
                ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal
                ip link set vm1 netns vm1
                ip netns exec vm1 ip link set vm1 address 00:00:00:00:00:01
                ip netns exec vm1 ip link set vm1 up
                ip netns exec vm1 ip link set lo up
                ovs-vsctl set Interface vm1 external_ids:iface-id=vm1
ip netns add vm2
                ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal
                ip link set vm2 netns vm2
                ip netns exec vm2 ip link set vm2 address 00:00:00:00:00:02
                ip netns exec vm2 ip link set vm2 up
                ip netns exec vm2 ip link set lo up
                ovs-vsctl set Interface vm2 external_ids:iface-id=vm2
ip netns exec vm1 dhclient -i vm1 
ip netns exec vm2 dhclient -i vm2

on the old version,
ovn2.13-host-2.13.0-37.el8fdp.x86_64
ovn2.13-2.13.0-37.el8fdp.x86_64
ovn2.13-central-2.13.0-37.el8fdp.x86_64

when send release to the controller from vm1:
sendp(Ether(src="00:00:00:00:00:01", dst="00:de:ad:ff:01:02")/IP(src='42.42.42.2',dst='42.42.42.254')/UDP(sport=68,dport=67)/BOOTP(ciaddr='42.42.42.2',chaddr=hw,xid=random.randint(0, 0xFFFFFFFF),)/DHCP(options=[("message-type","release"),("server_id",'42.42.42.254'),("client_id",chr(1),hw),"end"]),iface="vm1")
# cat /var/log/ovn/ovn-controller.log|grep DHCP
2020-07-14T06:28:54.799Z|00007|pinctrl(ovn_pinctrl0)|INFO|DHCPACK 00:00:00:00:00:01 42.42.42.2
2020-07-14T06:28:57.525Z|00008|pinctrl(ovn_pinctrl0)|WARN|Invalid DHCP message type: 7
2020-07-14T06:32:11.921Z|00009|pinctrl(ovn_pinctrl0)|WARN|Invalid DHCP message type: 7

when send inform to the controller from vm2:
sendp(Ether(src="00:00:00:00:00:02", dst="00:de:ad:ff:01:02")/IP(src='42.42.42.3',dst='42.42.42.254')/UDP(sport=68,dport=67)/BOOTP(ciaddr='42.42.42.3',chaddr=hw,xid=random.randint(0, 0xFFFFFFFF),)/DHCP(options=[("message-type","inform"),("server_id",'42.42.42.254'),("client_id",chr(1),hw),"end"]),iface="vm2")

# cat /var/log/ovn/ovn-controller.log|grep DHCP
2020-07-14T08:19:28.269Z|00007|pinctrl(ovn_pinctrl0)|INFO|DHCPOFFER 00:00:00:00:00:02 42.42.42.3
2020-07-14T08:19:28.269Z|00008|pinctrl(ovn_pinctrl0)|INFO|DHCPACK 00:00:00:00:00:02 42.42.42.3
2020-07-14T08:30:04.530Z|00007|pinctrl(ovn_pinctrl0)|INFO|DHCPACK 00:00:00:00:00:02 42.42.42.3
2020-07-14T08:38:03.740Z|00007|pinctrl(ovn_pinctrl0)|INFO|DHCPACK 00:00:00:00:00:02 42.42.42.3
2020-07-14T08:38:11.472Z|00008|pinctrl(ovn_pinctrl0)|WARN|Invalid DHCP message type: 8

on the latest version:
# rpm -qa|grep ovn
ovn2.13-host-20.06.1-2.el8fdp.x86_64
ovn2.13-20.06.1-2.el8fdp.x86_64
ovn2.13-central-20.06.1-2.el8fdp.x86_64

send release:
cat /var/log/ovn/ovn-controller.log|grep DHCPRELEASE'
2020-07-14T08:19:21.785Z|00007|pinctrl(ovn_pinctrl0)|INFO|DHCPRELEASE 00:00:00:00:00:01 42.42.42.2
2020-07-14T08:29:58.180Z|00008|pinctrl(ovn_pinctrl0)|INFO|DHCPRELEASE 00:00:00:00:00:01 42.42.42.2


send inform:
cat /var/log/ovn/ovn-controller.log|grep DHCPINFORM'
2020-07-14T08:42:18.096Z|00008|pinctrl(ovn_pinctrl0)|INFO|DHCPINFORM from 00:00:00:00:00:02 42.42.42.3
2020-07-14T08:47:22.758Z|00008|pinctrl(ovn_pinctrl0)|INFO|DHCPINFORM from 00:00:00:00:00:02 42.42.42.3

# tcpdump -r dhcp.pcap -nn -v
reading from file dhcp.pcap, link-type EN10MB (Ethernet)
04:58:41.540300 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 16) fe80::200:ff:fe00:2 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 16
	  source link-address option (1), length 8 (1): 00:00:00:00:00:02
04:58:44.254323 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto UDP (17), length 287)
    42.42.42.3.68 > 42.42.42.254.67: BOOTP/DHCP, Request from 00:00:00:00:00:02, length 259, xid 0xe075864f, Flags [none]
	  Client-IP 42.42.42.3
	  Client-Ethernet-Address 00:00:00:00:00:02
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Inform
	    Server-ID Option 54, length 4: 42.42.42.254
	    Client-ID Option 61, length 7: ether 00:00:00:00:00:02
04:58:44.256446 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto UDP (17), length 292)
    42.42.42.254.67 > 42.42.42.3.68: BOOTP/DHCP, Reply, length 264, xid 0xe075864f, Flags [none]
	  Client-IP 42.42.42.3
	  Client-Ethernet-Address 00:00:00:00:00:02
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: ACK
	    Default-Gateway Option 3, length 4: 42.42.42.254
	    Server-ID Option 54, length 4: 42.42.42.254

Comment 10 errata-xmlrpc 2020-08-18 11:23:51 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 (ovn2.13 bug fix and enhancement 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.

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


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