Workshop - 프린트 서버
상태바
Workshop - 프린트 서버
  • 승인 2005.07.22 00:00
  • 댓글 0
이 기사를 공유합니다

윈도-리눅스, OS 달라도 프린팅은 함께…
삼바·CUPS 등 두 가지 기술 이용 … 하드웨어·유지보수 비용 절감

리눅스가 서버에 도착하고 데스크톱에서 영역을 넓혀감에 따라 이제 윈도와 리눅스의 다양한 버전간에 상호운용성을 보장해야 하는 곳이 많아지고 있다. 이는 분명 쉽지 않은 일이며, 가장 기본적인 작업에 속하는 프린팅의 경우도 마찬가지다. 적절히 구성된 교차 플랫폼 프린팅 환경을 이용하면 하드웨어와 유지보수에 들어가는 비용을 줄일 수 있다.

적절한 교차 플랫폼 프린트 툴이 없을 경우, 리눅스 클라이언트는 리눅스 프린트 서버로 한정되며, 윈도 클라이언트는 윈도 프린트 서버로 한정되기 때문에 네트워크 프린팅 하드웨어와 유지보수에 들어가는 비용이 두 배가 될 가능성이 많다. LDP나 LPRng와 같이 오래된 네트워크 프린팅 방식들이 언제나 도움이 되지는 않을 것이다. 이러한 기술에 대한 업체 확장판은 프린터 브라우징, 원격 프린트 서버 관리, 페일오버, 클러스터링, 그리고 인증 및 권한부여, 시스템과의 통합 등과 같은 많은 기능들을 지원하지 않거나 해도 제대로 하지는 못한다.
하지만 리눅스-윈도 혼합 환경을 위한 프린팅 솔루션을 제공하는 두 가지 기술이 있는데 바로 삼바(Samba)와 CUPS(Common Unix Printing System)다. 이들 중 하나를 사용하거나 두 가지를 함께 사용해서 강력한 교차 플랫폼 프린트 셋업을 만들 수도 있다.

삼바와 CUPS
오픈소스 소프트웨어 스위트인 삼바는 SMB(Server Message Block) 네트워크 프로토콜을 사용함으로써 리눅스가 있는 PC와 같은 비 윈도 기계가 마이크로소프트에서 선호하는 네트워킹 프로토콜을 이용해 윈도 박스와 통신할 수 있게 해준다. 삼바는 파일 공유, 인증, 권한부여, 그리고 이름 및 프린트 서빙 등과 같은 윈도 서버 서비스 기능들을 상당 수 제공한다. 삼바 버전 3 이상에서는 또한 NT ACL(Access-Control Lists), 액티브 디렉토리 및 LDAP 등과 같은 윈도 도메인 제어 방안들과도 잘 통합된다.
CUPS는 네트워크 통신용으로 SMB가 아닌 IPP(Internet Printing Protocol)를 사용한다. HTTP로의 확장판(extension)인 IPP는 모든 주요 리눅스 배포판과 윈도 2000 및 그 이상에서 지원된다. 이 프로토콜은 폭넓은 업체 지원을 향유하고 있으며, 주요 OS들에서 표준 네트워크 프린팅 기술로 자리잡고 있다. 윈도 9x는 IPP를 원래부터 지원하지 않지만 마이크로소프트에서 필요한 소프트웨어를 다운로드 받을 수 있다.
하지만 CUPS는 단순한 프린트 스풀러 이상의 역할을 한다. 이 소프트웨어 스위트의 API는 써드파티 소프트웨어의 출력 명령어를 처리하며, 프린트 대기열 관리, 프린트 필터, 스케줄러 및 웹 관리 인터페이스 등을 제공한다. 별도의 프린팅 서브시스템을 이용해 프린팅을 하는 삼바와 달리 CUPS는 프린트 작업을 받는 것에서부터 프린팅, 관리 및 통계 수집에 이르기까지 로컬, 혹은 네트워크 프린팅의 모든 기능을 다룬다.

스풀러 전용 구성
네트워크에서의 프린팅은 간단하다. 클라이언트 기계가 보통 타깃 프린터용의 업체 전용 프린터 드라이버를 이용해 프린트 작업을 준비한다. 일단 프린트 작업이 완료가 되면 프린트 파일이 프린트 서버로 보내지며 이 서버에서는 파일을 스풀링 하게 된다. 프린터가 사용 가능해지면 프린트 스풀러가 그 프린터로 프린트 작업을 보낸다.
다음 <그림 1>에서는 별도의 전환 작업 없이 출력용으로 전달되고 있는 프린트 작업을 보여주고 있다. 프린트 서브시스템은 LPD, LPRng, 윈도 프린트 스풀러 또는 다른 어떤 적당한 프린트 스풀러도 될 수 있으며, 프린트 작업용으로 간단한 패스 쓰루(pass-through)로 작동한다. 이 스풀러 전용 구성은 대부분의 기업에서 만들기 쉽지만 관리하기가 어렵다는 난점이 있다.
이것은 프린터가 교체되거나 업그레이드되는 경우가 거의 없는 소호 환경에서 가장 효과를 발휘할 수 있다. 스풀러 전용 셋업은 보다 큰 설치기반에서는 잘 작동하지 않는데, 그 이유는 각각의 클라이언트가 그 업체 전용 프린트 서버와 별도로 구성돼야 하기 때문이다. 운이 좋다면 골칫거리정도겠지만, 프린트 드라이버가 새 업데이트를 받거나 타깃 프린터를 업그레이드할 경우에는 악몽이 될 수도 있다. 이런 드라이버를 관리하기 위해서는 각각의 데스크톱을 일일이 찾아다니거나 원격 관리 소프트웨어를 이용해 클라이언트로 드라이버를 푸싱해야 한다.
그리고 스풀러 전용 구성은 페일오버나 클러스터링을 지원하지 않는다. 클라이언트는 프린트 서버를 이름으로 알아야 하며, 프린트 서버가 사용 가능하지 않을 경우에는 프린트 작업이 다른 서버에 자동으로 전달되지 않는다. 마지막으로 모든 프린트 스풀러가 최신 인증 및 권한부여 방안을 지원하는 것은 아니다. 프린트 서버는 프린팅 자원으로의 액세스를 제어하며, 각각의 클라이언트에게는 액세스가 분명하게 허용돼야 한다. 따라서 이 단계는 종종 건너뛰는 경우가 많으며 프린트 서버는 프린터 자원에 대한 어떠한 제어도 없는 비보안 중앙 프린트 서버가 된다.
삼바 네트워킹 소프트웨어는 스풀러 전용 구성으로 이용할 수 있다. 삼바가 더 많이 포함된 설치기반은 이러한 보안 문제를 극복하고 클라이언트로 프린터 드라이버 업로드를 제공할 수 있다. 대신 삼바 프린트 스풀러는 페일오버나 클러스터링은 지원하지 않는다(CUPS도 스풀러 전용 구성으로 이용할 수는 있지만 적절한 사용이라고 할 수 없다).

서버에서 손을 댈 때
유연한 네트워크 프린팅 아키텍처일수록 프린터 서버로 하여금 프린트 작업에 대해 무언가를 하게 만든다. 다음 <그림 2>를 보면 클라이언트는 업체 전용의 프린터 드라이버를 이용해 프린트 작업을 포매팅하는 게 아니라 프린트 작업을 포스트스크립트(PostScript) 포맷으로 전환하고 작업이 프린트 서버로 전달된다. 프린트 스풀러는 타깃 프린터의 포스트스크립트 기능을 기반으로 구성돼 있다.
프린터가 네이티브로 포스트스크립트를 지원할 경우 프린트 스풀러는 더 이상의 변경 작업없이 프린터로 프린트 작업을 곧장 전송한다. 타깃 프린터가 포스트스크립트를 지원하지 않을 경우에는 프린팅 서브시스템이 프린트 작업에 하나 이상의 필터를 적용시킨다. 이러한 필터는 들어오는 프린터가 이해하는 언어면 어떤 것이든 그것으로 수신 포스트 스크립트 명령어를 전환시킴으로써 작업을 처리한다.
이러한 아키텍처의 큰 이점은 PLC나 ESC/P2 등과 같은 프린터 전용 명령어가 더 이상 클라이언트에 있는 업체 전용의 프린터 드라이버에 의해 만들어지지 않는다는 점이다. 이들은 프린트 서버에 있기 때문이다. 클라이언트의 프린터 드라이버는 보통 윈도 클라이언트에 설치되는 업체측에서 공급한 드라이버를 대체하는 것으로 포스트스크립트 명령어를 이용해 프린트 작업을 만든다. 프린트 서버에서 프린터를 업그레이드할 경우, 새로운 필터 세트를 이용하도록 프린트 서버에 있는 프린팅 서브시스템을 구성할 수 있다. 클라이언트는 기존의 프린트 드라이버가 기능을 잃어버리거나 오류를 발견했을 경우에만 변경될 것이다.
CUPS는 이러한 아키텍처를 이용하며 기본적인 또는 약식의 인증이나 증명서 기반 보안을 이용해 강력한 인증 및 권한부여를 제공하며, 웹 브라우저를 통한 프린터 브라우징도 제공한다. CUPS는 표준 웹 브라우저, 자동 오류복구 및 클러스터링. 내재, 혹은 명시 클래스(implicit/explicit classes : 네트워크에서 같은 이름이 붙은 프린터들의 그루핑) 이용, 프록시 프린팅, 암호화, 그리고 점점 커지는 프린트 필터 라이브러리 등을 통해 원격 프린트 서버 관리를 지원한다.
CUPS는 또한 다중 백엔드를 제공하는데, 이들은 직렬 및 병렬 장비, USP 포트, 윈도 프린트 서버로의 프린팅을 위한 삼바 공유, 그리고 향상된 페일오버와 클러스터링을 위한 다른 CUP 서버들 등 다른 타킷들에게 결과물이 보내질 수 있게 해준다.

함께 사용하기
네트워크 프린팅을 실행하는 훨씬 더 좋은 방법은 삼바와 CUPS를 함께 사용하는 것이다. 삼바는 프린트 스풀러처럼 작동하는데, 이것은 프린트 서버가 AD 도메인에 포함되거나 LDAP와 같은 메쏘드를 이용해 인증할 수 있게 해준다. 이를 통해 내장된 CUPS 인증 기능이 더욱 향상되고 강화될 수 있을 뿐만 아니라 클라이언트로 프린터 드라이버 업로드를 제공하도록 삼바를 구성할 수 있기 때문에 각각의 클라이언트 기계를 건드릴 필요가 없게 된다. 이러한 업로드는 사용자가 로그온을 할 때 스크립팅 및 실행될 수 있다.
삼바는 또한 AD나 LDAP 디렉토리로 프린터를 퍼블리싱해 이들의 디스커버리를 만들고 네트워크에서 보다 편리하게 이용할 수 있다. 이러한 혼합 방안은 혼합 네트워크 프린팅의 정수로 윈도와 리눅스가 함께 잘 돌아갈 수 있게 보장해주는 유연하고 구성 가능하며 안정적인 네트워크 프린팅 아키텍처를 가져다준다.
윈도 프린트 서버를 이용할 경우에는 리눅스 클라이언트에서 로컬로 CUPS를 실행할 수 있으며, 이 클라이언트는 적절히 구성된 상태에서 포스트스크립트 출력 명령어를 타깃 프린터가 필요로 하는 것들로 전환시킨다. 그러면 CUPS 소프트웨어는 윈도 프린트 서버로 프린트 작업을 보낸다. 따라서 리눅스 클라이언트에서 CUPS를 돌리고 있다면 윈도 프린트 서버에서도 이것을 돌릴 수 있게 된다.
이와는 달리 CPUS를 돌리는 리눅스 기계를 배치함으로써 윈도 프린트 서버를 활용하는 방식도 있다. 이 리눅스 박스는 네트워크 프린팅용으로 리눅스와 윈도 클라이언트 모두가 사용할 수 있다. 그리고 리눅스 기계는 실제 프린팅을 하는 게 아니라 프린트 작업을 윈도 프린트 서버로 전달하며, 윈도 프린트 서버가 이 작업을 프린터로 전송한다. 이러한 방식은 윈도 프린트 서버를 유지하면서 CPUS의 이점을 누릴 수 있게 해준다.
네트워크 어플라이언스도 네트워크에서 윈도-리눅스 프린팅을 할 수 있는 한 가지 방법이 된다. 하드웨어 기반 방화벽이나 라우터와 유사한 이 어플라이언스는 기존의 네트워크와 하나 이상의 프린터로 연결이 되며, 네트워크에게 프린터를 광고하고 네트워크 프린팅을 제공한다. 웹 브라우저를 이용해 프린터를 구성하고 보안 상태를 변경할 수 있다. 하지만 이러한 어플라이언스를 선택할 때는 그 제품이 프린팅 작업을 할 모든 운영시스템을 지원하는지 반드시 확인해야 한다.


<그림 2> 있는 그대로
클라이언트 애플리케이션 업체 프린터 드라이버 네트워크(SMB나 IPP) 프린트 서버 프린트 스풀러 프린트 대기열 프린터

있는 그대로 또는 패스 쓰루 프린트 아키텍처를 이용해 변경되지 않은 프린트 파일이 프린터로 전송되며, 프린트 서브시스템은 프린트 작업을 위한 하나의 간단한 패스 쓰루의 역할을 한다.

<그림 2> CUPS 서버 프린팅
클라이언트 애플리케이션 포스트스크립트 프린터 드라이버 네트워크(SMB나 IPP) CUPS 프린트 서버 포스트스크립트 번역기 프린트 스풀러 프린트 대기열 소프트스크립트 프린터 비 포스트스크립트 프린터

CUPS는 프린트 작업 수신에서부터 프린팅, 관리 및 통계 수집에 이르기까지 모든 프린팅 작업을 다룬다.

문제가 발생했을 때

가끔 무언가 잘못돼 프린팅을 할 수 없을 때가 있다. 이러한 장애를 관리하기 위해서는 인증이나 권한부여와 같은 각각의 새로운 기능을 다시 돌려보면 문제를 야기한 것을 찾을 수 있다(이것이 문제의 원인일 경우). 이 외에 알아야 할 몇 가지 문제 해결책들을 소개하자면 다음과 같다.

>> 삼바 과구성(overconfigured) : smb.conf 파일에는 많은 옵션들이 있으며 이들 중 상당수는 프린팅과 관련이 없으면서도 클라이언트가 프린트 서버에 액세스를 하는 방식에 영향을 미친다. 프린팅을 하는 데 필요한 가장 기본적인 정보만으로 시작한 다음 필요에 따라 구성을 추가하라.

>> CUPS에 액세스할 수 없음 : 기본적으로 CUPS는 웹 관리자 액세스를 이용해 로컬 기계에서만 프린트 서버로 설치가 된다. 따라서 원격 기계에서 접속할 경우 웹 인터페이스의 관리 영역에 액세스하지 못할 것이다. cupsd.conf 구성 파일에서 이 기능을 끄고 어디서든 관리자 액세스가 가능하게 하라. 그런 다음 구성이 완료되고 난 후 이 제한을 복구시키면 된다.

>> 방화벽 차단 : CUPS용으로 TCP 포트 631, 삼바용으로 UDP 포트 137과 138, 그리고 TCP 포트 139를 통한 액세스를 허용하라.

>> 허용 및 거부 문제 : cupsd.conf에 포함된 CUPS용의 허용 및 거부 지침을 확인하라. 이들은 아파치 같은 소프트웨어에서 사용되는 액세스 제어 규칙과 유사하다. 클라이언트와 그 서브넷에 프린트 서버로의 접근 권한이 있는지 확인하라.

Step by Step

윈도-리눅스 프린트 아키텍처 구성 팁

1. 어떤 아키텍처가 자신의 필요에 가장 잘 맞는지 결정하라. 회사나 사무실에서 기본적인 프린팅 서비스만 필요하다면 간단한 삼바 서버만 있으면 충분하다. 보다 강력한 서비스와 관리를 위해서는 삼바-CUPS 혼합 서버를 선택하라.

2. 프린트-서버 소프트웨어를 설치하라. 많은 리눅스 배포판들은 삼바와 CUPS가 이미 설치된 상태로 출시된다. 프린트-서버 소프트웨어가 포함돼 있지 않을 경우에는 이것을 다운로드하라.

3. 프린트 서버가 로컬 프린터로 프린팅을 할 수 있는지 확인하라. 가장 익숙한 것으로 어떤 것이든 로컬 프린팅 서브시스템을 사용하면 된다. 삼바와 CUPS는 모두 LPD와 같은 예전 프린팅 서브시스템으로도 작동된다. 새로운 프린트 서버를 만들 경우에는 CUPS를 로컬 프린팅 서브시스템으로 이용하라.

4. 네트워크 프린팅을 허용하는 가장 기본적인 구성 세팅을 이용하라. 삼바의 경우 여기에는 smb.conf 파일 편집이 포함되며, 프린팅을 허용하는 데 필요한 것만 추가된다. CUPS의 경우 cupsd.conf 파일에 CUPS 데몬 구성 세팅이 저장된다. cupsd.conf 파일을 수동으로 편집하는 대신 이 소프트웨어가 제공하는 웹 인터페이스를 사용할 수도 있다. 브라우저를 localhost:631에 포인팅하면 웹 관리 인터페이스로 액세스할 수 있다.

5. 기능을 추가하라. 클러스터링, 페일오버, 인증, 권한부여, 부하조절, 드라이버 업로딩, 디렉토리 서비스 통합 및 브라우징 서비스 등을 필요에 따라 추가하라.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.