[Kea-users] Running perfDHCP with interface in a bridge

Marcin Siodelski marcin at isc.org
Tue Jun 2 19:25:11 UTC 2015


I am glad that it works for you. What has changed in your setup that it
started to work? Did you use different port as I suggested?

Marcin

On 02.06.2015 21:09, Vikram Hosakote (vhosakot) wrote:
> Hi Marcin,
> 
> Hope you are doing good, and hope you enjoyed your conference!
> 
> Thanks for your reply! Very sorry for my reply. 
> 
> Just wanted to let you know that perfdhcp is working perfectly fine for
> me :)
> 
> I am running the following command.
> 
> sudo ip netns exec test-namespace /usr/local/sbin/perfdhcp -4 -b
> mac=fa:16:00:00:00:00 -r 50 -R 50 -p 120 -l tapfce197b0-d5
> 
> Thanks a lot for all your help!
> 
> Regards,
> Vikram Hosakote
> OpenStack Software Engineer    |    vhosakot at cisco.com
> Cloud and Virtualization Group  |    Cisco System
> 
> From: Marcin Siodelski <marcin at isc.org <mailto:marcin at isc.org>>
> Date: Tuesday, March 24, 2015 at 5:40 PM
> To: Vikram Hosakote <vhosakot at cisco.com <mailto:vhosakot at cisco.com>>,
> "kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>"
> <kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>>
> Subject: Re: [Kea-users] Running perfDHCP with interface in a bridge
> 
> Hi Vikram,
> 
> I am currently on the conference and I will not have much time to focus
> on that issue during this week.
> 
> I just had quick reading of it. From the server's standpoint the
> perfdhcp acts as a relay agent and it works on the same port 67 as the
> server. Binding both perfdhcp and the server to the same port on the
> same interface results in a conflict and I presume this is why the
> perfdhcp refuses to bind. It would be actually good if you could turn
> the server off and rerun perfdhcp and see if it overcomes the "bind"
> error. Obviously the perfdhcp will get no responses because the server
> is down, but it would be a proof for me that this is a conflict between
> the server and perfdhcp being bound to the same port.
> 
> Once you use the -L parameter and set a different local port for
> perfdhcp there is no conflict anymore and it seems to work. But, in this
> case the server receives the queries from perfdhcp from a different port
> than standard DHCP port, in which case the server may either drop them
> or may respond to port 67 which perfdhcp is not listening on.
> 
> Do you have any packet capture to see if the server is actually
> responding? Do you know if dnsmasq responds to the port other than 67 or
> 68, if it receives the message from such port?
> 
> From the reading of
> http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
> 
> it may be possible to change the default ports using the
> "--dhcp-alternate-port" parameter.
> 
> Marcin
> 
> On 2015-03-23 20:56, Vikram Hosakote (vhosakot) wrote:
> 
>     Hi Marcin,
> 
>     Hope you are doing good!
> 
>     I have two tap interfaces inside a namespace, and the DHCP server
>     (dnsmasq)
>     30.30.30.3 is running on tap05f30e85-d2 listening on the DHCP server UDP
>     port 67.
> 
>     Below are the IP addresses of the two tap interfaces inside the
>     namespace
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be.
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be ip a
>     21: tap05f30e85-d2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
>     noqueue state UNKNOWN
>           link/ether fa:16:3e:25:71:de brd ff:ff:ff:ff:ff:ff
>           inet 30.30.30.3/24 brd 30.30.30.255 scope global tap05f30e85-d2
>           inet6 fe80::f816:3eff:fe25:71de/64 scope link
>     22: tap883a32b1-77: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
>     noqueue state UNKNOWN
>           link/ether fa:16:3e:6e:90:e7 brd ff:ff:ff:ff:ff:ff
>           inet 30.30.30.101/24 brd 30.30.30.255 scope global tap883a32b1-77
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be ifconfig -a
>     tap05f30e85-d2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>               inet 30.30.30.3  netmask 255.255.255.0  broadcast 30.30.30.255
>               inet6 fe80::f816:3eff:fe25:71de  prefixlen 64  scopeid
>     0x20<link>
>               ether fa:16:3e:25:71:de  txqueuelen 0  (Ethernet)
>               RX packets 105  bytes 27577 (26.9 KiB)
>               RX errors 0  dropped 0  overruns 0  frame 0
>               TX packets 42  bytes 6301 (6.1 KiB)
>               TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>     tap883a32b1-77: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>               inet 30.30.30.101  netmask 255.255.255.0  broadcast
>     30.30.30.255
>               ether fa:16:3e:6e:90:e7  txqueuelen 0  (Ethernet)
>               RX packets 36  bytes 5793 (5.6 KiB)
>               RX errors 0  dropped 0  overruns 0  frame 0
>               TX packets 110  bytes 27995 (27.3 KiB)
>               TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
> 
>     Below is the DHCP server (dnsmasq) 30.30.30.3 running on tap05f30e85-d2
>     listening on the DHCP server UDP port 67.
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be netstat -pan | grep 67
>     udp        0      0 0.0.0.0:67              0.0.0.0:*
>               18837/dnsmasq
> 
>     I ran perfdhcp inside the namespace
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be
>     to simulate DHCP clients in order to receive DHCP responses from the
>     DHCP server
>     (30.30.30.3 running on tap05f30e85-d2 listening on the DHCP server UDP
>     port 67).
> 
>     But, I keep seeing the errors below. When I use the non-default local
>     DHCP port
>     (-L 10067), I don’t see any errors, but I don’t see any responses from
>     the DHCP server (dnsmasq).
> 
>     Could you please let me know what I am missing. I am using the latest
>     version of
>     perfdhcp (0.9.1-beta). Thanks a lot!
> 
>     ********************************
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 30.30.30.3
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 30.30.30.3
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     server=30.30.30.3
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca3170a000c01020304
>     Error running perfdhcp: Failed to bind socket 3 to 30.30.30.3/port=67
> 
>     ********************************
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l tap883a32b1-77 30.30.30.3
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l
>     tap883a32b1-77 30.30.30.3
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     interface=tap883a32b1-77
>     server=30.30.30.3
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca3171a000c01020304
>     Error running perfdhcp: Failed to bind socket 3 to 30.30.30.101/port=67
> 
>     ********************************
> 
>     The following works but I see no responses from the DHCP server
>     30.30.30.3 (dnsmasq).
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l tap883a32b1-77 -L 10067 30.30.30.3
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l
>     tap883a32b1-77 -L 10067 30.30.30.3
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     local-port=10067
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     interface=tap883a32b1-77
>     server=30.30.30.3
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31722000c01020304
>     ^CFailed to receive DHCPv4 packet: Interrupted system call
>     ***Rate statistics***
>     Rate: 0 exchanges/second, expected rate: 1 exchanges/second
> 
>     ***Statistics for: DISCOVER-OFFER***
>     sent packets: 3
>     received packets: 0
>     drops: 3
> 
>     Delay summary unavailable! No packets received.
> 
>     ***Statistics for: REQUEST-ACK***
>     sent packets: 0
>     received packets: 0
>     drops: 0
> 
>     Delay summary unavailable! No packets received.
> 
>     ********************************
> 
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 all
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 all
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     broadcast
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     server=255.255.255.255
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31739000c01020304
>     Error running perfdhcp: failed to connect to remote endpoint.
> 
>     ********************************
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l tap883a32b1-77 all
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l
>     tap883a32b1-77 all
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     broadcast
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     interface=tap883a32b1-77
>     server=255.255.255.255
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31756000c01020304
>     Error running perfdhcp: Failed to bind socket 3 to 30.30.30.101/port=67
> 
>     ********************************
> 
>     The following works but I see no responses from the DHCP server
>     30.30.30.3 (dnsmasq).
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l tap883a32b1-77 -L 10067 all
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l
>     tap883a32b1-77 -L 10067 all
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     local-port=10067
>     broadcast
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     interface=tap883a32b1-77
>     server=255.255.255.255
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca3175b000c01020304
> 
>     ^CFailed to receive DHCPv4 packet: Interrupted system call
>     ***Rate statistics***
>     Rate: 0 exchanges/second, expected rate: 1 exchanges/second
> 
>     ***Statistics for: DISCOVER-OFFER***
>     sent packets: 2
>     received packets: 0
>     drops: 2
> 
>     Delay summary unavailable! No packets received.
> 
>     ***Statistics for: REQUEST-ACK***
>     sent packets: 0
>     received packets: 0
>     drops: 0
> 
>     Delay summary unavailable! No packets received.
> 
>     ********************************
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 all
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 all
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     broadcast
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     server=255.255.255.255
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca3176f000c01020304
>     Error running perfdhcp: failed to connect to remote endpoint.
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 30.30.30.3
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 30.30.30.3
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     server=30.30.30.3
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31778000c01020304
>     Error running perfdhcp: Failed to bind socket 3 to 30.30.30.3/port=67
> 
>     ********************************
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l tap883a32b1-77
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -l
>     tap883a32b1-77
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     broadcast
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     interface=tap883a32b1-77
>     server=255.255.255.255
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31907000c01020304
>     Error running perfdhcp: Failed to bind socket 3 to 30.30.30.101/port=67
> 
>     ********************************
> 
>     The following works but I see no responses from the DHCP server
>     30.30.30.3 (dnsmasq).
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]# sudo ip netns exec
>     qdhcp-9a5bcbe7-7f29-4eab-9296-207ea3a6b1be /usr/local/sbin/perfdhcp -x a
>     -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -L 10067 30.30.30.3
>     Running: perfdhcp -x a -4 -b mac=fa:16:3e:6e:90:e7 -r 1 -L 10067
>     30.30.30.3
>     IPv4
>     lease-type=address-only (IA_NA option added to the client's request)
>     rate[1/s]=1
>     base[0]=mac=fa:16:3e:6e:90:e7
>     drop-time[0]=1
>     drop-time[1]=1
>     aggressivity=1
>     local-port=10067
>     elp-offset=-1
>     sid-offset=-1
>     rip-offset=-1
>     diagnostic-selectors=a
>     server=30.30.30.3
>     Set MAC to fa::16::3e::6e::90::e7
>     Set DUID to 000100011ca31937000c01020304
>     ^CFailed to receive DHCPv4 packet: Interrupted system call
>     ***Rate statistics***
>     Rate: 0 exchanges/second, expected rate: 1 exchanges/second
> 
>     ***Statistics for: DISCOVER-OFFER***
>     sent packets: 4
>     received packets: 0
>     drops: 4
> 
>     Delay summary unavailable! No packets received.
> 
>     ***Statistics for: REQUEST-ACK***
>     sent packets: 0
>     received packets: 0
>     drops: 0
> 
>     Delay summary unavailable! No packets received.
> 
>     [root at controller DHCP_CPNR_dev(keystone_admin)]#
> 
>     Regards,
>     Vikram Hosakote
>     OpenStack Software Engineer    |    vhosakot at cisco.com
>     <mailto:vhosakot at cisco.com>
>     Cloud and Virtualization Group  |    Cisco System
> 
>     From: Vikram Hosakote <vhosakot at cisco.com
>     <mailto:vhosakot at cisco.com> <mailto:vhosakot at cisco.com>>
>     Date: Friday, March 6, 2015 at 1:50 PM
>     To: Marcin Siodelski <marcin at isc.org <mailto:marcin at isc.org>
>     <mailto:marcin at isc.org>>,
>     "kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>
>     <mailto:kea-users at lists.isc.org>"
>     <kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>
>     <mailto:kea-users at lists.isc.org>>
>     Subject: Re: [Kea-users] Running perfDHCP with interface in a bridge
> 
>     Hi Marcin,
> 
>     Firstly, thanks a lot for your reply :) I thought I would never get a
>     reply as I got
>     an email saying that my email will be held until the list moderator
>     approves it
>     as I am not a member of kea-users at lists.isc.org
>     <mailto:kea-users at lists.isc.org>
>     <mailto:kea-users at lists.isc.org>. How did you see my email ? :)
>     Looks like the list moderator approved my email. Thanks to the list
>     moderator
>     as well :)
> 
>     Secondly, thanks for the info. Sure, I will run perfDHCP with a tap
>     interface in a
>     bridge, and will let you know if I see any issues.
> 
>     Thanks again!
> 
>     The very reason humans have been successful is because they help,
>     and they
>     help strangers.
> 
>     Regards,
>     Vikram Hosakote
>     OpenStack Software Engineer    | vhosakot at cisco.com
>     <mailto:vhosakot at cisco.com>
>     <mailto:vhosakot at cisco.com>
>     Cloud and Virtualization Group  |    Cisco Systems
> 
>     From: Marcin Siodelski <marcin at isc.org <mailto:marcin at isc.org>
>     <mailto:marcin at isc.org>>
>     Date: Friday, March 6, 2015 at 7:16 AM
>     To: Vikram Hosakote <vhosakot at cisco.com <mailto:vhosakot at cisco.com>
>     <mailto:vhosakot at cisco.com>>,
>     "kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>
>     <mailto:kea-users at lists.isc.org>"
>     <kea-users at lists.isc.org <mailto:kea-users at lists.isc.org>
>     <mailto:kea-users at lists.isc.org>>
>     Subject: Re: [Kea-users] Running perfDHCP with interface in a bridge
> 
>     Hi Vikram,
> 
>     On 03/05/15 23:26, Vikram Hosakote (vhosakot) wrote:
> 
>          Hi,
>          We are using perfDHCP to scale DHCP, and found the following
>     link that
>          says "perfdhcp does not seem to run if perfdhcp boxes have multiple
>          bridge
>          interfaces”. Is this true ?
>          Please search “bridge” in the following link.
>          http://lost-and-found-narihiro.blogspot.com/2013_04_01_archive.html
> 
> 
>     AFAIK, the use of multiple bridge interfaces shouldn't cause any issues
>     for perfdhcp. From this blog I don't exactly know what the problem could
>     have been. The error message is cryptic but it doesn't seem to be
>     related to the fact that the "eth1" interface wasn't not supported.
> 
>     I was recently using the perfdhcp on CentOS and didn't observe those
>     issues.
> 
>     Please note that the latest version of perfdhcp is available with the
>     Kea DHCP server 0.9.1-beta version, released on February 18th. I
>     recommend to use this version. The versions shipped with BIND10 is old
>     and there have been some improvements and fixes since then.
> 
>     Useful links:
>     http://ftp.isc.org/isc/kea/
>     http://kea.isc.org/wiki
> 
> 
>          We would like to use perfDHCP with tap interfaces part of a bridge.
>          Is this
>          possible ? Can we run perfDHCP by passing a tap interface part of a
>          bridge
>          to the -l argument ?
> 
> 
>     I don't see why this wouldn't work. It would be best if you could try
>     running perfdhcp in your environment and in case you find any issues let
>     us know and we can work together to reproduce the problem.
> 
>     Marcin Siodelski
>     DHCP Software Engineer @ ISC
> 
> 
> 



More information about the Kea-users mailing list