< logout 코너 >

배철수 : 리눅스 월드 발행인

 

 

리눅스와 통신

    엊그제 사무실에 누가 전화를 해왔다. “리눅스를 방금 다 깔았는데 부팅하니 login 이라 나오네요. 그래서 깔 때 넣었던 패스워드를 넣고  <enter>를 눌러도 틀렸다고 나오는데요.. 어떻게 해야죠?” 그럼 login에 root라고 넣고 패스워드 나올 때 깔 때 넣었던 패스워드 넣어보세요.  그러자 “와! 되네요” 그리고서 급히 전화를 끊는다.

    문득 내가 처음 유닉스를 접했을 때의 기억이 난다. 80 몇 년으로 기억하는데 당시 도스만 사용하다 우연히 유닉스를 배우게 되었다. 호스트와 9600bps 속도로 단말기선으로 연결된 더미터미널에서 유닉스를 처음 접했는데 login 이란 메시지가 떴을 때 뭘 쳐야 되는지 몰라 강사 얼굴만 보고 있었다.

    강사가 칠판에 적어준  패스워드를 입력하는데 대문자와 소문자가 섞인 패스워드를 도스식으로 전부 소문자로 넣어 login이 안되어 애를 먹고 있으니 강사가 “??번 터미널 아직도 login이 안되었네요” 한다.

    깜짝 놀랐다. 저 강사 무슨 투시안을 갖고 있나? 저 앞쪽에서는 내 단말기 뒤 부분 밖에 안보이는데  어떻게 내 화면을 볼 수 있지? 그 의문은 한참 뒤에야 풀렸지만 도스 밖에 몰랐던 내가 유닉스를 도스식으로 생각한게 어쩌면 당연한 일인지도 모른다.

    그때 유닉스를 처음 보고 궁금했던게 또 있었다. 단말기가 케이블 3가닥으로 호스트와 연결되어 있는데도 화면 나오는 속도가 도스에 비해 별로 느리지가 않았다. 그것도 20대가 넘게 연결돼 있는데도. 그래서 90년엔가  회사에 처음으로 PC용 유닉스를 도입해서 설치할때도 제일 먼저 멀티포트부터 설치해서 집에서 모뎀으로 회사의 유닉스를 연결해 보았다.

    리눅스를 처음 설치할 때 대부분의 사람들은 우선 Xwindow부터 시작한다. 색갈 맞추고 해상도 높이고 화면 구성 멋있게 해보고 등등. 그런데 얼마 지나면 Xwindow로 뭘 할까 생각해 본다. 워드야 깔면 되니까 별로 어려운게 없고 더 어려운게 없나 생각하다 인터넷 연결해서 네트스케이프 써야겠다고 생각할 것이다.

    알다시피 네트스케이프는 처음에 리눅스용으로 개발되었다. 그러다가 상용화를 위해 윈도우용으로 바뀐것이다. 네트스케이프 뛰우는거야 별로 어려운게 아닌데 인터넷 연결하는게 문제다. 리눅스에서 통신프로그램으로 하이텔 연결하는 것은 모뎀 포트 맞추고 통신프로그램의 파라메터만 몇 개 조정하면 되지만 PPP 연결은 단순하지 않다.

    지난번에 모 기업체의 두 사무실을 두 대의 리눅스와 PPP로 연결하는 작업을 하게 되었다.  그런데 우선 라인 이상 여부를 확인하기 위해 한쪽 사무실에서 미니컴으로 다른쪽 사무실의 리눅스를 연결 login하였다. 그러자 옆에서 지켜보던 그 회사 전산실 관계자가 이쪽 리눅스에서 telnet 명령으로 저쪽 리눅스를 부르더니 telnet 연결이 왜 안되냐고 묻는다.

    통신을 많이 한 사람도 두 연결이 다르다는 것은 알면서도 막상 어떻게 다른지 설명하려면 어렵다.  단순하게 생각하면 쉘어카운트로 login하면 이쪽 PC는 단지 단말기 즉 키보드와 모니터 기능만 담당하고 실제 프로그램 실행은 연결을 받아주는 호스트 쪽에서만  가능하다. 이에 비해 PPP로  연결하면 양쪽은 모두 독립적인 호스트로 작동한다.

    따라서 클라이언트/서버 프로그램처럼 양쪽에서 동시에 프로그램이 실행되려면 PPP 연결로만 가능하다. 그렇다고 PPP 연결을 해주는 쪽이 서버는 아니다. 어느 쪽이 서버가 되는지는 프로그램을 실행할 때 결정된다. (웹브라우저도 여기에 속한다. 상대 호스트에 아파치란 웹서버 프로그램이 돌아가고 내 PC에는 클라이언트인 웹브라우저 프로그램이 돈다.)  
    리눅스를 실제로 활용하는 경우는 전문 프로그래머가 아니라면 보통은 통신과 네트워킹 분야다. 나는 별로 그런 곳에 리눅스를 쓸 일이 없다고 말할지 모르나 집에서 인터넷이나 PC통신 안쓰는 사람은 거의 없을 것이다.  여기에 리눅스를 사용한다면 윈도우보다 훨씬 뛰어난 기능을 발휘할 수 있다.

    예를들어 집에 케이블 TV 망이나 ADSL로 고속 인터넷을 사용한다면 리눅스에 연결하는게 유리하다. 집에 두 대의 PC가 있다면 리눅스와 다른 PC를 랜으로 연결하면 두 대의 PC에서 동시에 인터넷 사용이 가능하기 때문이다. 두번째 피시는 리눅스일 필요는 없고 두 대가 아닌 여러 대의 PC도 연결이 가능하다. 윈도우에서도 가능하다고 하지만 여러면에서 리눅스가 낫다.

    업체들은 이런식으로 사용하는걸 계약 위반 운운 하기도 하기도 하나 인터넷 요금이 그 케이블에 대한 사용료를 지불한 것으로 해석되므로 이 케이블에 몇 대의 PC를 연결하는가는 업체에서 제한할 성질이 아니다. 미국에서도 이런 식으로 사용하는걸  제한을 하지 않는다.

    통신을 하는 사람들이 가장 관심을 갖는 것은 속도다. 정확히 말하면 같은 비용이라면 어느 방법을 쓰는게 가장 빠른 속도를 낼 수 있느냐이다. 많은 돈을 들이면야 Wan(Wide Area Network)에서 40Mbps까지도 낼 수 있지만 일반인들에게는 그렇게 빠른 속도는 필요없을 것이다.

    지금까지는 일반인들은 원격지의 두 지점을 연결하거나 인터넷을  연결할 때 주로 음성전화선과 모뎀을 사용하였다. 소규모 ISP들도 인터넷 서비스에 모뎀을 사용하고 있다. 그러나 인터넷에서 멀티미디어 서비스가 증가하면서 모뎀의 33.6k 최대 속도로는 부족하다. 56k가 있기는 하나 그것도 한 방향만 되고 투자비가 많이 든다.

    본인도 여러 TT선 업체에서 모뎀의 33.6k 보다 빠르고 비교적 통신비가 저렴한 연결 방법이 없느냐는 질문을 많이 받는다. TT선 한 개에 여러 대의 PC를 연결해서 동시에 인터넷을 사용하는 경우는 33.6k 속도로는  느린게 사실이다.

    이에대한 답변을 하려면  여러가지를 고려해야한다. 우선은 장비에대한 고려이다. 가급적 1 회선 당 장비 값이 싸야한다. 다음에 회선비도 고려해야 한다. 아날로그 라인으로는 33.6k 이상을 낼 수는 없고 디지털 라인을 써야하는데 이는 아날로그 라인에 비해 회선비도 비싸지만 장비값도 만만치가 않다.

    케이블 TV나 ADSL은 소규모 업체들은 투자하기 힘드므로 제외하면 현재 가능한 대안은 디지털 전용선과 ISDN이다.

    ISDN은 속도도 128k로 무난하고 장비값도 싸다. ISDN 모뎀은 20만원대이다. 그리고 리눅스에 멀티포트를 장착하면 PC 한대에 수십회선을 연결할 수도 있다. 그런데 우리나라에는 아직 ISDN 전용선이 나오지 않고 있다. 외국에는 이미 ISDN 전용선으로 많은 업체들이 인터넷 서비스를 하고 있는데 우리나라는 아직도 다이얼업 밖에 제공하지 않고 있다. 통신에 관한 한 우리나라는 아직도 선진국이라고 할 수 없는 것 같다.

    ISDN을 다이얼업으로 접속하면 서버를 구축할 수 없다. 또 인터넷 사용료 외에 3분당 100원 가까운 통신비를 지불해야 한다.

    디지털 라인으로 라우터나 싱크보드 같은 고가의 장비를 사용하지 않고 또 리눅스에 여러 라인을 직접 연결할 수 있는 속도는 57.6k와 115.2k이다. 이 방법은 56k나 128k 라인의 DSU나 FDSU에 싱크/어싱크 변환 어뎁터를 연결하여 리눅스의 시리얼포트나 멀티포트에 연결하는 방식인데 멀티포트만 장착하면 리눅스 한 대에 수십회선을 연결할 수 있고 장비값도 DSU를 임대하면 30만원선이면 가능하다. 그러나 회선비는 12-13만원으로 아날로그 라인보다 4배 이상 비싸다.

    아날로그 라인에서 모뎀을 쓰는 경우 라인속도는 33.6k이지만 모뎀에서 2배 정도 압축해 주므로 압축이 가능한 웹 데이터는 60k 정도의 전송속도가 나와 56k 디지털 라인보다 빠를 수도 있다. 단 FTP로 파일을 전송 받는 경우 파일이 이미 압축되어 있다면 56k 디지털 라인이 모뎀보다 2배 정도 빠르다.

    리눅스에 라인을 직접 연결해서 128k보다 높은 속도를 내려면 조금 어렵다. 이유는 PC에 장착된 시리얼포트가 115.2k가 최고 이기 때문이다. 요즘 230k 가 가능한 고속 시리얼 포트가 나오고 있고 멀티포트의 경우는 920k도 가능하나 디지털 라인을 리눅스에 연결하는게 문제다.

    PC의 시리얼포트에서  지원하는 속도는 57,600  115,200  230,400 순이나 디지털 라인은 56,000/64,000 128,000 256,000 이런 순서이고, PC의 시리얼 포트는 어싱크 방식이나 디지털 라인은 싱크 방식이므로 디지털 라인의 CSU에서 직접 PC의 시리얼포트에 연결할 수 없다.

    얼마전에  레이넷(http://www.raynet.co.kr)에서 사이클레이드 64포트 멀티포트가 장착된 리눅스 호스트에 PPP서버를 설치하고 56k 또는 128k 디지털 라인을 연결할 수 있게 설정해달라는 의뢰가 왔다. PPP의 경우는 윈95에서 login이 필요없는 auto ppp 기능을 넣어 달라는 주문도 곁들여서.

    그런데 그쪽에서는 갖고있는 DSU가 56k 어싱크를 지원한다면서 PC의 시리얼포트에 직접 연결해서 루프백 테스트를 했는데 이상 없다며 직접 연결해 보자고 한다.

    56k와 128k 디지털 라인으로  리눅스에 PPP 연결을 여러 번 해 보았지만(99년 2월호에 이에관한 기사를 썼었다) 모두 싱크/어싱크 어뎁터를 썼었고 직접 연결해본적은 없었지만 혹시 새로 개발된 DSU인가 해서 실내에서 두 대의 DSU를 설치하고 윈95에서 하이퍼터미널로 리눅스를 연결해 보았으나 역시 처음 몇자만 나오고 데이터가 깨졌다.

    57,600과 56,000의  속도 차이가 미세하므로 데이터 검출시의 간격에 큰 차이가 없어 루프백 처럼 한 바이트 씩 보낼 때는 깨지지 않으나 여러 바이트가 전송될 때는  점차 검출 간격에 오차가 확대돼 어느 순간부터는 전체가 깨지는 것이다.

    PC에서 시리얼포트나 멀티포트가 230k를 지원한다 해도 다른 문제는 통신프로그램에서 발생한다. getty 프로그램의 경우는 아직 230k가 지원되지 않는다. PPP는 230k가 지원된다.

    리눅스에 그동안 각종 서버를 구축해 보았지만 그 중에서는 PPP 서버가 비교적 어려운 측에 속한다. PPP 자체는 프로그램 한 개지만 시리얼포트, 모뎀, 통신회선 등의 여러 외부 조건에 따라 다양한 조정이 필요하기 때문이다.

    또 PPP 연결은 멀리 떨어진 두 대의 PC에서 이루어지므로 연결 과정에 여러 외부 요인이 작용한다. 따라서 연결이 안될 때 어느 부분이 장애가 있는지를 파악하기가 쉽지 않다. 다이얼업인 경우는 덜하지만 전용선인 경우는 특히 회선 업체의 협력이 필수적이다. PPP 서버의 경우 연결이 이루어지지 않을 때 어느 쪽 요인인지를 알기만 하면 일의 절반은 해결된 것이다.

     

멀티포트

    가끔 리눅스에서 가장 성능이 좋은 멀티포트 카드를 추천해 달라는 질문이 들어온다. 멀티포트 카드를 고를 때 가장 중요한 것은 속도와 안정성이다. 안정성은 비교적 테스트가 쉽다. 몇 달만 사용하면 파악이 가능하기 때문이다. 그러나 속도는 파악이 쉽지않다. 속도는 멀티포트가 설치된 호스트, 회선, 모뎀 등 다른 요소가 영향을 주므로 객관적인 파악이 어렵다. 본인이 처음 사용해본 멀티포트는 디지보드이다. SCO UNIX에서였는데 설치도 무척 까다로웠지만 가끔씩 먹통이 되서 애를 먹었다. 그러다 리눅스로 바꾼 뒤 95년 경 영국의 어느 대학생이 리눅스용 PC/Xe 디지보드 드라이버를 개발했다고 해서 몇일간 씨름해서 설치해 보았는데 드라이버가 불안해서인지 가끔식 다운되어 사용을 포기하고 로켓포트를  사용해왔다.

    멀티포트 중 가장 먼저 리눅스를 지원한 보드는 사이클레이드 보드였다. 그래서 이 보드는 커널 1.X.X 에서도 커널만 컴파일하면 바로 작동한다. 사용을 위해 별도의 프로그램이 필요치 않고 리눅스의 표준 시리얼포트에 사용하는 명령을 그대로 쓸수 있다.

    로켓포트는 커널 2.0까지는 별도의 드라이버를 필요로 했는데 2.2부터는 커널 컴파일만으로 설치가 가능하다. 하지만 셋업에는 setrocket 같은 별도의 프로그램이 필요하다. 위 두가지 보드는 모든 모델을 리눅스에서 사용이 가능하고 안정성이나 속도도 나무랄데 없다. 여러 업체의 PPP서버에 위 두 가지 멀티포트를 사용해 보았는데 한번도 말썽을 부린적이 없었다.

    디지보드는 최근에야 일부 구형보드의 드라이버를 디지보드사에서 비공식적으로 발표하였다. 그러나 최신보드는 아직도 리눅스에서 지원되지 않는다. 얼마전에 커널 2.2를 사용 PC/Xe 보드를 리눅스에 연결해 보았는데 안정성이나 속도가 쓸만했다. 하지만 장기간 테스트해보지는 못해서 뭐라 말할 단계는 아니다.

    가끔 국내에서 생산한  멀티포트카드에 대한 성능을 평가해 달라는 요청이 있는데 답변이 곤란하다. 일전에 모업체의 멀티포트에서 TT선으로 연결한 윈95쪽으로 ping으로 속도를 측정해 보았는데 위의 보드들에 비해 상당히 나쁜 결과가 나왔기 때문이다.  그 차이가 어느 정도인지를 말 할 수는 없다. ping 만으로 포트의 속도를 평가할 수는 없기 때문이다.

 

팩스 서버

    팩스 서버는 96년 경 화광교역에 설치해 준적이 있는데 지금도 쓰고 있는 것 같다. 그때 설치한 팩스 서버는 리눅스와 랜으로 연결된 윈95 PC에서 팩스라는 프린터로 인쇄를 하면 전화번호 입력 팝업 메뉴가 떠서 전화번호를 입력하면 리눅스에 연결된 팩스 모뎀에서 팩스가 나가는 방식이었다.

    여기에는 samba와 ghostscript, mgetty에서 제공하는 sendfax 등등을 사용했는데 거의 10개가 넘는 프로그램을 설치하고 조정해야 하므로 너무 귀찮은 작업이라 두 번 다시 하고 싶지 않았다.  Hylaxfax 프로그램을 사용하면 쉽게 가능하다는 말을 들었지만 테스트해 볼 기회가 없었다.  SuSE 리눅스에는 SuSEFAX라는 hylafax를 개조한 팩스 서버 프로그램이 들어있다.

    그런데 한달 여 전에 목포 넝쿨 인터넷에서 웹에서 입력한 내용을 팩스로 받을 수 있는  프로그램을 만들어 달라는 요청이 들어왔다.  넝쿨인터넷에 웹호스팅으로 홈페이지를 개설한 목포의 명동화원(http://www.koreanflower.co.kr) 에서 홈페이지에서 꽃 배달을 신청할 수 있게 만들었는데 주문 내용을 팩스로 받게 해달라는 요청이 들어왔다는 것이다.

    원래는 홈페이지에서 주문을 하면  그 내용이  명동화원 개인 메일로 발송되고, 화원에서는 TT선에 연결된 PC에서 메일을 확인하여 배달을 해주나 여러 면에서 불편하다는 것이다. 꽃 배달의 경우 상당한 신속성을 요하는데 메일이 언제 들어오는지 수시로 PC에 가서 마우스를 클릭해 메일을 확인하는게 귀찮기 때문이다. 메일이 들어올 때 음성으로 안내 메시지가 나오기는 하나 그 때 잠깐 자리를 비우면 들을 수 없으므로 별 소용이 없다.

    이에 비해 팩스는 멀리서도 종이만 보면 팩스 수신 여부를 확인할 수 있으므로, 다른 일을 하면서도 수시로 주문 여부를 확인할 수 있어 메일보다 편리하다. 단점이라면 팩스 요금이지만 메일 확인을 위해 TT 전용선 쓰는 것 보다는 저렴하다.

    홈페이지에서 입력한 내용이 팩스로 나가게 하는건 랜에서 팩스 보내는것과 근본 원리는 같다. 홈페이지 입력 내용을 텍스트 파일로 받아서 팩스 파일로 변환하고 이를 팩스 스풀에 넣어주면 팩스 데몬이 팩스로 내보내는 원리이다.

    넝쿨에서 오래 전에 요청받았던 사항이라 미룰 수도 없어서 8월 초에 휴가도 포기하고 예전에 랜에서 팩스 서버 만들었던 기억을 되살려 사무실내의 SuSE 6.1 서버에 아파치 웹서버와 팩스 관련 프로그램을 집어 넣고 며칠간을 사무실의 팩스 모뎀과 팩스머신을 연결해 가면서 팩스 용지만 2권을 소모하고서 간신히 개발을 마쳤다.

    설치를 위해 8월 16일 목포에 갔는데 넝쿨 웹서버의 리눅스를 SuSE로 바꾸는 작업도 동시에 진행하였다. 첫날 SuSE에서의  IP Aliasing 부분에서 약간 시간이 걸렸는데, SuSE로 옮긴 꽃 주문 PERL CGI가 제대로 작동을 않아 새벽 3시까지도 해결하지 못해 애를 먹었다.

    다음날 오전에서야 CGI를 거의 해결하고 오후에는 목포항에서 유람선을 타고 고하도, 하사도 부근 관광을 했다. 저녁에 CGI를 팩스 서버 프로그램과 연결하는데 다시 에러가 난다. 단독으로 실행시는 문제가 없는데 CGI에서 넘어온 라인피드 문제였다. 다음날 점심때서야  perl에서 라인피드를 다른 문자로 대치해서 팩스 서버 설치를 해결했다. 역시 리눅스가 좋은 운영체제라는걸 다시 한번 느꼈다. 이걸 응용하면 수신한 메일을 팩스로 받는것도 가능할 것 같다. 메일 내용 중에서 한글 텍스트만 걸러내면 그 다음 과정은 같으니까. 그러나 여러 복잡한 문제가 있다. 웹메일처럼 텍스트 외에 다른 문자가 섞인 경우와 인코딩된 메일의 경우이다. 이에 대한 좋은 해결책을 아시는 분은 연락주기 바란다.




▲ top

home으로...