For this you would need to use a transfer-source statement in each
named.conf. To save you some time I did a quick search in the manual and
copied the "official" explanation here:

transfer-source determines which local address will be bound to the TCP
connection used to fetch all zones transferred inbound by the server. If
not set, it defaults to a system controlled value which will usually be
the address of the interface ``closest to'' the remote end. This address
must appear in the remote end's allow-transfer option for the zone being
transferred, if one is specified. This statement sets the
transfer-source for all zones, but can be overridden on a per-zone basis
by including a transfer-source statement within the zone block in the
configuration file.

The TCP port is simply used for zone transfers between authoritative
servers for a zone, or in some rare cases a query response that is too
large for UDP transfer. You will not be doing either of these with the
root name servers. The "server-to-server" communication you are
referring to is actually a recursive query, and these are handled on UDP
53 just like resolver-to-server communication is...

Hope this helps again!

-----Original Message-----
From: yakut []
Sent: Friday, January 28, 2005 3:36 AM
To: Mickey Olsberg
Cc: bind-users
Subject: *************:RE: multiple named process in a single machine?

Thanks for your reply.

I've adjusted /etc/namedxx.conf and added 'controls {inet
THE_IP_THAT_NAMED_PROCESS_USE }', and thus rndc worked and no error

The 'TCP socket address in use' still exist. Per my understanding,
bind9 use UDP for dns query, TCP for domain server communication, so
this will bring suffer if my servers-in-single-machine communicate
with other servers, including ROOT domain. Is this right? If so can I
avoid it? I generally don't know if this solution is popular, or
common customer will buy in this solution, for multiple named process
in a single machine.


----- ************ -----
******: ********, ****** 28****, 2005 ******2:38
******: RE: multiple named process in a single machine?

> Your problem is not with port 53. Note that it states it is having
> trouble binding a TCP socket, so even if it was port 53 your query
> would
> have worked on UDP port 53. Zone transfers would not have though...
> Anyway, port 953 is bound to loopback and that is why you are
> getting
> the address in use message. The named process listens on this port
> for
> rndc (remote ndc) commands. You will either need to change the IP
> in the
> controls section of each named.conf (which means using rndc as a
> true
> remote control mechanism) or by changing the port for one of the
> servers
> (which means modifying the port that the rndc commands uses every
> time
> you want to manage that server). My recommendation is that you use
> the
> first... Hope this helps!
> Mickey Olsberg
> -----Original Message-----
> From: yakut []
> Sent: Thursday, January 27, 2005 6:58 PM
> To: bind-users
> Subject: multiple named process in a single machine?
> Hello,
> Since named seems do not scale well on 4+ CPUs, I plan to use
> multi
> named process in a single machine with multi IPs.
> I managed started named process with different named.conf files,
> and
> limit IP address for each with 'listen-on' option in named.conf.
> But from syslog, a message said:
> listening on IPv4 interface eth0,
> binding TCP socket: address in use
> couldn't add command channel address in use
> couldn't add command channel ::1#953: address in use
> zone xxx/IN: loaded serial 42
> running
> I tried dig from clients to different server IPs, it just work!
> Anybody can tell me does this make sense? If yes how to eliminate
> the 'addr in use' errors in syslog?
> Thx.