• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] verzögerter Druck unter Samba und Cups

luser

Newbie
Hallo,

wir haben vor kurzem einen Server mit Opensuse 11.0 als PDC neu eingerichtet und den alten mit Suse 9.3Prof außer Betrieb genommen. Der Server dient u.a. als Fileserver (Samba), Printserver (Cups) und mailserver (postfix+cyrus-imap). Die User und Groups wurden auf dem neuen Server mit identischer uid bzw. gid angelegt. Die gesamten von Samba zur Verfügung gestellten Daten wurden vom alten auf den neuen Server unter Beibehaltung der Zugriffsrechte etc. transferiert. Am Server melden sich Clients mit Win98 bis WinXP an. Die Druckertreiber sind auf den Clients. Die Drucker sind räumlich verteilt und werden von Cups per TCP+Port bedient. Alles läuft soweit problemlos (Dateizugriffe Samba, Mailzustellung,...) außer...

Wenn man am WinXP-SP2-Client einen Druckauftrag absendet, treten folgende 2 Szenarien auf:
a) Unter Microsoft Office geht das Drucken zügig, dass heißt er braucht zw. Datei-->Drucken-->Netzwerkdrucker auswählen-->OK nur wenige Sekunden, ohne das das Programm blockiert ist. Der Druckauftrag liegt ausgedruckt ca. 90s später im Drucker.
b) Unter allen andere Programmen (z.B. Acrobat-Reader, Notepad++) ist nach Datei-->Drucken-->Netzwerkdrucker auswählen-->OK das Programm ca. 90s blockiert. Das Programmfenster ist eingefroren. Der Fortschrittsbalken bleibt links (bei 0) stehen. Andere Programme sind aber nutzbar. Nach dieser Zeit läuft der Fortschrittsbalken binnen einer Sekunden auf 100% und der Druckauftrag liegt wenige Sekunden später (ca. 5s) als Ausdruck im Drucker. Bei Windows 98 gibt es das Problem nicht.
Ich habe versucht an mehreren Stellen die Konfiguration zuverändern. so z.B.
- in /etc/cups/cupsd.conf Zugriffrechte erweitert
- in /etc/cups/mime.* die Einträge "application/octet-stream" aktiviert
- in /etc/samba/smb.conf diverse Einträge ausprobiert/verändert
- Cups komplett deinstalliert und wieder neu installiert mit Neueinrichtung der Drucker
- Registryeinträge im Windows-XP kontrolliert/variiert
- Online-Update von Opensuse 11 durchgeführt (zuletzt 24.07.08)
- die per Standard installierte Sambaversion 3.2.0.rc1-22.1 durch die von Opensuse angebotete 3.2.0-33.1 ersetzt
- die per Standard installierte Cupsversion 1.3.7-25.1 durch die von Opensuse angebotete 1.3.7-29.2 ersetzt
- die Einträge der Linux- und Samba-Passwörter überprüft und nochmal neu eingegeben
bisher alles ohne Erfolg. Da die dieses Problem unter SuSE 9.3prof mit den gleichen Programmen (aber älteren Versionen) nicht aufgetreten ist haben wir die Konfigurationsdateien verglichen, aber ohne das Problem lösen zu können.
Beim Drucken erscheinen in der samba.log mit loglevel=2 folgende Einträge
Code:
[2008/07/17 17:32:49,  1] smbd/service.c:make_connection_snum(1188)
  ClientPC01 (192.168.0.11) signed connect to service Drucker01 initially as user ClientUser (uid=1005, gid=100) (pid 30416)
...
[2008/07/17 17:34:17,  1] smbd/service.c:close_cnum(1399)
  ClientPC01 (192.168.0.11) closed connection to service Drucker01
[2008/07/17 17:34:17,  2] smbd/sesssetup.c:setup_new_vc_session(1363)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2008/07/17 17:34:17,  2] smbd/sesssetup.c:setup_new_vc_session(1363)
  setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
[2008/07/17 17:34:17,  2] auth/auth.c:check_ntlm_password(308)
  check_ntlm_password:  authentication for user [ClientUser] -> [ClientUser] -> [ClientUser] succeeded
[2008/07/17 17:34:17,  1] smbd/service.c:make_connection_snum(1188)
  ClientPC01 (192.168.0.11) signed connect to service Drucker01 initially as user ClientUser (uid=1005, gid=100) (pid 30784)
Offenbar macht er 2x eine Verbindung zum Drucker, wobei er vor dem 2. mal eine Authentifizierung vornimmt.
Da die Verzögerung auch beim Druck unter MS-Office auftritt ist es bei a) und b) das gleiche Problem, nur bei a) schlägt sich wahrscheinlich der Spooler im Hintergrund damit rum.
Hier noch der Beginn der /etc/samba/smb.conf:
Code:
[global]
	include = /etc/samba/dhcp.conf
	netbios name = SUSE-FS
	workgroup = "UNSEREDOMÄNE"
# Sambaversion 3.2.0-33.1-SUSE
	server string = Samba3
	domain master = Yes
	domain logons = Yes
	local master = Yes
	preferred master = Yes	
	os level = 65
	wins support = Yes
	name resolve order = wins hosts lmhosts bcast
	dns proxy = yes
	security = user
	auth methods =
	passdb backend = smbpasswd
#	update encrypted = yes
#	password level = 4
#	guest account = nobody
	username map = /etc/samba/smbusers
	smb passwd file = /etc/samba/smbpasswd
	ntlm auth = yes
	lanman auth = yes
       server signing = auto
       server schannel = auto
       client signing = auto
       client schannel = auto
	case sensitive = No
	nt acl support = No
	machine password timeout = 604800
#	obey pam restrictions = No
	map to guest = Bad User
#	printer admin = @ntadmin, root, administrator
	printing = cups
	printcap cache time = 750
	printcap name = cups
	cups options = raw
#lpq cache time = 20
	add machine script = /usr/sbin/useradd -c Machine -G Rechner -d /var/lib/nobody -s /bin/false %m$
	logon script = logon.bat
#logon path = \\%L\profiles\.msprofile
	logon home = \\%L\%U\.9xprofile
	logon drive = F:
	log file = /var/log/samba/samba.log
	syslog = 0
	log level = 2
	max log size = 4096
	socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
#	socket options = TCP_NODELAY IPTOS_LOWDELAY
	dead time = 15
	oplocks = yes
	kernel oplocks = Yes
	level2 oplocks = no
	veto files = /*:Zone.Identifier/
[homes]
	comment = Home Directories
	valid users = %S
	available = Yes
	browseable = no
	read only = No
	inherit acls = Yes
	vfs objects = recycle
	recycle:repository = ../../papierkorb/home/%S
	recycle:keeptree = true
	recycle:versions = true
	recycle:exclude = *.tmp
	recycle:touch_mtime = true
[users]
	comment = Alle Benutzer
	path = /home
	read only = No
	inherit acls = Yes
	veto files = /aquota.user/groups/shares/
	browseable = no
[printers]
	comment = Alle Drucker
	path = /var/tmp
	printable = Yes
	create mask = 0600
	browseable = No
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = @ntadmin root
	force group = ntadmin
	create mask = 0664
	directory mask = 0775
...
Hier noch die /etc/cups/cupsd.conf:
Code:
Classification none
DefaultCharset UTF-8
DefaultLanguage de
Printcap /etc/printcap
PrintcapFormat BSD
RemoteRoot remroot
SystemGroup sys root
ServerCertificate /etc/cups/ssl/server.crt
ServerKey /etc/cups/ssl/server.key
<Location />
#Encryption IfRequested
#Satisfy All
Order deny,allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 192.168.0.*
</Location>
<Location /admin>
Encryption Required
Satisfy All
AuthType Basic
AuthClass System
Allow From 192.168.0.*
Order allow,deny
Deny From All
</Location>
<Location /admin/conf>
Require user @SYSTEM
Encryption IfRequested
Satisfy All
Order allow,deny
</Location>
<Location /printers>
Encryption IfRequested
Satisfy All
Order allow,deny
Allow From 192.168.0.*
</Location>
HostnameLookups Off
KeepAlive On
KeepAliveTimeout 60
MaxClients 100
MaxRequestSize 0m
Timeout 300
Listen localhost:631
Listen /var/run/cups/cups.sock
AccessLog /var/log/cups/access_log
ErrorLog /var/log/cups/error_log
PageLog /var/log/cups/page_log
MaxLogSize 1m
LogLevel warn
PreserveJobHistory Off
MaxJobs 0
MaxJobsPerPrinter 0
MaxJobsPerUser 0
User lp
Group sys
RIPCache 8m
FilterLimit 0
DataDir /usr/share/cups
DocumentRoot /usr/share/cups/doc
RequestRoot /var/spool/cups
ServerBin /usr/lib/cups
ServerRoot /etc/cups
TempDir /var/spool/cups/tmp
Browsing Off
BrowseProtocols CUPS 
BrowsePort 631
BrowseInterval 30
BrowseTimeout 300
BrowseAllow all
BrowseOrder allow,deny
ImplicitClasses On
ImplicitAnyClasses Off
HideImplicitMembers Yes
BrowseShortNames Yes
RootCertDuration 0
# Unknown
defaultauthtype Basic
<policy default>
<limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
require user @OWNER @SYSTEM
order deny,allow
</limit> 
<limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
authtype Default
require user @SYSTEM
order deny,allow
</limit> 
<limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
authtype Default
require user @SYSTEM
order deny,allow
</limit> 
<limit Cancel-Job CUPS-Authenticate-Job>
require user @OWNER @SYSTEM
order deny,allow
</limit> 
<limit All>
order deny,allow
</limit> 
</policy>
Beim WinXP-Client sind in der Registry gesetzt unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters:
requiresignorseal=0
requirestrongkey=0
sealsecurechannel=1
signsecurechannel=1
Für die WinXP-Clients werden die Maschinenaccaounts (Clientpc01$) sowohl in der Linux- aus auch der Sambaverwaltung (offenbar) korrekt angelegt.
Die Netzwerkanmeldung bei Rechnerstart ist ohne Verzögerung (d.h. so wie früher auch).

Worin kann die Ursache für die Verzögerung beim Ausdruck liegen? Was können wir verändern?
 
OP
L

luser

Newbie
Hat keiner eine Idee woran es liegen kann (das er sich 2x mit der Freigabe verbindet)?
 
OP
L

luser

Newbie
Hallo,

nachdem auch ein Update auf die Samba-Version 3.2.0-37.1 nicht geholfen hat, haben wir uns entschlossen ein Downgrade auf die Version 3.0.28-1.1 vorzunehmen - mit Erfolg. Die Initialiserung der Druckaufträge sowie das Erstellen der Warteschlangenanschlüsse in WinXP (Drucker+Fax--> Servereigenschaften--> Anschlüsse-->Hinzufügen-->lokaler Port-->\\server\warteschlange) dauert nicht mehr ca. 90s sondern nur noch Sekundenbruchteile. Offenbar ist der mit Samba 3.2.0 eingeführte verschlüsselte Netzwerktransport (siehe http://news.samba.org/announcements/3.2_press_release/) nicht ausgereift oder WindowsXP verhält sich anders als es soll. Das Downgrade ist zwar nicht die optimale Lösung, aber momentan schein es nicht anders zu gehen.
Wir haben das Downgrade wie folgt durchgeführt:
- Samba gestoppt (rcnmb stop, rcsmb stop)
- das komplette Verzeichnis /etc/samba gesichert (umkopieren, bei uns speziell smb.conf, smbpasswd, smbuser)
- folgende Pakete in eine Verzeichnis auf dem Server legen und das Verzeichnis als Installationsquelle im Yast anmelden:
+ dmapi-2.2.8-22.i586.rpm (libdm.so.0 wird benötigt)
+ cifs-mount-3.0.28-1.1.i586.rpm
+ libsmbclient0-3.0.28-1.1.i586.rpm
+ libsmbsharemodes-3.0.28-1.1.i586.rpm (evtl. nicht benötigt?)
+ samba-krb-printing-3.0.28-1.1.i586.rpm
+ samba-client-3.0.28-1.1.i586.rpm
+ samba-3.0.28-1.1.i586.rpm
+ samba-vscan-0.3.6b-1.1.i586.rpm (sofern vscan in Samba verwendet)
- die oben genannten Pakete installieren
--> Achtung: mit Yast prüfen, ober er wirklich 3.0.28 installiert oder die Standardversion 3.2.0-22.1.
Im Zweifel im Yast bei Samba-->Versionen--> Häckchen auf 3.0.28 statt 3.2.0 setzen
- Verzeichnis /etc/samba sichern (umkopieren, um Originale der Configs von 3.0.28 zu sichern - man weiß ja nie)
- zurückkopieren der Sicherung von /etc/samba/ der Version 3.2.0 in das aktuelle Config-Verzeichnis (bei uns smb.conf, smbpasswd, smbuser)
- Samba starten (rcsmb start, rcnmb start)
Dann lief es bei uns sofort.
An den Einstellungen von Cups haben wir keinerlei Änderungen vorgenommen.

Jörn

(an den Admin: insofern könnte dieser Thread als gelöst markiert werden)
 

rolle

Guru
Die Markierung kannst und solltest Du selbst machen. ;) Editiere Deinen ersten Post im Fred und ändere die Überschrift entsprechend ab, fertig.
 
OP
L

luser

Newbie
NACHTRAG:

Hallo,

die Samba-Version 3.2.3 für Opensuse 11.0 ist verfügbar. Schon in der Version 3.2.2 wurde in den Release Notes eine Beseitigung der Druck-Timeouts bzw. der Timeouts bei Zugriff von WinXP auf Samba-Freigaben beschrieben. Wir haben die Version 3.2.3-1.128 installiert und es gibt keine Verzögerungen beim Ausdruck.
Insofern empfehle ich allen Nutzern der Version 3.2.0 statt des Downgrade auf 3.0.28 ein Upgrade auf die Version 3.2.3. Die RPMs gibt es bei http://www.samba.org unter Binaries --> Suse/3.0/11.0/.

Jörn
 
Oben