Carl Horne wrote:
Hi,

Sorry but I run into another block.  This time it's dhcpd that is having the
issue.  I hope Stuart can find an answer as fast as he did last time.  This is
the issue.  If I have 20 or less interfaces configured then dhcpd starts up as
expected.  Dhcpd listens to the carp interface carp1:.  The startup command is
"/usr/sbin/dhcpd carp1".  If I have 20 interfaces the dhcpd finds the carp1
interface and it starts up.  If I add an interface so there is 21 interfaces
the dhcpd will not startup because it can not find carp1.  If I do ifconfig -a
it lists the interfaces in some kind of order.  It seems that it uses this
order and it can only see the first 20 in the list.  The carp interfaces are
always at the bottom of the list.

Thanks,
      Carl

Dhcpd:
I build this from source because I needed USE_SOCKETS enabled.  It's version
3.0.7.  It is running in using dhcp-failover between to servers.

# uname -a
OpenBSD xxx.xxx.xxx 4.1 GENERIC.MP#1152 amd64

# ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
        groups: lo
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7
bge0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:09:3d:11:99:02
        groups: egress
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 65.44.125.14 netmask 0xffffff00 broadcast 65.44.125.255
        inet6 fe80::209:3dff:fe11:9902%bge0 prefixlen 64 scopeid 0x1
bge1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:09:3d:11:99:03
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 159.212.73.14 netmask 0xffffff80 broadcast 159.212.73.127
        inet6 fe80::209:3dff:fe11:9903%bge1 prefixlen 64 scopeid 0x2
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:04:23:ae:1a:14
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 192.168.63.56 netmask 0xffffff00 broadcast 192.168.63.255
        inet6 fe80::204:23ff:feae:1a14%em0 prefixlen 64 scopeid 0x3
em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:04:23:ae:1a:15
        media: Ethernet autoselect (none)
        status: no carrier
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192
enc0: flags=0<> mtu 1536
pfsync0: flags=0<> mtu 1460
        pfsync: syncdev: em0 syncpeer: 192.168.63.57 maxupd: 128
        groups: carp pfsync
gre1: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 159.212.48.152
        inet6 fe80::209:3dff:fe11:9902%gre1 ->  prefixlen 64 scopeid 0xb
        inet 192.168.0.1 --> 192.168.1.1 netmask 0xffffffff
gre126: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 159.212.48.111
        inet6 fe80::209:3dff:fe11:9902%gre126 ->  prefixlen 64 scopeid 0xc
        inet 192.168.0.126 --> 192.168.1.126 netmask 0xffffffff
gre132: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.140.253.251
        inet6 fe80::209:3dff:fe11:9902%gre132 ->  prefixlen 64 scopeid 0xf
        inet 192.168.0.132 --> 192.168.1.132 netmask 0xffffffff
gre146: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 159.212.187.7
        inet6 fe80::209:3dff:fe11:9902%gre146 ->  prefixlen 64 scopeid 0x10
        inet 192.168.0.146 --> 192.168.1.146 netmask 0xffffffff
gre112: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.192.15.15
        inet6 fe80::209:3dff:fe11:9902%gre112 ->  prefixlen 64 scopeid 0x11
        inet 192.168.0.112 --> 192.168.1.112 netmask 0xffffffff
gre110: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.108.8.7
        inet6 fe80::209:3dff:fe11:9902%gre110 ->  prefixlen 64 scopeid 0x12
        inet 192.168.0.110 --> 192.168.1.110 netmask 0xffffffff
gre114: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.108.16.60
        inet6 fe80::209:3dff:fe11:9902%gre114 ->  prefixlen 64 scopeid 0x13
        inet 192.168.0.114 --> 192.168.1.114 netmask 0xffffffff
gre118: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.108.24.45
        inet6 fe80::209:3dff:fe11:9902%gre118 ->  prefixlen 64 scopeid 0x14
        inet 192.168.0.118 --> 192.168.1.118 netmask 0xffffffff
gre140: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.108.32.61
        inet6 fe80::209:3dff:fe11:9902%gre140 ->  prefixlen 64 scopeid 0x15
        inet 192.168.0.140 --> 192.168.1.140 netmask 0xffffffff
gre142: flags=b011<UP,POINTOPOINT,LINK0,LINK1,MULTICAST> mtu 1476
        groups: gre
        physical address inet 159.212.73.16 --> 10.108.40.10
        inet6 fe80::209:3dff:fe11:9902%gre142 ->  prefixlen 64 scopeid 0x16
        inet 192.168.0.142 --> 192.168.1.142 netmask 0xffffffff
carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:01
        carp: MASTER carpdev bge0 vhid 1 advbase 1 advskew 20
        groups: carp
        inet6 fe80::200:5eff:fe00:101%carp1 prefixlen 64 scopeid 0x8
        inet 65.44.125.16 netmask 0xffffff00 broadcast 65.44.125.255
carp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:02
        carp: MASTER carpdev bge1 vhid 2 advbase 1 advskew 20
        groups: carp
        inet6 fe80::200:5eff:fe00:102%carp2 prefixlen 64 scopeid 0x9
        inet 159.212.73.16 netmask 0xffffff80 broadcast 159.212.73.127

FWIW, I tried this with an OpenBSD 4.3 system, and after creating an appropriate number of /dev/bpf?? entries, it worked with base dhcpd and 96 vlans. Since you are using isc-dhcpd, this isn't OpenBSD dhcpd related anymore.



About 5 years ago I had to create a VLAN router on FreeBSD for a hotel, and ran into the limit on interfaces with isc-dhcpd V3.0.1rc12. I couldn't find my modified source from back then, so I grabbed 3.0.7 and figured it out again.



# diff -u common/discover.c.orig common/discover.c
--- common/discover.c.orig      Tue Sep 30 05:56:38 2008
+++ common/discover.c   Tue Sep 30 05:56:47 2008
@@ -126,7 +126,7 @@
{
       struct interface_info *tmp, *ip;
       struct interface_info *last, *next;
-       char buf [2048];
+       char buf [16384];
       struct ifconf ic;
       struct ifreq ifr;
       int i;


This should be good for around 160 interfaces, give or take.

Reply via email to