how define network with mask 8 for dhcp server?

s m sam.gh1986 at gmail.com
Mon Aug 12 04:42:55 UTC 2013


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 <olivier.nicole at cs.ait.ac.th
> 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 <sam.gh1986 at gmail.com> 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 <andrnils at gmail.com>
> >> wrote:
> >>>
> >>>
> >>>
> >>>
> >>> On Tue, Aug 6, 2013 at 11:29 AM, s m <sam.gh1986 at gmail.com> 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 <andrnils at gmail.com>
> >>>> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Tue, Aug 6, 2013 at 10:59 AM, Andreas Nilsson <andrnils at gmail.com
> >
> >>>>> wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Tue, Aug 6, 2013 at 10:40 AM, Olivier Nicole
> >>>>>> <olivier.nicole at cs.ait.ac.th> 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
> >>>>>>> > <Olivier.Nicole at cs.ait.ac.th
> >>>>>>> >> 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
> >>>>>
> >>>>
> >>>
> >>
> >
>


More information about the freebsd-net mailing list