윈9X를 포함하는 리눅스 네트워크 구축
(Making a Simple Linux Network Including Windows 9x)

번역: 배철수 (리눅스 월드 발행인)
By Juraj Sipos

 

     

    내가 이 글을 쓰게 된 이유는 이렇다. 내가 어떤 일을 하려고 할 때 단지 일부분만을 필요로 하는데도 많은 하우투와 기사들을 찾아 읽어야 한다.
    예를 들면 여기서 나는 두 대의 컴퓨터간의 네트워크를 구축했다. 그러나 두 컴퓨터간의 메일은 설정할 수 없었다. 샌드메일 설정은 매우 복잡했고 내가 해결책을 알기까지 많은 문서들을 읽어야 했다. 그러나 실제로 내가 할 일은 아주 간단했다. 즉 샌드메일 설정파일을 어디에 넣는다. 그러면 작동한다.

    내가 그것을 할 수 없다는 것은 아니나 시간이 많지 않다. 그러므로 즉시 사용할 수 있는 단순한 예제를 필요로 한다. 그래서 나는 그런 예제를 여기에 넣었다. 나는 20.0.0.0을 /etc/hosts 파일에 넣으라고 말하지 않는다. 이는 내부 IP 용이 아니기 때문이다.

    나는 내게서 작동했던 수치와 설정을 보여주겠다. 내게 "내 리눅스 병렬포트가 안되는 데요." 이런 식의 메일은 보내지 말라. 대신 sendmail 을 어떻게 설정하는지를 질문하라.

    여기서 나는 당신이 기원 전의 하드웨어나 커널을 사용하는 것으로 가정하지는 않는다. 리눅스 가제트 2000년 8월호 Help Wanted를 보자.

      Hi there, My name Sergey, I use Slackware 7.0. I have read a document about serial connection between Win95 and Linux, but never have seen about parallel. Help me, tell me how can I use my parallel NULL modem. Is lp0 the LPT1 port? Thanks, Sergey
      (나는 슬랙웨어를 사용하는데 윈95와 리눅스 간의 직렬 연결에 관한 문서를 읽었다. 그러나 병렬에 관해서는 찾을 수 없었다. 어떻게 병렬 널모뎀을 사용할 수 있는지 알려달라. lp0가 LPT1이 맞나요?)

    나는 내 두 컴퓨터를  PLIP Install HOWTO를 사용해 연결했다. 그러나 나는 내 자신의 힘으로 해결해야 하는 문제를 발견했다.

    또한 PLIP Install HOWTO 의 커널 재설정 부분은 초보자에게 혼동을 준다. 즉 커널 재설정은 필요가 없기 때문이다.

    그래서 여기서 나는 PLIP 또는 랜카드를 사용해 두 컴퓨터를 연결하는 보다 자세한 정보를 주겠다. 또한 윈도우 피시를 리눅스와 연결하는 부분도 설명하겠다.

    나는 레드햇 6.0을 사용한다. 이것이 가장 안정적인 것 같기 때문이다. 나는 매우 복잡한 구성을 갖고 있다. 나는 FreeBSD, Linux, DOS-Windows, ZIP 드라이브를 사용한다.
    또 다른 복잡한 부분도 있다. (내 C 드라이브는 암호화되어 있어서 패스워드를 넣어야 부팅이 시작된다.) 나는 두 개의 하드에 8 개의 운영체제를 설치했다. OS/2 ,BEOS도 들어 있다. 나는 RedHat 6.0, 6.1, 6.2 과  SuSE 6.4에서 네트워크 연결을 테스트했다.

 

PLIP

    위의 시스템을 갖고 있다면 PLIP를 사용하려고 커널을 컴파일할 필요가 없다.

    맨드레이크에서도 가능하나 테스트해 보지 않았다. 기본 설치 커널로 가능하다.
    PLIP연결을 위해서는 아래 순서대로 하라.

    1. 랩링크용 병렬 케이블을 구하라. (get a laplink parallel cable )

    2. 양쪽에 리눅스를 설치하라. 필요한 네트워크 서비스를 넣어야 한다.

    3. 두 피시의  /etc/hosts 를 아래처럼 수정한다.

      127.0.0.1               localhost localhost.localdomain
      10.0.0.1                one
      10.0.0.2                two
      10.0.0.0 은 내부전용 주소이다.

    4. 두번째 피시에서 CMOS 셋업을 "Halt on all Errors" 대신 "halt on all Errors except
        Keyboard". 로 바꾸라.

    5. 두번째 피시의 /etc/rc.d/rc.local 에 끝 부분에 아래처럼 넣어라.

      modprobe plip
      ifconfig plip0 two pointopoint one up

    (리눅스는 plip0 서비스를 lp0 or LPT1에 할당하므로 lp0를 다른 곳에 사용해서는 안된다. 그러나 프린터를 사용하려면 , "ifconfig plip0 down" 명령을 주고 rmmod로 커널 모듈에서 plip 모듈을 제거하라.)

    이제 두 번째 컴퓨터는 키보드 없이도  plip 인터페이스를 갖고 부팅한다. 재부팅 하는지를 보라. 들여다 보지 않고 다른 컴퓨터로부터 telnet, ftp, ssh를 사용해 확인할 수 있다.

    PLIP Howto가 내게 도움이 되지 않는 경우이다. modprobe plip  명령을 주니 "unresolved symbols" "...device busy". 메시지가 나왔다. 내 생각에는 리눅스가 PLIP 장치에 IRQ를 할당하지 않는 것 같았다. 아래 명령으로 이를 해결했다.

      echo 7 > /proc/parport/0/irq

    이 명령은 커널 프로세스(/proc)에 직접 IRQ 번호를 할당한다. 그 전에 modprobe plip 명령을 실행해야 한다. 그래야 /proc에 parport 디렉토리를 만든다. 그리고서 proc/parport/0/irq  값을 7로 변경하고서 다시 "modprobe plip" 명령을 준다. 2번째 명령이 plip를 설치한다.

    두번째 컴퓨터에서 "unresolved symbols...", "the device busy", 메시지가 나오면 /etc/rc.d/rc.local 에 아래를 추가하라.

      modprobe plip
      echo 7 > /proc/parport/0/irq
      ifconfig plip0 two pointopoint one up

    첫번째 컴퓨터에도 필요하다. 그러나 "ifconfig plip0 two pointopoint one up" 대신  "ifconfig plip0 one pointopoint two up" 를 사용해야 한다.

    그래서 첫번 컴퓨터는 아래처럼 명령을 주어야 한다.

      modprobe plip
      echo 7 > /proc/parport/0/irq
      ifconfig plip0 one pointopoint two up

    이 명령을 수동으로 해도 되고 스크립트를 써도 된다. 이제 telnet, ssh, ping, ftp or lynx 를 사용할 수 있다. 단 데몬이 떠 있어야 한다.

     

윈도우와 리눅스의 연결

    PLIP

    DOS/Windows에도 PLIP 드라이버가 있다.
    ( ftp://ftp.crynwr.com/drivers/plip.zip.)
    그러나 이 드라이버는 Window 9x에는 사용되지 못한다.

    만약 윈9x에서 plip를 시도하려면 Bochs 같은 리눅스 에뮬을 설치해보라.(ftp.bochs.com, www.bochs.com), 또는 loop boot 파일을 만들라.

    파일로 부팅이 가능하게 하는 방법은 "Loopback-Root-FS" 이라는 제목의 하우투이다.

 

랜카드(Network Cards)

    나는 동축케이블을 사용하기를 권한다. 이것이 가장 값이 싸기 때문이다. 공식적으로는 10Base 2로 불린다. 이는 동축케이블과 BNC 콘넥터, T 콘넥터, 터미네이터를 필요로 한다. T 콘넥터의 아래는 랜카드에 꼽힌다. 그 양쪽은 다른 컴퓨터 연결이나 터미네이터를 꼽는데 사용된다.

    두 대의 컴퓨터를 갖고 있다면 양 끝에 터미네이터를 달아야 한다.

    5대라면  "1comp 2comp 3comp 4comp 5comp",  1comp 과 5comp 가 터미네이터를 갖는다.

    일반적으로 세 가지의 네트워크 구조가 있다.

    10Base 5  -  예전 방식이다.
    10Base 2  -  여기에 쓴 방식이다. 최대 거리는 185 미터이다.
                       한 세그먼트에 30대의 컴퓨터를 연결할 수 있다.
    10Base 10 - 허브를 필요로 한다.

    나는 NE2000 카드 (10Mbit) 또는 호환카드를 권한다. 그들은 별로 문제가 없다. 10달라 이하로 가능하다.

    /etc/hosts 파일에 아래처럼 지정한다.

      127.0.0.1               localhost localhost.localdomain
      10.0.0.1                 one
      10.0.0.2                 two

    랜카드가 잘 꼽혀 있는지 확인하라. 진단 프로그램을 실행해보라.(내 경우는 rset8029.exe)

    양쪽 카드를 모두 10Base2로 지정하라.(셋업에서)

    컴퓨터1에서는 아래처럼 넣어라.

      modprobe ne2k-pci
      ifconfig eth0 one

    컴퓨터2는 아래와 같다.

      modprobe ne2k-pci
      ifconfig eth0 two

    아래처럼 나올 것이다.

      eth0  Link encap:Ethernet  HWaddr 52:54:AB:1F:7A:51
        inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
        UP BROADCAST RUNNING MULTICAST   MTU :1500  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:100
        Interrupt:11 Base address:0xe800

    나는 route add 명령을 사용해야 한다는 글을 읽었으나 여기서는 그것을 사용할 필요가 없다.

    2.2 커널 은 "route add"를 필요로 하지 않으나 2.0 은 필요하다.
    (즉 자신의 랜카드에 대한 route 지정을 말한다.)

    NFS를 사용하려면 NFS Howto를 읽어야 한다. 또는 아래의 내 방식을 사용해라.
    NFS 데몬을 /etc/exports 파일을 수정하라. 아래처럼

      /  two  (rw)

    rpcinfo -p 를 실행해서 아래처럼 나오는가 확인하라.

        program vers  proto   port
        100000    2     tcp     110   rpcbind
        100000    2     udp    111   rpcbind
        100024    1     udp    903   status
        100024    1     tcp     905   status
        100011    1     udp     914   rquotad
        100011    2     udp     914   rquotad
        100005    1     udp     924   mountd
        100005    1     tcp      926   mountd
        100005    2     udp     929   mountd
        100005    2     tcp      931   mountd
        100005    3     udp     934   mountd
        100005    3     tcp      936   mountd
        100003    2     udp    2049   nfs

    mountd 또는 nfs가 없으면 nfs 패키지를 잘못 설치했다.
    /etc/exports를 수정했으면 exportfs -av를 실행하라.

    mount -t nfs two:/ /mnt -o rsize=8192, wsize=8192,nolock 명령을 주면 NFS를 사용할 수 있다.

    퍼미션 문제가 나타나면 특정 디렉토리를 모두에게 허가를 주라.

 

리눅스와 윈도우간의 통신

    리눅스와 윈도우(다른 시스템 역시)는 랜카드로 서로 통신이 가능하다.

      다음과 같이 한다 : 윈도우가 자동으로 랜카드를 설치한다. 만약 설치되지 않는다면 제어판을 열고, 새 하드웨어 추가를 선택한다. 내 경우 윈도우가 내 NIC 바이오스의 IRQ 번호와 다르게 PCI를 설정해서 카드가 작동하지 않았다.

    제어판의 시스템 아이콘에서 IRQ 번호를 점검한다. 만약 카드의 바이오스(CMOS에서 지정한) 설정과 다르다면 PCI 설정을 제거한다. 이점에서는 리눅스가 더 유연하다. 만약 윈도우가 당신의 네트워크 카드를 찾았다면 적합한 랜카드 드라이버를 설치할 것이다.
    설치되었다면 제어판의 네트워크를 선택하고 등록정보에서 TCP/IP 와 리얼텍 RTL8029 Ethernet Adapter와 적합한(만약 한 개를 가지고 있다면 다른 NIC) 것을 수정한다.

    IP 주소에서 할당된 IP 주소 사용을 선택하고 IP 주소를 10.0.0.1로, 서브네트 마스크를 255.255.255.0으로 바꾼다. 이것이 전부이다. 시스템을 다시 시작한다. 윈도우는 디렉토리에 C:\windows\lmhosts.sam과 C::\windows\hosts.sam 파일을 넣는다.

    그것을 복사하거나 새 파일을 C:\windows에 hosts, lmhosts로 만든다. 다음의 내용을 그 두 개에 넣는다.

      c:\windows\hosts
      c:\windows\lmhosts
      127.0.0.1               localhost localhost.localdomain
      10.0.0.1                one
      10.0.0.2                two

    만약 윈도우 머신에서 리눅스 머신으로 텔넷을 한다면, 리눅스 명령어와 프로그램을 실행할 수 있다. - 윈도우에서 리눅스가 실행될 것이다. X 서버를 테스트할 시간이 없었지만, 대부분의 명령어들이 작동했다. 만약 리눅스에서 아파치 서버가 동작하고 있다면 네트스케이프에서 다음의 명령으로 리눅스 박스의 http를 볼 수 있다.

      http://two

    만약 당신의 리눅스 박스에 익명(anonymous) ftp 접속이 아닌 사용자 접속을 제공한다면, 당신은 네트스케이프에서 다음의 명령어로 리눅스의 ftp를 사용할 수 있다.

    ftp://user:password@two ("user"는 당신의 리눅스 박스에 추가시킨 사용자이다.; root는 안된다.).

    병렬 케이블이 길어진다면 아마도 상당히 비쌀 것이다. 내가 여기서 언급한 싼 가격의 네트워크 카드는 단지 조금 비쌀 뿐이다. 2등급(次及) 제품을 구입한다면 긴 병렬 랩링크(역자 주 - Laplink : 두 PC 사이에 RS232C케이블을 통해 파일을 편리하게 전송할 수 있도록 해주는 프로그램의 일종) 케이블보다 상당히 저렴하다.

    그래서 내가 가진 홈(home) 네트워크에서 작동이 잘 되며, 단순한 네트워크 카드와 유사한 것을 사용하길 권한다. 이와 같은 연결은 병렬 포트 케이블을 사용하는 것보다 상당히 빠르다.

    만약 문제가 생긴다면 항상 PLIP, NET와 etc 같은 리눅스 하우투를 보길 바란다. 만약 어떤 것이 작동하지 않는다면 다른 운영체제하에서 하드웨어를 테스트 해보는 것을 고려하라.
    참고적으로 우리집 네트워크에서 메일을 사용할 수 있도록 샌드메일을 설정하는 방법을 아는 분이 있나요?

    Copyright (c) 2000, Juraj Sipos
    Published in Issue 57 of Linux Gazette, September 2000




▲ top

home으로...