printing in samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · current state the new printing...

24
Current state The new printing protocol Printing in Samba 4.x unther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat May 16th, 2013 unther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat Printing in Samba 4.x

Upload: others

Post on 23-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Printing in Samba 4.x

Gunther Deschner <[email protected]>Andreas Schneider <[email protected]>

Red Hat

May 16th, 2013

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 2: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Printing

1 Current stateNew features of Samba 4.0

2 The new printing protocolPrint System Asynchronous Remote Protocol (MS-PAR)Supporting MS-PAR in Samba

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 3: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Reporting bugs

http://www.samba.org/~asn/reporting_samba_bugs.txt

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 4: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

Printing in Samba 4.x

1 Current stateNew features of Samba 4.0

2 The new printing protocolPrint System Asynchronous Remote Protocol (MS-PAR)Supporting MS-PAR in Samba

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 5: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

We fixed the most important option

disable spoolss = true

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 6: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

What we have in 3.6 too

Rewritten that the lanman/printing (RAP) code goes troughspoolss

spoolss uses the RPC winreg protocol to store all data noW

If you update from 3.5 to 3.6 or 4.x we automatically convertthe printing tdbs

net printing migrate encoding=CP1252

ntprinters.tdb

Improved Linux Printing Queue Daemon (lpqd)

A lot of new spoolss tests

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 7: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

Linux Printing Queue Daemon (lpqd)

Background task talking to the Linux printing system.

The only process updating the printcap cache

Notifies all other daemons about cache update when done

Checks if ther is a task pending every 60 second

printcap cache time = 1 will only run every 60 seconds

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 8: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

The spoolss daemon (spoolssd)

ps afx -o pid,wchan=WIDE-WCHAN-COLUMN -o comm

17030 - smbd

17032 - \_ spoolssd-master

17033 - \_ lpqd

17034 - \_ spoolssd-child

17035 - \_ spoolssd-child

17037 - \_ spoolssd-child

17038 - \_ spoolssd-child

17039 - \_ spoolssd-child

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 9: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

The spoolss daemon (spoolssd)

master simple deamon with small memory footprint

master only forks and kills childs serving the spoolss pipe

child fully initialized idle daemon waiting to serve a connection

child only answers spoolss request

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 10: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

Enabling spoolssd

[global]

rpc_server:spoolss = external

rpc_daemon:spoolssd = fork

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 11: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

Settings

Minimum children to be preforked (default: 5)

Maximum children to be preforked (default: 25)

Spawn rate (default: 5)

Maximum allowed clients (default: 100)

Shortest lifetime of a child (default: 60 sec)

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 12: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

spoolssd tuning variables

[global]

spoolssd:prefork_min_children = 1

spoolssd:prefork_max_children = 1

spoolssd:prefork_spawn_rate = 0

spoolssd:prefork_max_allowed_clients = 100

spoolssd:prefork_child_min_life = 0

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 13: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

New features of Samba 4.0

Minor things or other stuff

The default directories for drivers are created by smbd now

Fixed driver installation for Windows 8 (only driver version 3is supported)

There is also a LSA Service Daemon (lsasd) doing LSARPC,SAMR, NETLOGON

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 14: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Printing in Samba 4.x

1 Current stateNew features of Samba 4.0

2 The new printing protocolPrint System Asynchronous Remote Protocol (MS-PAR)Supporting MS-PAR in Samba

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 15: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Why a new protocol?

Print System Remote Protocol (MS-RPRN) is still the core ofprinting in Windows. RPRN has several design limitations.

Synchronous protocol

Change notifications require print client to provide a printserver as well

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 16: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

New features of PAR

Covers majority of RPRN functionality (72 methods (RPRN:113 methods))

Asynchronous DCE/RPC

Inherits RPRN data messages and buffer formats

Uses only ncacn ip tcp transport

Usage of object ids at the DCE/RPC layer

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 17: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Change Notifications in RPRN

Client registers for change notifies

Server opens new connection to the client for notifications

Firewalls often forbid opening TCP/IP connections todesktops

Anonymous access to spoolss pipe disabled by default

When blocked, client needs to manually refresh / pullnotifications

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 18: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Change Notifications in RPRN

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 19: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Change Notifications in PAR

Client registers for change notifies

Client asks to receive change notifies, reply does not returnuntil matching notification has been sent

No printserver on the client needed

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 20: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Print System Asynchronous Remote Protocol (MS-PAR)

Change Notifications in PAR

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 21: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Supporting MS-PAR in Samba

Printing in Samba 4.x

1 Current stateNew features of Samba 4.0

2 The new printing protocolPrint System Asynchronous Remote Protocol (MS-PAR)Supporting MS-PAR in Samba

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 22: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Supporting MS-PAR in Samba

Client Prerequisites

Both DCE/RPC client libraries support dynamic endpointsover ncacn ip tcp

object ids are supported

smbtorture/rpcclient testcode

idea: PAR based print notification library

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 23: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Supporting MS-PAR in Samba

Server Prerequisites

Asynchronous DCE/RPC Server (currently only in the s4 RPCserver

Endpointmapper with ncacn ip tcp transport

PAR to RPRN redirection

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x

Page 24: Printing in Samba 4asn/2013-samba_printing.pdf · 2013. 5. 16. · Current state The new printing protocol Printing 1 Current state New features of Samba 4.0 2 The new printing protocol

Current state The new printing protocol

Supporting MS-PAR in Samba

Questions & Answers

Slides http://www.samba.org/~asn/

Gunther Deschner <[email protected]> Andreas Schneider <[email protected]> Red Hat

Printing in Samba 4.x