lpr
rga
rga na centrum.cz
Neděle Květen 31 18:14:51 CEST 2009
> fuj, raw printing :)
No jo, někdy nic nenaděláš...
já se pořád snažím o ideální svět...
... ale pořád mi někdo háže klacky pod nohy... ;-)
Když už jsem to nakousl, třeba někdo (ze síťařů) dá tip,
snad to nebude až tak off-topic...
... Linuxu se to minimálně trošku týká ;-)
Mám tu takový něpěknou problém:
Snažil jsem se o troubleshooting remote printingu,
(vzdálený) ERP server v matce tiskne přes (vzdálený) Linux
na (pro mě) lokální tiskárnu s printserverem,
přes VPN tunel a firewall.
Podle externí firmy, co outsourcuje firewall,
komunikaci na cestě nic neblokuje,
a neví, kde by mohl být problém...
Prý jedině v tiskárně (jak jinak ;-)).
Tiskárna je Zebra ZM400 s interním print serverem.
Konfigurace tiskárny (nastaveno firmou implementující ERP)
na Linuxu:
/usr/local/etc/printcap
##LPRNGTOOL## QUEUE
.common
:mc=0
:mx=0
:sd=/var/spool/lpd/%P
:sh
##LPRNGTOOL## QUEUE filtertype=IFHP ifhp_options= printerdb_entry=
zm400
:cm=Zebra ZM400
:ff='\f'
:lf=/var/log/lpd
:lp=192.168.250.16%9100
:lprngtooloptions=FILTERTYPE="IFHP" IFHP_OPTIONS="" PRINTERDB_ENTRY=""
:mx=0
:sd=/var/spool/lpd/%P
:sh
Když byla tiskárna ve stejném subnetu jako ERP server,
vše fungovalo jak mělo.
Když se přestěhovala z mateřské firmy k nám
(do jiného subnetu dostupného pro ERP server přes VPN a firewall),
a změnila se IP adresa v printcap, tisk přestal fungovat.
Resp. začal fungovat velice zvláštně.
V tiskové úloze se přes "escape sequence" (Zebra ZPL II language)
tisknou etikety. Pokud se tiskne 1-4 etikety, jsou vytištěné správně.
Pokud se tiskne víc než 4 etikety, nevytiskne se nic.
Sebral jsem Linuxu připravený print job a zkusil ho tisknout "manuálně",
přes právě zmíněný
cat printjobfile | netcat -w 1 192.168.250.16 9100
Na tiskárně se vytiskly 2 etikety (v souboru jich bylo 20) a konec.
Tiskárna ve svém logu hlásila
Job Information: TCP/IP * IP Address 192.168.251.2 * TCP Port 9100 * 1024 Bytes
Zkoušel jsem také tisknout z jiného Windows Server 2003 v daném subnetu,
a to pomocí LPR (TCP 515)
lpr.exe -S 192.168.250.16 -P raw -o l -d printjobfile
a občas vidím (v TCPView od Sysinternal) connection ESTABLISHED
ze serveru na tiskárnu. Ale nic se nevytiskne a po timeoutu lpr.exe
skončí s hláškou
Error: print server did not accept request. Job aborted.
nebo
Error: data may have been lost. Could not abort job.
Jindy se spojení "zasekne" ve stavu SYN_SENT a po vypršení timeoutu
dostanu hlášku
Error: print server unreachable or specified printer does not exist.
Zkusil jsem tedy soubor s print jobem zkopírovat přes FTP k sobě
a pustit ten stejný job u mě, a jak přes Windowsí lpr.exe,
tak přes netcat na Linuxu se vytiskne všech 20 etiket
naprosto správně.
Teď nastává otázka: co je špatně.
Určitě něco, co souvisí se sítí, ale co?
Pár "zajímavostí":
ping s většími packety na tiskárnu "vychází" celkem zvláštně:
vzdálený server na lokální tiskárnu, packety > 1992 B nejsou "odpovězeny"
lokální počítač na lokální tiskárnu, packety > 1463 B nejsou "odpovězeny"
Zaráží mě, proč přes VPN odpovídá na větší packety než v LAN?
MTU pro LAN i VPN je 1500.
Začal jsem upravovat print job tak, abych dosáhl různé velikosti,
a zjistil, že pokud je velikost souboru s print jobem
(soubor s escape sekvencemi)
do 2396 B včetně, jsou vytištěny všechny etikety,
pokud je velikost souboru 2397 B a větší, jsou vytištěny
jen první dvě etikety (resp. 1024 B souboru),
a tomu odpovídá i výše uvedený řádek z logu tiskárny.
Zkusil jsem upgrade firmware tiskárny na nejnovější
(jeden z bugů odstraněných v předchozím firmware byl i
"The Internal 10/100 Print Server now responds
to TCP packets when sent at a high rate."), no nepomohlo.
Reportoval jsem problém do Zebry, no zatím bez reakce.
Ještě jsem si teď všiml v changelogu firmware u jedné
z dřívějších změn tohoto:
"The maximum MTU for the Internal Wired Print server
on the ZM400/ZM600 has been set to 1460."
Nevím, jestli by konkrétně tento případ mohl souviset
s Path MTU Discovery a s blokováním
ICMP Type 3: Destination Unreachable
Code: 4 Fragmentation Needed and Don't Fragment was Set
na firewallu.
Externí firma spravující firewall tvrdí, že nic neblokují
a že mají vše nastaveno správně. Už jsme ale párkrát
na "profesionalitu" (a maximálně paranoidní zabezpečení
firewallu nejen "externě", ale i v rámci VPN matka/dcera)
této firmy doplatili...
Nedávají ty čísla nějakému síťaři nějaký nápad? Tip?
V čem by mohl být problém?
Podezdřívám nějakou souhru VPN + print server v tiskárně.
Ale nemám zdání, co dál zkusit...
--
rga <mailto:rga na centrum.cz>
Další informace o konferenci Linux