From owner-freebsd-net@FreeBSD.ORG Mon Aug 12 04:42:55 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5AC52AC2 for ; Mon, 12 Aug 2013 04:42:55 +0000 (UTC) (envelope-from sam.gh1986@gmail.com) Received: from mail-lb0-x230.google.com (mail-lb0-x230.google.com [IPv6:2a00:1450:4010:c04::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B71D2291E for ; Mon, 12 Aug 2013 04:42:54 +0000 (UTC) Received: by mail-lb0-f176.google.com with SMTP id w10so4388087lbi.7 for ; Sun, 11 Aug 2013 21:42:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=6oG13CT+LwXEGS4AkXgQrzcZrFA0n4Tec8bU/TYm1a0=; b=p78pJhBDlnMakcqD6f6P6jRCWyw/xHCRQaSJfuP68neVxL2/1XhqB753NJlYRg4w+F aV8O7GS8waJBgeoPrG6P+QbJjukwBVfc4opirx+no66WoFXeW7LWucOXkrbCxIO92E+u bDAmQo6sWcbE/CjtSLBxN7Wmxh8cf04o/1bA1tghc01v2wQAMwHvYFaUoeIwMg+rc8sk tTAaO3W1Bcb+ZfMByDHuLhQQh3yQ385iAehUgrZHegMtix394maYgM8Y/0rwTX1NYRsc uRh6Jk+iK0hkOxQeVkz8TdXe2uuSWqKQJfAFftAaKNQyTr1c2m51CKjZGt2jXDMv/drZ ZkWw== MIME-Version: 1.0 X-Received: by 10.112.33.146 with SMTP id r18mr8911813lbi.48.1376282572657; Sun, 11 Aug 2013 21:42:52 -0700 (PDT) Received: by 10.112.147.230 with HTTP; Sun, 11 Aug 2013 21:42:52 -0700 (PDT) In-Reply-To: References: Date: Mon, 12 Aug 2013 09:12:52 +0430 Message-ID: Subject: Re: how define network with mask 8 for dhcp server? From: s m To: Olivier Nicole Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: Olivier Nicole , FreeBSD Net , Andreas Nilsson X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 04:42:55 -0000 you're right Olivier, but you know i have a user interface for dhcp and i should handle all the network and ranges which are inserted by user and logically are true. network with mask 8, logically is true and having million available ip address, too. i just wanna know if there is any solution to improve my performance or not. thanks On Sun, Aug 11, 2013 at 3:18 PM, Olivier Nicole wrote: > Sam, > > > after understanding why dhcp server core dumps with a wide range (it > causes > > out of memory), if i limit my range it's ok. but some times user define a > > wide range for example some million available ip addresses while there is > > just some hundred client in the network. in this situation, dhcp server > use > > a lot of ram memory which is not good at all. how dhcp server acts? why > does > > it need a lot memory? is there any patch to optimize it? if not, is there > > any other any ports in freebsd to use instead and have better > performance? > > In the real life, it's very uncommon that you give millions of IP > addresses to a customer when he really needs only hundreds. If only > because you will usually charge your customers by the number of > devices on the network and most customers try to not pay in excess for > a service they will not use. > > Installing and running a DHCP server is for people who know what they > are doing, because it has strong implications on the way the network > is running, so users who install DHCP are supposed to know what they > are doing. > > It is also possible to have a centralized DHCP server that you > control, and each subnet of each customer make use of your centralized > DHCP. You can propose ways for your customers to upgrade the range for > their own subnet, but you are controlling the script they use and you > can install limitations. > > It's really useless to loose time finding some patches that would get > DHCP run for million of addresses, in real life, a network is never a > /8 but rather a /22 or less, it makes the thing manageable. > > Eventually, consider that a /8 subnet cannot be NATed, as a NAT can > only manage 2^16 connections at a given time. > > Best regards, > > Olivier > > > > > thanks in advance > > SAM > > > > > > On Wed, Aug 7, 2013 at 11:07 AM, s m wrote: > >> > >> yes, i solved my problem. > >> thanks every body for your answers. it help me a lot. > >> SAM > >> > >> > >> On Tue, Aug 6, 2013 at 2:08 PM, Andreas Nilsson > >> wrote: > >>> > >>> > >>> > >>> > >>> On Tue, Aug 6, 2013 at 11:29 AM, s m wrote: > >>>> > >>>> thanks Andreas, that's it!!! > >>>> you know i have user interface program for dhcp. users don't know how > >>>> dhcp works and just enter desired range in text box. i should handle > all > >>>> entered ranges. in order to do that, i should know how dhcp works > with all > >>>> different ranges and return errors if some ranges is not equivalent > like the > >>>> sample one. > >>> > >>> > >>> Ok. Someone more versed in debugging should probably determine if the > >>> crash is in libc or just that dhcp does not handle malloc error. > >>> > >>>> > >>>> > >>>> so. if i want to have network with mask 8, i should limit my range, > >>>> right? have you any suggestion what is the maximum range for netmask > 8? > >>>> thanks for your reply again. it clears my mind:) > >>> > >>> > >>> Exactly. > >>> > >>> I just tried > >>> 192.0.0.1-192.220.255.255 which works ( takes ~3 minutes to start, > using > >>> 4.5gb of ram ) > >>> and then > >>> 192.0.0.1-192.221.255.255 which segfaults. > >>> > >>> The machine I test on does have 16gb of ram and 16gb of swap, so there > >>> should be a lot more mem available. > >>> > >>> Best regards > >>> Andreas > >>>> > >>>> > >>>> > >>>> On Tue, Aug 6, 2013 at 1:35 PM, Andreas Nilsson > >>>> wrote: > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Tue, Aug 6, 2013 at 10:59 AM, Andreas Nilsson > > >>>>> wrote: > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Tue, Aug 6, 2013 at 10:40 AM, Olivier Nicole > >>>>>> wrote: > >>>>>>> > >>>>>>> Sam, > >>>>>>> > >>>>>>> > my problem is to know how define a network with mask 8 and dhcp > >>>>>>> > server > >>>>>>> > works correctly with it! you know if i config my dhcpd.conf like > >>>>>>> > below, i > >>>>>>> > have core dump either: > >>>>>>> > subnet 10.0.0.0 netmask 255.0.0.0 > >>>>>>> > { > >>>>>>> > range 10.0.0.1 10.255.255.254; > >>>>>>> > } > >>>>>>> > > >>>>>>> > do you know how should i define my range ?? > >>>>>>> > >>>>>>> The reason may be that 2^24 machines in a subnet is such a > non-sense > >>>>>>> that dhcp simply cannot manage it. > >>>>>>> > >>>>>>> Best regards, > >>>>>>> > >>>>>>> Olivier > >>>>>>> > >>>>>>> > > >>>>>>> > On Tue, Aug 6, 2013 at 12:23 PM, Olivier Nicole > >>>>>>> > >>>>>>> >> wrote: > >>>>>>> > > >>>>>>> >> Sam, > >>>>>>> >> > >>>>>>> >> > subnet 192.0.0.0 netmask 255.0.0.0 > >>>>>>> >> > >>>>>>> >> I know it is not the answer to your question, but you are wrong > in > >>>>>>> >> your > >>>>>>> >> guess that 192.0.0.0/8 is all private IPs. Only 192.168.0.0/16is. > >>>>>>> >> > >>>>>>> >> I know that for certain because my own IP starts with 192. > >>>>>>> >> > >>>>>>> >> If you want a full /8 private, you can only use 10.0.0.0/8 > >>>>>>> >> > >>>>>>> >> Bets regards, > >>>>>>> >> > >>>>>>> >> Olivier > >>>>>>> >> > >>>>>>> >> -- > >>>>>>> >> > >>>>>>> > >>>>>> > >>>>>> Well, I would guess it may run out of memory... I did a few tests: > >>>>>> 192.0.0.0 - 192.128.255.255 does work ( using ~2.5Gb RAM ). > >>>>>> 192.0.0.0 - 192.192.255.255 does work ( using ~4Gb RAM ). > >>>>>> 192.0.0.0 - 192.200.255.255 does work ( using ~4.2Gb RAM ). > >>>>>> 192.0.0.0 - 192.224.255.255 dumps core > >>>>>> > >>>>>> Why would you want to have such a huge range? > >>>>>> > >>>>>> Best regards > >>>>>> Andreas > >>>>> > >>>>> > >>>>> Also, a quick look at the core file gives same indications: > >>>>> #0 0x0000000800c67a21 in _malloc_prefork () from /lib/libc.so.7 > >>>>> #1 0x0000000800c6b72a in malloc () from /lib/libc.so.7 > >>>>> #2 0x000000000047b43b in omapi_object_dereference () > >>>>> #3 0x00000000004844db in do_ip4_hash () > >>>>> #4 0x0000000000484571 in do_ip4_hash () > >>>>> #5 0x0000000000438a45 in pool_timer () > >>>>> #6 0x000000000041dcd7 in trace_conf_stop () > >>>>> #7 0x000000000041fc4e in trace_conf_stop () > >>>>> #8 0x0000000000420698 in trace_conf_stop () > >>>>> #9 0x0000000000420ecc in trace_conf_stop () > >>>>> #10 0x0000000000420197 in trace_conf_stop () > >>>>> #11 0x00000000004247f3 in trace_conf_stop () > >>>>> #12 0x000000000041f210 in trace_conf_stop () > >>>>> #13 0x000000000040f3bf in lease_pinged () > >>>>> #14 0x000000000040d451 in ?? () > >>>>> #15 0x00000008007d7000 in ?? () > >>>>> #16 0x0000000000000000 in ?? () > >>>>> > >>>>> Best regards > >>>>> Andreas > >>>>> > >>>> > >>> > >> > > >