Annotation of embedaddon/dnsmasq/FAQ, revision 1.1.1.1

1.1       misho       1: Q: Why does dnsmasq open UDP ports >1024 as well as port 53.
                      2:    Is this a security problem/trojan/backdoor?
                      3: 
                      4: A: The high ports that dnsmasq opens are for replies from the upstream
                      5:    nameserver(s). Queries from dnsmasq to upstream nameservers are sent
                      6:    from these ports and replies received to them. The reason for doing this is
                      7:    that most firewall setups block incoming packets _to_ port 53, in order
                      8:    to stop DNS queries from the outside world. If dnsmasq sent its queries
                      9:    from port 53 the replies would be _to_ port 53 and get blocked.
                     10: 
                     11:    This is not a security hole since dnsmasq will only accept replies to that
                     12:    port: queries are  dropped. The replies must be to oustanding queries
                     13:    which dnsmasq has forwarded, otherwise they are dropped too.
                     14:  
                     15:    Addendum: dnsmasq now has the option "query-port" (-Q), which allows
                     16:    you to specify the UDP port to be used for this purpose.  If not
                     17:    specified, the operating system will select an available port number
                     18:    just as it did before.
                     19: 
                     20:    Second addendum: following the discovery of a security flaw in the
                     21:    DNS protocol, dnsmasq from version 2.43 has changed behavior. It
                     22:    now uses a new, randomly selected, port for each query. The old
                     23:    default behaviour (use one port allocated by the OS) is available by
                     24:    setting --query-port=0, and setting the query port to a positive
                     25:    value still works. You should think hard and know what you are
                     26:    doing before using either of these options.
                     27:  
                     28: Q: Why doesn't dnsmasq support DNS queries over TCP? Don't the RFC's specify
                     29:    that?
                     30: 
                     31: A: Update: from version 2.10, it does. There are a few limitations:
                     32:    data obtained via TCP is not cached, and source-address
                     33:    or query-port specifications are ignored for TCP.
                     34: 
                     35: Q: When I send SIGUSR1 to dump the contents of the cache, some entries have
                     36:    no IP address and are for names like mymachine.mydomain.com.mydomain.com.
                     37:    What are these?
                     38: 
                     39: A: They are negative entries: that's what the N flag means. Dnsmasq asked 
                     40:    an upstream nameserver to resolve that address and it replied "doesn't 
                     41:    exist, and won't exist for <n> hours" so dnsmasq saved that information so
                     42:    that if _it_ gets asked the same question it can answer directly without
                     43:    having to go back to the upstream server again. The strange repeated domains
                     44:    result from the way resolvers search short names. See "man resolv.conf" for
                     45:    details.
                     46: 
                     47: 
                     48: Q: Will dnsmasq compile/run on non-Linux systems?
                     49: 
                     50: A: Yes, there is explicit support for *BSD and MacOS X and Solaris. 
                     51:    There are start-up scripts for MacOS X Tiger and Panther 
                     52:    in /contrib. Dnsmasq will link with uclibc to provide small
                     53:    binaries suitable for use in embedded systems such as
                     54:    routers. (There's special code to support machines with flash
                     55:    filesystems and no battery-backed RTC.)
                     56:    If you encounter make errors with *BSD, try installing gmake from
                     57:    ports and building dnsmasq with "make MAKE=gmake" 
                     58:    For other systems, try altering the settings in config.h.
                     59:  
                     60: Q: My company's nameserver knows about some names which aren't in the
                     61:    public DNS. Even though I put it first in /etc/resolv.conf, it
                     62:    dosen't work: dnsmasq seems not to use the nameservers in the order
                     63:    given. What am I doing wrong?
                     64: 
                     65: A: By default, dnsmasq treats all the nameservers it knows about as
                     66:    equal: it picks the one to use using an algorithm designed to avoid 
                     67:    nameservers which aren't responding. To make dnsmasq use the
                     68:    servers in order, give it the -o flag. If you want some queries
                     69:    sent to a special server, think about using the -S flag to give the
                     70:    IP address of that server, and telling dnsmasq exactly which
                     71:    domains to use the server for.
                     72: 
                     73: Q: OK, I've got queries to a private nameserver working, now how about 
                     74:    reverse queries for a range of IP addresses?
                     75: 
                     76: A: Use the standard DNS convention of <reversed address>.in-addr.arpa.
                     77:    For instance to send reverse queries on the range 192.168.0.0 to 
                     78:    192.168.0.255 to a nameserver at 10.0.0.1 do
                     79:    server=/0.168.192.in-addr.arpa/10.0.0.1
                     80:    Note that the "bogus-priv" option take priority over this option,
                     81:    so the above will not work when the bogus-priv option is set.
                     82: 
                     83: Q: Dnsmasq fails to start with an error like this: "dnsmasq: bind
                     84:    failed: Cannot assign requested address". What's the problem?
                     85: 
                     86: A: This has been seen when a system is bringing up a PPP interface at
                     87:    boot time: by the time dnsmasq start the interface has been
                     88:    created, but not brought up and assigned an address. The easiest
                     89:    solution is to use --interface flags to specify which interfaces
                     90:    dnsmasq should listen on. Since you are unlikely to want dnsmasq to
                     91:    listen on a PPP interface and offer DNS service to the world, the
                     92:    problem is solved.
                     93: 
                     94: Q: I'm running on BSD and dnsmasq won't accept long options on the
                     95:    command line. 
                     96: 
                     97: A: Dnsmasq when built on some BSD systems doesn't use GNU getopt by
                     98:    default. You can either just use the single-letter options or
                     99:    change config.h and the Makefile to use getopt-long. Note that
                    100:    options in /etc/dnsmasq.conf must always be the long form,
                    101:    on all platforms.
                    102: 
                    103: Q: Names on the internet are working fine, but looking up local names 
                    104:    from /etc/hosts or DHCP doesn't seem to work.
                    105: 
                    106: A: Resolver code sometime does strange things when given names without
                    107:    any dots in. Win2k and WinXP may not use the DNS at all and just
                    108:    try and look up the name using WINS. On unix look at "options ndots:"
                    109:    in "man resolv.conf" for details on this topic. Testing lookups
                    110:    using "nslookup" or "dig" will work, but then attempting to run
                    111:    "ping" will get a lookup failure, appending a dot to the end of the
                    112:    hostname  will fix things. (ie "ping myhost" fails, but "ping
                    113:    myhost." works. The solution is to make sure that all your hosts
                    114:    have a domain set ("domain" in resolv.conf, or set a domain in 
                    115:    your DHCP server, see below for Windows XP and Mac OS X). 
                    116:    Any domain  will do, but "localnet" is traditional. Now when you
                    117:    resolve "myhost" the resolver will attempt to look up 
                    118:    "myhost.localnet" so you need to have dnsmasq reply to that name. 
                    119:    The way to do that is to include the domain in each name on
                    120:    /etc/hosts  and/or to use the --expand-hosts and --domain options.
                    121: 
                    122: Q: How do I set the DNS domain in Windows XP or MacOS X (ref: previous
                    123:    question)?
                    124: 
                    125: A: for XP, Control Panel > Network Connections > { Connection to gateway /
                    126:    DNS } > Properties > { Highlight TCP/IP } > Properties > Advanced >
                    127:    DNS Tab > DNS suffix for this connection: 
                    128: 
                    129: A: for OS X, System Preferences > Network > {Connection to gateway / DNS } >
                    130:    Search domains:
                    131: 
                    132: Q: Can I get dnsmasq to save the contents of its cache to disk when
                    133:    I shut my machine down and re-load when it starts again?
                    134: 
                    135: A: No, that facility is not provided. Very few names in the DNS have
                    136:    their time-to-live set for longer than a few hours so most of the
                    137:    cache entries would have expired after a shutdown. For longer-lived
                    138:    names it's much cheaper to just reload them from the upstream
                    139:    server. Note that dnsmasq is not shut down between PPP sessions so
                    140:    go off-line and then on-line again will not lose the contents of
                    141:    the cache.
                    142: 
                    143: Q: Who are Verisign, what do they have to do with the bogus-nxdomain
                    144:    option in dnsmasq and why should I wory about it?
                    145: 
                    146: A: [note: this was written in September 2003, things may well change.]
                    147:    Versign run the .com and .net top-level-domains. They have just
                    148:    changed the configuration of their servers so that unknown .com and
                    149:    .net domains, instead of returning an error code NXDOMAIN, (no such
                    150:    domain) return the address of a host at Versign which runs a web
                    151:    server showing a search page. Most right-thinking people regard
                    152:    this new behaviour as broken :-).  You can test to see if you are
                    153:    suffering Versign brokeness by run a command like 
                    154:    
                    155:    host jlsdajkdalld.com
                    156: 
                    157:    If you get "jlsdajkdalld.com" does not exist, then all is fine, if
                    158:    host returns an IP address, then the DNS is broken. (Try a few
                    159:    different unlikely domains, just in case you picked a wierd one
                    160:    which really _is_ registered.)
                    161: 
                    162:    Assuming that your DNS is broken, and you want to fix it, simply
                    163:    note the IP address being returned and pass it to dnsmasq using the
                    164:    --bogus-nxdomain flag. Dnsmasq will check for results returning
                    165:    that address and substitute an NXDOMAIN instead. 
                    166: 
                    167:    As of writing, the IP address in question for the .com and .net
                    168:    domains is is 64.94.110.11. Various other, less prominent,
                    169:    registries pull the same stunt; there is a list of them all, and
                    170:    the addresses to block, at http://winware.org/bogus-domains.txt
                    171: 
                    172: Q: This new DHCP server is well and good, but it doesn't work for me.
                    173:    What's the problem?
                    174: 
                    175: A: There are a couple of configuration gotchas which have been
                    176:    encountered by people moving from the ISC dhcpd to the dnsmasq
                    177:    integrated DHCP daemon. Both are related to differences in 
                    178:    in the way the two daemons bypass the IP stack to do "ground up"
                    179:    IP configuration and can lead to the dnsmasq daemon failing
                    180:    whilst the ISC one works.
                    181: 
                    182:    The first thing to check is the broadcast address set for the
                    183:    ethernet interface. This is normally the adddress on the connected
                    184:    network with all ones in the host part. For instance if the 
                    185:    address of the ethernet interface is 192.168.55.7 and the netmask
                    186:    is 255.255.255.0 then the broadcast address should be
                    187:    192.168.55.255. Having a broadcast address which is not on the
                    188:    network to which the interface is connected kills things stone
                    189:    dead.
                    190: 
                    191:    The second potential problem relates to firewall rules: since the ISC 
                    192:    daemon in some configurations bypasses the kernel firewall rules 
                    193:    entirely, the ability to run the ISC daemon does not indicate 
                    194:    that the current configuration is OK for the dnsmasq daemon.
                    195:    For the dnsmasq daemon to operate it's vital that UDP packets to 
                    196:    and from ports 67 and 68 and broadcast packets with source 
                    197:    address 0.0.0.0 and destination address 255.255.255.255 are not 
                    198:    dropped by iptables/ipchains.
                    199: 
                    200: Q: I'm running Debian, and my machines get an address fine with DHCP,
                    201:    but their names are not appearing in the DNS.
                    202: 
                    203: A: By default, none of the DHCP clients send the host-name when asking
                    204:    for a lease. For most of the clients, you can set the host-name to
                    205:    send with the "hostname" keyword in /etc/network/interfaces. (See
                    206:    "man interfaces" for details.) That doesn't work for dhclient, were
                    207:    you have to add something like "send host-name daisy" to
                    208:    /etc/dhclient.conf [Update: the lastest dhcpcd packages _do_ send
                    209:    the hostname by default.
                    210: 
                    211: Q: I'm network booting my machines, and trying to give them static
                    212:    DHCP-assigned addresses. The machine gets its correct address
                    213:    whilst booting, but then the OS starts and it seems to get
                    214:    allocated a different address.
                    215: 
                    216: A: What is happening is this: The boot process sends a DHCP
                    217:    request and gets allocated the static address corresponding to its
                    218:    MAC address. The boot loader does not send a client-id. Then the OS
                    219:    starts and repeats the DHCP process, but it it does send a
                    220:    client-id. Dnsmasq cannot assume that the two requests are from the
                    221:    same machine (since the client ID's don't match) and even though
                    222:    the MAC address has a static allocation, that address is still in
                    223:    use by the first incarnation of the machine (the one from the boot,
                    224:    without a client ID.) dnsmasq therefore has to give the machine a
                    225:    dynamic address from its pool. There are three ways to solve this:
                    226:    (1) persuade your DHCP client not to send a client ID, or (2) set up
                    227:    the static assignment to the client ID, not the MAC address. The
                    228:    default client-id will be 01:<MAC address>, so change the dhcp-host
                    229:    line from "dhcp-host=11:22:33:44:55:66,1.2.3.4" to
                    230:    "dhcp-host=id:01:11:22:33:44:55:66,1.2.3.4" or (3) tell dnsmasq to
                    231:    ignore client IDs for a particular MAC address, like this:
                    232:    dhcp-host=11:22:33:44:55:66,id:*
                    233: 
                    234: Q: What network types are supported by the DHCP server?
                    235:   
                    236: A: Ethernet (and 802.11 wireless) are supported on all platforms. On
                    237:    Linux all network types (including FireWire) are supported.
                    238: 
                    239: Q: What are these strange "bind-interface" and "bind-dynamic" options?
                    240: 
                    241: A: Dnsmasq from v2.63 can operate in one of three different "networking
                    242:    modes". This is unfortunate as it requires users configuring dnsmasq
                    243:    to take into account some rather bizzare contraints and select the
                    244:    mode which best fits the requirements of a particular installation.
                    245:    The origin of these are deficiencies in the Unix networking
                    246:    model and APIs and each mode has different advantages and
                    247:    problems. Just to add to the confusion, not all modes are available on
                    248:    all platforms (due the to lack of supporting network APIs).To further
                    249:    add to the confusion, the rules for the DHCP subsystem on dnsmasq are
                    250:    different to the rules for the DNS and TFTP subsystems.
                    251: 
                    252:    The three modes are "wildcard", "bind-interfaces" and "bind-dynamic".
                    253: 
                    254:    In "wildcard" mode, dnsmasq binds the wildcard IP address (0.0.0.0 or
                    255:    ::). This allows it to recieve all the packets sent to the server on
                    256:    the relevant port. Access control (--interface, --except-interface,
                    257:    --listen-address, etc) is implemented by dnsmasq: it queries the
                    258:    kernel to determine the interface on which a packet was recieved and
                    259:    the address to which it was sent, and applies the configured
                    260:    rules. Wildcard mode is the default if neither of the other modes are
                    261:    specified. 
                    262: 
                    263:    In "bind-interfaces" mode, dnsmasq runs through all the network
                    264:    interfaces available when it starts, finds the set of IP addresses on
                    265:    those interfaces, filters that set using the access control
                    266:    configuration, and then binds the set of IP addresses. Only packets
                    267:    sent to the allowed addresses are delivered by the kernel to dnsmasq.
                    268: 
                    269:    In "bind-dynamic" mode, access control filtering is done both by
                    270:    binding individual IP addresses, as for bind-interfaces, and by
                    271:    inspecting individual packets on arrival as for wildcard mode. In
                    272:    addition, dnsmasq notices when new interfaces appear or new addresses
                    273:    appear on existing interfaces, and the resulting IP addresses are
                    274:    bound automatically without having to restart dnsmasq.
                    275: 
                    276:    The mode chosen has four different effects: co-existence with other
                    277:    servers, semantics of --interface access control, effect of new
                    278:    interfaces, and legality of --interface specifications for
                    279:    non-existent inferfaces. We will deal with these in order.
                    280: 
                    281:    A dnsmasq instance running in wildcard mode precludes a machine from
                    282:    running a second instance of dnsmasq or any other DNS, TFTP or DHCP
                    283:    server. Attempts to do so will fail with an "address in use" error. 
                    284:    Dnsmasq running in --bind-interfaces or bind-dynamic mode allow other
                    285:    instances of dnsmasq or other servers, as long as no two servers are
                    286:    configured to listen on the same interface address. 
                    287: 
                    288:    The semantics of --interface varies subtly between wildcard or
                    289:    bind-dynamic mode and bind-interfaces mode. The situation where this
                    290:    matters is a request which arrives via one interface (A), but with a
                    291:    destination address of a second interface (B) and when dnsmasq is
                    292:    configured to listen only on B. In wildcard or bind-dynamic mode, such
                    293:    a request will be ignored, in bind-interfaces mode, it will be
                    294:    accepted.
                    295: 
                    296:    The creation of new network interfaces after dnsmasq starts is ignored
                    297:    by dnsmasq when in --bind-interfaces mode. In wildcard or bind-dynamic
                    298:    mode, such interfaces are handled normally.
                    299: 
                    300:    A --interface specification for a non-existent interface is a fatal
                    301:    error at start-up when in --bind-interfaces mode, by just generates a
                    302:    warning in wildcard or bind-dynamic mode.
                    303: 
                    304: Q: Why doesn't Kerberos work/why can't I get sensible answers to
                    305:    queries for SRV records.
                    306: 
                    307: A: Probably because you have the "filterwin2k" option set. Note that
                    308:    it was on by default in example configuration files included in 
                    309:    versions before 2.12, so you might have it set on without
                    310:    realising.
                    311: 
                    312: Q: Can I get email notification when a new version of dnsmasq is
                    313:    released?
                    314: 
                    315: A: Yes, new releases of dnsmasq are always announced through
                    316:    freshmeat.net, and they allow you to subcribe to email alerts when
                    317:    new versions of particular projects are released. New releases are
                    318:    also announced in the dnsmasq-discuss mailing list, subscribe at 
                    319:    http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
                    320: 
                    321: Q: What does the dhcp-authoritative option do? 
                    322: 
                    323: A: See http://www.isc.org/files/auth.html - that's
                    324:    for the ISC daemon, but the same applies to dnsmasq.
                    325: 
                    326: Q: Why does my Gentoo box pause for a minute before getting a new
                    327:    lease?
                    328: 
                    329: A: Because when a Gentoo box shuts down, it releases its lease with
                    330:    the server but remembers it on the client; this seems to be a 
                    331:    Gentoo-specific patch to dhcpcd. On restart it tries to renew
                    332:    a lease which is long gone, as far as dnsmasq is concerned, and
                    333:    dnsmasq ignores it until is times out and restarts the process.
                    334:    To fix this, set the dhcp-authoritative flag in dnsmasq.
                    335: 
                    336: Q: My laptop has two network interfaces, a wired one and a wireless
                    337:    one. I never use both interfaces at the same time, and I'd like the
                    338:    same IP and configuration to be used irrespective of which
                    339:    interface is in use. How can I do that?
                    340: 
                    341: A: By default, the identity of a machine is determined by using the
                    342:    MAC address, which is associated with interface hardware. Once an
                    343:    IP is bound to the MAC address of one interface, it cannot be
                    344:    associated with another MAC address until after the DHCP lease
                    345:    expires. The solution to this is to use a client-id as the machine
                    346:    identity rather than the MAC address. If you arrange for the same
                    347:    client-id to sent when either interface is in use, the DHCP server
                    348:    will recognise the same machine, and use the same address. The
                    349:    method for setting the client-id varies with DHCP client software,
                    350:    dhcpcd uses the "-I" flag. Windows uses a registry setting,
                    351:    see http://www.jsiinc.com/SUBF/TIP2800/rh2845.htm
                    352: Addendum:
                    353:    From version 2.46, dnsmasq has a solution to this which doesn't
                    354:    involve setting client-IDs. It's possible to put more than one MAC
                    355:    address in a --dhcp-host configuration. This tells dnsmasq that it
                    356:    should use the specified IP for any of the specified MAC addresses,
                    357:    and furthermore it gives dnsmasq permission to sumarily abandon a
                    358:    lease to one of the MAC addresses if another one comes along. Note
                    359:    that this will work fine only as longer as only one interface is
                    360:    up at any time. There is no way for dnsmasq to enforce this
                    361:    constraint: if you configure multiple MAC addresses and violate 
                    362:    this rule, bad things will happen.
                    363: 
                    364: Q: Can dnsmasq do DHCP on IP-alias interfaces?
                    365: 
                    366: A: Yes, from version-2.21. The support is only available running under
                    367:    Linux, on a kernel which provides the RT-netlink facility. All 2.4 
                    368:    and 2.6 kernels provide RT-netlink and it's an option in 2.2
                    369:    kernels. 
                    370:    
                    371:    If a physical interface has more than one IP address or aliases
                    372:    with extra IP addresses, then any dhcp-ranges corresponding to
                    373:    these addresses can be used for address allocation. So if an
                    374:    interface has addresses 192.168.1.0/24 and 192.168.2.0/24 and there
                    375:    are DHCP ranges 192.168.1.100-192.168.1.200 and
                    376:    192.168.2.100-192.168.2.200 then both ranges would be used for host
                    377:    connected to the physical interface. A more typical use might be to
                    378:    have one of the address-ranges as static-only, and have known
                    379:    hosts allocated addresses on that subnet using dhcp-host options,
                    380:    while  anonymous hosts go on the other.
                    381: 
                    382: 
                    383: Q: Dnsmasq sometimes logs "nameserver xxx.xxx.xxx.xxx refused
                    384:    to do a recursive query" and DNS stops working. What's going on?
                    385: 
                    386: A: Probably the nameserver is an authoritative nameserver for a
                    387:    particular domain, but is not configured to answer general DNS
                    388:    queries for an arbitrary domain. It is not suitable for use by
                    389:    dnsmasq as an upstream server and should be removed from the
                    390:    configuration. Note that if you have more than one upstream
                    391:    nameserver configured dnsmasq will load-balance across them and
                    392:    it may be some time before dnsmasq gets around to using a 
                    393:    particular nameserver. This means that a particular configuration
                    394:    may work for sometime with a broken upstream nameserver
                    395:    configuration.
                    396: 
                    397: 
                    398: Q: Does the dnsmasq DHCP server probe addresses before allocating
                    399:    them, as recommended in RFC2131?
                    400: 
                    401: A: Yes, dynamically allocated IP addresses are checked by sending an
                    402:    ICMP echo request (ping). If a reply is received, then dnsmasq
                    403:    assumes that the address is in use, and attempts to allocate an
                    404:    different address. The wait for a reply is between two and three
                    405:    seconds. Because the DHCP server is not re-entrant, it cannot serve
                    406:    other DHCP requests during this time. To avoid dropping requests,
                    407:    the address probe may be skipped when dnsmasq is under heavy load.
                    408: 
                    409: 
                    410: Q: I'm using dnsmasq on a machine with the Firestarter firewall, and
                    411:    DHCP doesn't work. What's the problem?
                    412: 
                    413: A: This a variant on the iptables problem. Explicit details on how to
                    414:    proceed can be found at 
                    415:    http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2005q3/000431.html
                    416:  
                    417: 
                    418: Q: I'm using dnsmasq on a machine with the shorewall firewall, and
                    419:    DHCP doesn't work. What's the problem?
                    420: 
                    421: A: This a variant on the iptables problem. Explicit details on how to
                    422:    proceed can be found at 
                    423:    http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2007q4/001764.html
                    424: 
                    425: 
                    426: Q: Dnsmasq fails to start up with a message about capabilities.
                    427:    Why did that happen and what can do to fix it?
                    428: 
                    429: A: Change your kernel configuration: either deselect CONFIG_SECURITY
                    430:    _or_ select CONFIG_SECURITY_CAPABILITIES. Alternatively, you can 
                    431:    remove the need to set capabilities by running dnsmasq as root.
                    432: 
                    433: 
                    434: Q: Where can I get .rpms Suitable for openSUSE/SLES?
                    435: 
                    436: A: Dnsmasq is in openSUSE itself, and the latest releases are also
                    437:    available at http://download.opensuse.org/repositories/network/
                    438: 
                    439: 
                    440: Q: Can I run dnsmasq in a Linux vserver?
                    441: 
                    442: A: Yes, as a DNS server, dnsmasq will just work in a vserver.
                    443:    To use dnsmasq's DHCP function you need to give the vserver
                    444:    extra system capabilities. Please note that doing so will lesser 
                    445:    the overall security of your system. The capabilities 
                    446:    required are NET_ADMIN and NET_RAW. NET_ADMIN is essential, NET_RAW
                    447:    is required to do an ICMP "ping" check on newly allocated
                    448:    addresses. If you don't need this check, you can disable it with
                    449:    --no-ping and omit the NET_RAW capability. 
                    450:    Adding the capabilities is done by adding them, one per line, to
                    451:    either /etc/vservers/<vservername>/ccapabilities for a 2.4 kernel or
                    452:    /etc/vservers/<vservername>/bcapabilities for a 2.6 kernel (please
                    453:    refer to the vserver documentation for more information).
                    454: 
                    455: 
                    456: Q: What's the problem with syslog and dnsmasq?
                    457: 
                    458: A: In almost all cases: none. If you have the normal arrangement with
                    459:    local daemons logging to a local syslog, which then writes to disk,
                    460:    then there's never a problem. If you use network logging, then
                    461:    there's a potential problem with deadlock: the syslog daemon will
                    462:    do DNS lookups so that it can log the source of log messages,
                    463:    these lookups will (depending on exact configuration) go through
                    464:    dnsmasq, which also sends log messages. With bad timing, you can 
                    465:    arrive at a situation where syslog is waiting for dnsmasq, and
                    466:    dnsmasq is waiting for syslog; they will both wait forever. This
                    467:    problem is fixed from dnsmasq-2.39, which introduces asynchronous
                    468:    logging: dnsmasq no longer waits for syslog and the deadlock is
                    469:    broken. There is a remaining problem in 2.39, where "log-queries"
                    470:    is in use. In this case most DNS queries generate two log lines, if
                    471:    these go to a syslog which is doing a DNS lookup for each log line,
                    472:    then those queries will in turn generate two more log lines, and a 
                    473:    chain reaction runaway will occur. To avoid this, use syslog-ng
                    474:    and turn on syslog-ng's dns-cache function.
                    475: 
                    476: 
                    477: Q: DHCP doesn't work with windows Vista, but everything else is fine.
                    478: 
                    479: A: The DHCP client on windows Vista (and possibly later versions)
                    480:    demands that the DHCP server send replies as broadcasts. Most other
                    481:    clients don't do this. The broadcasts are send to
                    482:    255.255.255.255. A badly configured firewall which blocks such
                    483:    packets will show exactly these symptoms (Vista fails, others
                    484:    work).
                    485: 
                    486:   
                    487: Q: DHCP doesn't work with windows 7 but everything else is fine.
                    488: 
                    489: A: There seems to be a problem if Windows 7 doesn't get a value for
                    490:    DHCP option 252 in DHCP packets it gets from the server. The
                    491:    symtoms have beeen variously reported as continual DHCPINFORM
                    492:    requests in an attempt to get an option-252, or even ignoring DHCP
                    493:    offers completely (and failing to get an IP address) if there is no
                    494:    option-252 supplied. DHCP option 252 is for WPAD, WWW Proxy 
                    495:    Auto Detection and if you don't want or need to use that, then 
                    496:    simplest fix seems to be to supply an empty option with:
                    497: 
                    498:    dhcp-option=252,"\n"
                    499: 
                    500: 
                    501: 
                    502:  
                    503: 
                    504: 
                    505: 
                    506: 
                    507:    
                    508: 
                    509:              

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>