[cups.general] Setting up Bonjour printing via DNS/CUPS

Adam Tauno Williams awilliam at whitemice.org
Fri Aug 28 06:02:27 PDT 2009


> Now the question...   I've setup <in some way...> a cups server on my
> Opensuse 11.0, and I really appreciate how from ubuntu client simply editing
> client.conf u can share in so easy style the printers of my cups server...
> Unluckly, as many others, I live in a "mix" enviroment... so I would like
> know if is there some straight way <something like as above> to share to
> windows workstation the printers of my server cups, without installing
> everytime the windows driver for every printer... ?!?
> So I really appreciate any advice you can give me..

Bonjour printing from Windows works quite well.  You can publish your
printers and their properties via DNS and do the actual printing over
IPP to a CUPS server.

<http://support.apple.com/downloads/Bonjour_for_Windows>

You need to inform the Bonjour client on Windows what domain to browse
for services with PTR entries like -

dNSClass: IN 
dNSTTL: 999
objectClass: top
objectClass: dNSZone
pTRRecord: mormail.com.
relativeDomainName: _services._dns-sd._udp
zoneName: dynamic.mormail.com

dNSClass: IN
dNSTTL: 999
objectClass: top
objectClass: dNSZone
pTRRecord: mormail.com.
relativeDomainName: b._dns-sd._udp
zoneName: dynamic.mormail.com

dNSClass: IN
dNSTTL: 999
objectClass: top
objectClass: dNSZone
pTRRecord: mormail.com.
relativeDomainName: lb._dns-sd._udp
zoneName: dynamic.mormail.com

* For example our clients are all in the domain "dynamic.mormail.com",
but all the servers and services are in "mormail.com"

Then the _services._dns-sd.mormail.com entry provides a services lists
like -

dNSClass: IN 
dNSTTL: 999
objectClass: top
objectClass: dNSZone
relativeDomainName: _services._dns-sd
zoneName: _udp.mormail.com
pTRRecord: _ipp._tcp.mormail.com.
pTRRecord: _http._tcp.mormail.com.

And finally the _ipp._tcp.mormail.com entry provides a list of IPP queues -

dNSClass: IN
dNSTTL: 999
objectClass: top
objectClass: dNSZone
relativeDomainName: _ipp
zoneName: _tcp.mormail.com
sRVRecord: 5 0 631 crew.mormail.com.
pTRRecord: CIS\ Color\ Document\ Center._ipp._tcp.mormail.com.
pTRRecord: ACT\ Document\ Center._ipp._tcp.mormail.com.
pTRRecord: ACT\ Laser\ Printer._ipp._tcp.mormail.com.
pTRRecord: CIS\ Laser\ Printer._ipp._tcp.mormail.com.
pTRRecord: SBN\ Deskjet\ Printer._ipp._tcp.mormail.com.
.....

Those names will automatically be available in the bonjour client.

A specific printers service looks like -

dNSClass: IN
dNSTTL: 999
objectClass: top
objectClass: dNSZone
relativeDomainName:: Q0lTAzJDb2xvcgMyRG9jdW1lbnQDMkNlbnRlci5faXBw
sRVRecord: 5 0 631 crew.mormail.com.
zoneName: _tcp.mormail.com
tXTRecord: "txtvers=1" "qtotal=1" "note=CIS Department" "ty=CIS Color Docume
 nt Center" "rp=printers/cisdc" "product=(Brother MFC-9840CDW BR-Script3)" "
 adminurl=http://lpd02724.dynamic.mormail.com" "priority=25" "usb_MFG=Brothe
 r" "usb_MDL=MFC-9840CDW" "Color=T" "Copies=T" "Duplex=T" "PaperCustom=T" "B
 inary=T" "Transparent=F" "TBCP=T"

If the product attribute of the printer service entry matches a driver
available in Windows the queue will automatically be setup.  The
printing will occurr via IPP (port 631) via the CUPS server.

Managing your printers via DNS is quite nice.  One can only hope that
someday Windows will support this natively  and that CUPS will support
it on the client side (for LINUX/UNIX desktops). 






More information about the cups mailing list