리눅스 라우터 만들기
리눅스 라우터 만들기 |
1. 소개
리눅스 라우터 프로젝트(Linux Router Project)에서는 리눅스를 이용한 라우터 머신을 만드는 작업을 진행하고 있습니다. 일반적으로 리눅스의 IP Masquerade 등의 기능을 이용하면 보통의 시스템에서 강력한 라우트 기능을 구현하는 것이 전혀 어려운 일이 아니라는 것쯤 누구나 알고 계실 것입니다.
그 정도 수준이라면 굳이 여기서 LRP를 소개할 필요가 없지요. LRP 에서는 리눅스가 가지는 강력한 네트워킹기능을 3.5인치 플로피디스켓 한장에 담아내었습니다. 즉, 1.44mb 디스켓 한장에 쏙~ 들어가는 리눅스가 강력한 라우터 기능을 해 낸다는 것입니다.
- 리눅스 라우터의 원리
리눅스 라우터가 디스켓 한장에 다 들어가 있지만, 실제 작업이 플로피 디스크드라이브에서 이루어지는 것은 아닙니다. 일단 플로피디스켓으로 부팅을 하게 되면, 램드라이브를 만들고, 루트디렉토리( / )로 마운트시킵니다. 그 다음 램드라이브에 디스켓에 압축, 저장되어있는 기본적인 리눅스 파일을 설치합니다. 즉, 리눅스라우터는 램드라이브 상에서 운영되는 리눅스입니다.
따라서 리눅스라우터는 하드디스크가 필요없습니다. 그리고 일반적으로 리눅스가 386, 486 정도의 컴퓨터에서도 잘 작동되는 것처럼 리눅스라우터 또한 저사양의 시스템에서도 잘 작동됩니다.
- 리눅스 라우터 시스템을 사용하기 위한 최소사양 및 환경
- 386sx 이상의 인텔 혹은 인텔호환 cpu
- 8 메가 이상의 램
- 네트웍 환경
- 리눅스에서 인식하는 랜카드
- 3.5 인치 플로피 디스크 드라이브 ( a: )
- 포맷된 3.5인치 플로피 디스켓
- 작업할 수 있는 리눅스 시스템
(LRP에서 다양한 설정을 하기 위해서 필요합니다. 일단 설치가 끝나면 더 이상 필요없음.)
최소사양은 위와 같지만 LRP 에서 권장하는 CPU는 486DX2-66 이상이고 램은 12메가, 그리고 FDD 말고 추가로 ZIP 드라이브나 LS-120 등의 고용량 저장매체를 사용하는 것을 권하고 있습니다. 하지만 저는 486dx2-50에 램 8MB, 1.44MB FDD 1개의 시스템을 사용하고 있지만 부족하다고 느껴 본 적은 없습니다.
이상의 사양을 보시면 느끼는 점이 있을 것입니다. 바로 버리지도 사용하지도 못하고 있던 방 한구석의 먼지 쌓인 386, 486을 훌륭한 라우터머신으로 만들 수 있다는 것입니다. 혹시 386, 486 컴퓨터가 없다고 너무 실망하지는 마십시오. 컴퓨터 통신의 중고시장을 이용하시면 매우 저렴하게 구입할 수 있습니다. 또는 길거리를 다니다가 버려진 컴퓨터를 만나게 되는 경우가 종종 있는데.. 이 기회를 이용해 보도록 하십시오.
- 리눅스 라우터의 용도
한대의 컴퓨터만이 외부 네트워크에 접속이 가능하고, 랜환경의 나머지 컴퓨터들(clients)은 이 컴퓨터를 통해서만 외부 네트워크에 접속할 수 있는 경우에 리눅스 라우터가 사용됩니다.
(쉽게 예를 들면 한 대의 컴퓨터에만 모뎀, 케이블 모뎀, isdn 등등이 접속 되어있고 다른 컴퓨터가 이를 공유하여 인터넷이나 기타 통신을 하고자 할 때 사용되는 것입니다.)
- 리눅스 라우터의 장단점
다른 주변기기 없이 플로피디스크드라이브만 있으면 됩니다.. 물론 랜환경은 필수입니다!
(바이오스에서 지원이 된다면, 비디오카드와 키보드도 필요하지 않습니다.)
또한 386, 486 등도 훌륭하게 활용할 수 있습니다.
대신 라우터 박스가 될 386, 486 컴퓨터를 한대 더 필요로 합니다.
2. 개요 및 시스템 준비
- 개요
Linux Router Project의 목적은 플로피디스켓을 기반으로 저렴하게 라우터 시스템을 구성하는 것입니다. 집에서 놀고 있는 386, 486 컴퓨터를 이용하여 훌륭한 라우터를 만들수 있는 것이죠. LRP 홈페이지에서 보다 자세한 내용을 확인할 수 있으니 꼭 들러보기 바랍니다.
사용자는 먼저 리눅스에서의 네트워크 설정법에 관해서는 숙지하고 있어야 합니다. IP 마스커레이딩이나 그밖의 랜 네트워크 설정에 관한 내용은 이 글의 범위를 벗어나니 다른 글들을 참고하기 바랍니다. 리눅스 한글문서 프로젝트 (KLDP) 에 가시면 네트워크와 관련된 다양한 HOWTO 문서를 찾아보실 수 있습니다. 대부분의 문서가 번역되어 있으니 부담없이 읽어보십시오.
만일 지금 두대의 컴퓨터를 크로스케이블로 연결해서 sygate 나 wingate (두 프로그램 모두 대표적인 IP공유 프로그램들이죠.)를 쓰시는 분들은 추가비용이 더 들어가게 될 것입니다. 386 이상의 컴퓨터가 추가로 필요하기 때문이지요. 또한 리눅스 라우터 박스가 생김으로서 기본적으로 3대 이상의 랜환경이 되게 되므로, UTP 케이블 사용자는 허브를 마련해야 하고 크로스케이블 대신 그냥 케이블을 다시 설치해야 합니다. 리눅스 라우터 머신을 쓰지 않고 모뎀이나 케이블모뎀을 공유하길 원하시는 분이라면 윈도우 환경에서 sygate 나 wingate 를 쓰시거나 리눅스 환경이라면 그냥 리눅스 머신에서 IP Masquerade 기능을 활용하는 것이 좋을 것입니다
- 무소음 라우터 시스템 준비
저는 원래 윈도우 환경에서 sygate를 사용하여, 하나의 모뎀을 3대의 컴퓨터가 공유하고 있었습니다. (혹자는 이것을 인간승리의 휴먼드라마라고 부르더군요.) 문제는 게이트머신이 되는 컴퓨터가 제 방에 있다는 것입니다. 제 방에 있는 컴퓨터를 항상 켜두고 살아야 했고, 밤이면 시끄러운 컴퓨터 소리에 잠을 제대로 이룰 수가 없었습니다.
그러던 중 어디선가 PC ROUTE 라는 프로그램에 대한 글을 읽게 되었습니다. 이 프로그램은 도스 상태에서 라우트기능을 해 주는 것으로서, 386, 486 의 저사양 컴퓨터에서도 완벽하게 동작한다는 내용이었습니다. 충격적인 사실은 디스켓 한장만 있으면 된다는 것이었죠. 도스에서도 되는데 리눅스에서 못할 이유가 없다고 생각하고 무소음리눅스라우터박스를 만들기로 하였습니다. 그러던 중에 이미 지구의 한 구석에서 저와 비슷한 고민을 하고 있던 무리(?)를 알게 되었고, 고생할 필요없이 쉽게 그들의 결과물을 이용하게 되었습니다.
일단 아무 소리가 나지 않는 시스템을 만들기 위해서는 컴퓨터에 팬(FAN)이 존재해서는 안됩니다. 기본적으로 386이나 486DX2-50 까지는 CPU COOLER가 필요하지 않으므로 무소음리눅스라우터 박스를 만드는데는, 이들 컴퓨터가 최선의 선택이라 생각됩니다. 좋은 컴퓨터로 돌릴 것이면, LRP 로 만들지 말고 그냥 리눅스나 윈도우의 sygate를 사용하고 말죠...
아무리 쿨러 없이 잘 작동되는 CPU라고 해도, 방열판 정도는 달아주는 것이 무더운 여름을 대비해서 좋을 것 같습니다. 이전에는 쓸모없는 녀석이었지만, 이제는 자기 몫을 톡톡히 해내는 귀여운 녀석이 될 테니까요. 열전도 구리스(용산 등에서 쉽게 구할 수 있습니다)를 구해서 CPU에 발라준 다음 큼직한 방열판을 달아주면 됩니다.
무소음을 위해서는 파워 안에 들어있는 팬도 제거해야합니다. 일단 파워의 뚜껑을 열고, 팬을 제거합니다. 파워에 팬이 없으므로 파워에서 나오는 열을 방출하기 위해서 파워의 뚜껑을 덮지 않는 것이 좋습니다. 손이 닿아서 감전될지도 모른다고 생각하시는 분이 계실 지도 모르겠으나, 본체의 케이스를 덮어두는 것으로도 감전사고는 충분히 예방될 수 있습니다.
물론 본체 케이스도 열어두는 것이 더 좋겠지만 어린 조카들이 감전 당하는 것을 막기 위해서 덮어두도록 합니다. 그 대신 통풍을 위해서 본체의 슬롯을 막고 있는 것들을 모두 열어주고, 앞쪽의 베이를 막고 있는 것들도 모두 열어줍니다. 제 경우는 파워의 열이 위로도 빠져나오게 하기 위해서 본체 케이스의 위쪽에 구멍을 몇개 뚫어두었습니다. 집에서 철판에 구멍을 뚫는 것은 쉬운 일이 아니므로 근처 철물점에 가서 부탁하는 것도 좋습니다. 대신 케이스의 어디쯤에 구멍을 뚫어야 하는지 잘 살펴보세요. 파워의 열이 곧바로 나갈 수 있는 위치에 작은 구멍 여러개를 만드는 것이 중요합니다. 구멍이 너무 크면 이물질이 파워로 들어가게 되니 조심하십시오.
아직까지는 LRP 설치를 위해서 비디오카드, 키보드, 모니터 등이 필요합니다. 물론 랜카드도 꼽아두어야죠. 랜카드에 따라서는 도스용 프로그램으로 IRQ 등의 각종 세팅을 해주어야만 인식되는 것들이 있는데, 이때는 랜카드를 구입할 때 제공한 디스켓에 포함되어 있는 프로그램들을 사용하여 설정하도록 합니다. 대부분의 랜카드는 이런 설정이 필요없으며, 있다고 해도 한번만 잡아주면, 그 다음부터는 계속 적용되므로 걱정할 필요가 없습니다.
이런 식으로 하드웨어를 준비하고 파워를 넣고 부팅을 해 보세요. 도스용 부팅 디스켓을 준비해서 제대로 부팅이 된다면 이제 LRP만 설치하면 됩니다. 참고로, 제 486은 한참 동안 부팅이 되지 않아서 고장난 줄 알았지만, 너무 오랫동안 사용하지 않아서 배터리가 모두 방전되어 생긴 일이었습니다. 전원을 넣고 약 30분쯤 기다리니까, 배터리를 모두 충전했는지 갑자기 스스로 부팅을 시작했습니다.
linuxrouter 2.9.4 의 파일 구성
ChangeLog
Idiot-image_1440KB_2.9.4 (이미지 파일)
Maintainers
Readme
Todo
addons
ssh_1226_1.2-2.tar.gz
base (LRP 를 구동할 때 꼭 필요함.)
etc.lrp
local.lrp (사용자가 새롭게 만든 스크립트나 포함하고 싶은 파일을 이곳에 넣어주면 됩니다. 예를 들면 ppp-on, clock 등등)
log.lrp
modules.lrp
root.lrp
boot
syslinux.cfg (부팅과 관련된 설정파일)
syslinux.dpy (부팅시에 보여주는 메시지)
kernel
2.0.36pre15-1.tar.gz (커널과 모듈이 들어있음)
2.0.36pre15-1-patches.tar.gz (커널 패치를 위한 패치파일)
packages (필요한 패키지만 설치하면 됨)
bind.lrp
boa.lrp
dhcp.lrp
dhttpd.lrp
gated.lrp
ppp.lrp
proftpd.lrp
pslave.lrp
snmp.lrp
sshd.lrp
thttpd.lrp
wanpipe.lrp
xserver.lrp
source (LRP 의 소스파일; 개발자에게 필요)
2.9.4-devsnapshot.tar.gz
2.9.4-sourcesnapshot.tar.gz
커널과 모듈이 들어 있는 2.0.36pre15-1.tar.gz 파일의 구성을 살펴봅니다.
2.0.36pre15-1
2.0.36pre15-1-LRP.FPU-zImage (FPU 에뮬레이터가 들어있는 커널; CPU에 FPU가 없다면 이 커널을 사용해야 함)
2.0.36pre15-1-LRP-config (커널컴파일 할 때의 설정파일)
2.0.36pre15-1-LRP-zImage (CPU에 FPU가 있을 경우 사용하는 커널)
kernel.readme
modules
modules.dep (모듈들의 상관관계를 보여주는 파일; ex) ppp.o 를 사용하려면 sdla.o 도 함께 필요하다)
fs
ext2.o (Second extended fs support)
isofs.o (CD-ROM support)
nfs.o (NFS filesystem support)
smbfs.o (SMB filesystem support)
vfat.o (VFAT fs support)
ipv4
ip_alias.o (ip: aliasing support)
Sometimes it is useful to give several addresses to a single network interface ( = serial port or Ethernet card). The most common case is that you want to serve different WWW documents to the outside according to which of your host names they used to connect to you. This is explained in detail on the WWW at http://www.thesphere.com/~dlp/TwoServers/ (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). Another scenario would be that there are two logical networks living on your local Ethernet and you want to access them both with the same Ethernet card. The configuration of these alias addresses is done with a special name syntax explained in Documentation/networking/alias.txt. If you want this, say Y. Most people don't need it and say N.
ip_masq_cuseeme.o
ip_masq_ftp.o
ip_masq_irc.o
ip_masq_quake.o
ip_masq_raudio.o
ip_masq_vdolive.o
(ip_masq_* 모두 다 포함시켜주는 것이 좋습니다. irc 같은 것은 사용하지 않는다면 빼도 무방합니다.)
ipip.o (IP: tunneling)
Tunneling means encapsulating data of one protocol type within another protocol and sending it over a channel that understands the encapsulating protocol. This particular tunneling driver implements encapsulation of IP within IP, which sounds kind of pointless, but can be useful if you want to make your (or some other) machine appear on a different network than it physically is, or to use mobile-IP facilities (allowing laptops to seamlessly move between networks without changing their IP addresses; check out http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Enabling this option will produce two modules ( = code which can be inserted in and removed from the running kernel whenever you want), one encapsulator and one decapsulator. You can read details in drivers/net/README.tunnel. Most people can say N.
rarp.o (Reverse ARP)
Since you asked: if there are (usually diskless or portable) machines on your local network that know their hardware Ethernet addresses but don't know their IP addresses upon startup, they can send out a Reverse Address Resolution Protocol (RARP) request to find out their own IP addresses. Diskless Sun 3 machines use this procedure at boot time. If you want your Linux box to be able to *answer* such requests, say Y here; you'd have to run the program rarp ("man rarp") on your box. If you actually want to use a diskless Sun 3 machine as an Xterminal to Linux, say Y here and fetch Linux-Xkernel from ftp://sunsite.unc.edu/pub/Linux/system/Network/boot.net/.
Superior solutions to the problem of booting and configuring machines over a net connection are given by the protocol BOOTP and its successor DHCP. See the DHCP FAQ http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html for details. If you want to compile RARP support as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you don't understand a word of the above, say N and rest in peace.
misc
ipx.o (The IPX protocol)
This is support for the Novell networking protocol, IPX, commonly
used for local networks of Windows machines. You need it if you want to access Novell NetWare file or print servers using the Linux Novell client ncpfs (available via FTP (user: anonymous) from sunsite.unc.edu:/pub/Linux/system/Filesystems/) or from within the Linux DOS emulator dosemu (read the DOSEMU-HOWTO, available in sunsite.unc.edu:/pub/Linux/docs/HOWTO). In order to do the former, you'll also have to say Y to "NCP filesystem support", below. To turn your Linux box into a fully featured NetWare file server and IPX router, say Y here and fetch either lwared from sunsite.unc.edu:/pub/Linux/system/Network/daemons/ or mars_nwe from ftp.gwdg.de:/pub/linux/misc/ncpfs. For more information, read the IPX-HOWTO in sunsite.unc.edu:/pub/Linux/docs/howto. The IPX driver would enlarge your kernel by about 5 kB. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Unless you want to integrate your Linux box with a local Novell network, say N.
appletalk.o
AppleTalk is the way Apple computers speak to each other on a network. EtherTalk is the name used for AppleTalk over Ethernet and LocalTalk is AppleTalk over the Apple serial links. If your Linux box is connected to such a network and you want to join the conversation, say Y. You will need to use the netatalk package so that your Linux box can act as a print and file server for macs as well as access AppleTalk printers. Check out http://artoo.hitchcock.org/~flowerpt/projects/linux-netatalk/ on the WWW for details (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). The NET-2-HOWTO, available via FTP (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO contains valuable information as well. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. I hear that the GNU boycott of Apple is over, so even politically correct people are allowed to say Y here. At the time the kernel is released the localtalk drivers are not yet ready to ship. The kernel however supports localtalk and when such drivers become available all you will need to do is download and install the localtalk driver.
ax25.o
This is the protocol used for computer communication over amateur radio. It is either used by itself for point-to-point links, or to carry other protocols such as TCP/IP. To use it, you need a device that connects your Linux box to your amateur radio. You can either use a low speed TNC (a Terminal Node Controller acts as a kind of modem connecting your computer's serial port to your radio's microphone input and speaker output) supporting the KISS protocol or the various SCC cards that are supported by the Ottawa PI, the Gracilis Packetwin and the generic Z8530 driver. Another option are the Baycom modem serial and parallel port hacks (supported by their own driver) and the other baycom cards (SCC) (supported by the Z8530 driver). Information about where to get supporting software for Linux amateur radio as well as information about how to configure an AX.25 port is contained in the HAM-HOWTO, available via FTP (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to check out the file Documentation/networking/ax25.txt in the kernel source. More information about digital amateur radio in general is on the WWW at http: //www.cis.ohio-state.edu/hypertext/faq/usenet/radio/ham-radio/digital-faq/faq.html
(To browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic).
isdn.o
ISDN ("Integrated Services Digital Networks", called RNIS in
France) is a special type of fully digital telephone line; it's
mostly used to connect to your Internet service provider (with SLIP or PPP). The main advantage is that the speed is higher than ordinary modem/telephone connections. It only works if your computer is equipped with an ISDN card and both you and your service provider purchased an ISDN line from your phone company. For details, read http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To browse the
WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic.) This driver allows you to use an ISDN-card for networking connections and as dialin/out device. The isdn-tty's have a built in AT-compatible modem emulator. Network devices support autodial, channel-bundling, callback and caller-authentication without having a daemon running. A reduced T.70 protocol is supported with tty's suitable for German BTX. On D-Channel, the protocols EDSS1 and 1TR6 are supported. See Documentation/isdn/README for more information.
isdnloop.o
capi.o
capidrv.o
capiutil.o
kernelcapi.o
b1pci.o
This enables support for the AVM B1 card and also adds a CAPI2.0 interface for this card. For running this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README.avmb1 for more information.
pcbit.o (PCBIT-D support)
This enables support for the PCBIT ISDN-cards. This card is
manufactured in Portugal by Octal. For running this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and Documentation/isdn/README.pcbit for more information.
icn.o (ICN 2B and 4B support)
This enables support for two kinds of ISDN-cards made by a German company called ICN. 2B is the standard version for a single ISDN line with two B-channels, 4B supports two ISDN lines. For running this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and README.icn for more information.
cyclades.o (Cyclades async mux support)
This is a driver for a card that gives you many serial ports. You
would need something like this to connect more than two modems to your Linux box, for instance in order to become a BBS. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you haven't heard about it, it's safe to say N. (As of 1.3.9x kernels, this driver's minor numbers start at 0 instead of 32.)
sc.o (ISDN driver for SpellCaster)
istallion.o (Stallion EC8/64, ONboard, Brumby support)
If you have an EasyConnection 8/64, ONboard, Brumby or Stallion
serial multiport card, say Y here. Make sure to read
drivers/char/README.stallion. To compile it as a module ( = code
which can be inserted in and removed from the running kernel
whenever you want), say M here and read Documentation/modules.txt.
netrom.o (Amateur Radio NET/ROM)
NET/ROM is a network layer protocol on top of AX.25 useful for
routing. A comprehensive listing of all the software for Linux
amateur radio users as well as information about how to configure an AX.25 port is contained in the HAM-HOWTO, available via FTP (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might also want to check out the file Documentation/networking/ax25.txt. More information about digital amateur radio in general is on the WWW at http://www.cis.ohio-state.edu/hypertext/faq/usenet/radio/ham-radio/digital-faq/faq.html
(To browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic).
riscom8.o (SDL RISCom/8 card support)
This is a driver for the SDL Communications RISCom/8 multiport card, that give you many serial ports. You would need something like this to connect more than two modems to your Linux box, for instance in order to become a BBS. If you have a card like that, say Y here and read the file Documentation/riscom8.txt. Also it's possible to say M here and compile this driver as kernel loadable module.
rose.o (??????)
router.o (WAN Router)
Wide Area Networks (WANs), such as X.25, frame relay and leased lines, are used to interconnect Local Area Networks (LANs) over vast distances with data transfer rates significantly higher than those achievable with commonly used asynchronous modem connections. Usually, a quite expensive external device called `WAN router' is needed to connect to WAN. As an alternative, WAN router can be build into Linux kernel.
With relatively inexpensive WAN interface cards available on the
market, a perfectly usable router can be built for less than half a
price of an external router. If you have one of those cards (with
appropriate WAN Link Driver) and wish to use your Linux box as a WAN router, you may say 'Y' to this option. You will also need a
wan-tools package available via FTP (user: anonymous) from ftp.sangoma.com. Read Documentation/networking/wan-router.txt for more information.
WAN router is always built as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
For general information about modules read Documentation/modules.txt.
scc.o (Z8530 SCC kiss emulation driver for AX.25)
These cards are used to connect your Linux box to an amateur radio in order to communicate with other computers. If you want to use this, read Documentation/networking/z8530drv.txt and the HAM-HOWTO, available via FTP (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt.
lp.o (parallel port관련)
serial.o (Standard/generic serial support)
This selects whether you want to include the driver for the standard serial ports. People who might say N here are those that are setting up dedicated Ethernet WWW/FTP servers, or users that have one of the various bus mice instead of a serial mouse. (Note that the Cyclades and Stallion multi serial port drivers do not need this driver built in for them to work. They are completely independent of each other.) If you want to compile this driver as a module, say M here and read Documentation/modules.txt. [WARNING: Do not compile this driver as a module if you are using non-standard serial ports,
since the configuration information will be lost when kerneld automatically unloads the driver. This limitation may be lifted in
the future.] Most people will say Y or M here, so that they can use serial mice, modems and similar devices connecting to the standard serial ports.
specialix.o (Specialix IO8+ card support)
This is a driver for the Specialix IO8+ multiport card (both the
ISA and the PCI version), that gives you 8 serial ports. You would
need a card like this to connect more than two modems to your linux box, for instance in order to become a BBS. If you have a card like that, say Y here and read the file Documentation/specialix.txt. Also it's possible to say M here and compile this driver as kernel loadable module.
stallion.o (Stallion Multiport Serial Driver)
net
요기는 워낙 많아서 손을 못 보겠군요. 주로 랜카드 관련 모듈들입니다. 물론 PPP 와 같은 모듈도 들어있지만요. 자신이 사용하는 환경 혹은 하드웨어에 맞는 것이 있다면 꼭 삽입하도록 하세요. 저도 시간이 생기면 정리해 보도록 하겠습니다.
3. 리눅스 라우터 설치
- LRP 다운로드 하기
먼저 LRP 다운로드를 보고 적당한 곳에서 받도록 합니다. source 디렉토리를 제외한 모든 디렉토리를 받으시면 됩니다. 파일을 구성을 알고 싶으시면 여기를 누르세요. FTP 전용프로그램으로 받는 것이 편할 것입니다.
- LRP 디스켓 이미지 풀기
다운 받은 디렉토리(?)를 적당한 곳에 옮겨 두시고, 자~ 시작합시다.
일단 기본적으로 포함되어 있는 이미지 파일을 디스켓에 풀어야 합니다. 이 파일은 idiot.image-2.9.4-1.44MB 이라는 이름을 가지고 있습니다. 이미지 파일을 디스켓에 풀어넣는 방법은 다음과 같습니다.
ex) dd if=idiot.image-2.9.4-1.44MB of=/dev/fd0
혹은 cat idiot.image-2.9.4-1.44MB >/dev/fd0
이미 만들어진 이미지를 사용하는 이유는 (1)디스켓을 포맷하고 (2)부팅(리눅스)이 가능하도록 만드는 과정을 생략할 수 있기 때문입니다. 리눅스로 부팅가능한 디스켓을 만드는 방법은 뒤에서 고용량 포맷을 이용한 LRP 만들기라는 절에서 따로 다루기로 하겠습니다.
이미지파일을 풀어 넣고나서 디스켓의 내용을 살펴보면 다음과 같습니다.
linux ; 커널 - FPU가 있는 CPU를 위한 커널
ldlinux.sys ; syslinux boot loader
syslinux.cfg ; 부팅과 관련된 다양한 옵션을 주는 설정파일
syslinux.dpy ; syslinux display file. 부팅할 때 보여주는 텍스트 형식의 파일. 별 필요없음.
root.lrp
log.lrp
local.lrp
modules.lrp
etc.lrp
- 모듈 삽입
이제 디스켓에 들어 있는 modules.lrp 파일을 여러분의 리눅스 시스템에 적당한 디렉토리를 만들고 그 곳에 복사한 후에 압축을 풀어줍니다.
ex) tar xvfz modules.lrp
압축을 풀면 ./lib/modules 라는 디렉토리를 볼 수 있는데 여기에 각자의 시스템에 필요한 모듈을 넣어주어야 합니다.
다운로드 받은 LRP 패키지에서 ./kernel/kernel-36pre15-1.tar.gz 을 압축 해제하면 modules 라는 디렉토리가 보이고, 그 아래에 fs, ipv4, misc, net 라는 디렉토리가 나오게 되는데, 그 안에 각종 모듈들이 들어 있습니다. 이곳에서 여러분의 시스템에 필요한 모듈들을 선택하고, 아까의 디렉토리(./lib/modules)에 집어 넣어주어야 합니다.
모듈들은 서로 연관성을 가지기 때문에 modules.dep을 꼭 읽어보고 관련있는 모듈이 있으면 함께 복사해 주어야 합니다. 또한 이 파일을 읽어보면 각 모듈이 어디에 사용되는 것인지 대강 감을 잡을 수 있습니다. 각 모듈에 대한 자세한 설명을 보고 싶으시면 여기를 누르세요.
예를 들면 자신의 랜카드가 ne2000 호환 pci 랜카드라면 ne2k-pci.o 모듈 외에도 8390.o 모듈을 같이 포함시켜야 하는 것입니다. 또 ppp 를 쓰겠다면 ppp.o 모듈과 더불어 slhc.o 모듈도 포함시켜야만 합니다.
fs 디렉토리 아래에 있는 것들은 네트워크파일에 관련된 것들입니다. nfs와 smb 모듈 등이 있는데 필요하신 것을 선택해서 옮기면 됩니다. 참고로 LRP는 별도의 프로토콜을 가지고 있지 않기 때문에 여러분의 리눅스라우터박스를 원격관리하기 위해서는 nfs 정도는 필수적이라고 할 수 있습니다. 예를 들어서 모니터도, 키보드도, 비디오카드도 없는 리눅스라우터박스를 관리한다고 생각해 보세요. telnet 으로 log in 한다고 해도, 파일을 복사 해 넣거나 가져올 수 없습니다. 적당한 프로토콜이 없기 때문이지요. nfs를 통해서 연결한다면 파일의 이동이 자유롭게 되므로 별다른 이유가 없다면 꼭 설치하도록 합니다.
(참고) 2.9.4 에 들어와서 proftpd 라는 패키지가 생겼습니다. 이것은 ftp 서버인 것으로 알고 있습니다. 이것을 사용한다면 파일의 이동을 위해서 굳이 nfs를 사용할 필요가 없다고 생각됩니다. 아직 사용해 보지 않았으므로 자세한 설명은 못 올립니다만 시간이 생기면 꼭 설치법을 올리겠습니다.
net은 랜카드와 관련된 것들 입니다. 여기서 중요한 것은 ipv4 디렉토리 아래있는 모듈들인데, 이것들이 없으면 IP 매스커래이딩이 이루어지지 않게 되므로 필요해 보이는 것들은 모두./lib/modules 에 넣어주어야 합니다.
misc에는 더 다양한 모듈들이 있습니다. ISDN과 관련 된 것, 시리얼포트 관련 등등.. 수도 없이 많습니다. 자신에게 필요한 것은 모두 복사하도록 합니다.
모듈들이 각각 종류별로 나뉘어 별도의 디렉토리에 들어있다고해서 이 디렉토리까지 만들어 가면서 복사할 필요는 없습니다. 필요한 것은 xxxxx.o 라는 화일들을 ./lib/modules 디렉토리에 복사하면 되는 것입니다.
별도의 설명이 없기 때문에, 파일명만 달랑(?) 보고서는 자신에게 필요한 모듈이 어떤 것인지 알기 힘들 수도 있습니다. 그런 분들은 제가 올린 설명을 보시고요. 그래도 모르겠으면 LRP를 위한 커널소스를 받으셔서 자신의 시스템에 맞도록 다시 컴파일 하시기 바랍니다. 컴파일과 관련해서는 뒷 절에서 다시 다루도록 하겠습니다.
이제 modules.lrp를 압축 풀었던 곳으로 가서 먼저 있던 modules.lrp를 삭제하고 다시 압축하도록 합니다.
ex) rm modules.lrp
tar cvfz modules.lrp etc var lib sbin
참고로 조금더 확실하게 압축하고자 하시는 분들은 tar에서 z 옵션을 주지 말고 파일들을 뭉친다음에 다시 gzip -9 옵션을 주고 압축하도록 하십시오. tar 에서 z 옵션을 주게 되면, gzip -6 을 default로 사용하게 됩니다. 이것은 최상의 압축률로 압축하지 않고 적당한 수준으로 압축한 다는 것을 의미합니다. 디스켓 한장에 리눅스를 담아야하기 때문에 약간의 크기도 매우 중요합니다.
ex) tar cvf modules.tar etc var lib sbin
gzip -9 modules.tar
mv modules.tar.gz modules.lrp
이렇게 새로 생긴 modules.lrp를 디스켓에 복사합니다.
이것으로 끝난 것이 아니라 lrcfg(Linux Router Configurator)에서 모듈에 관련된 설정을 해 주어야 합니다. 이것은 뒤에서 약간 언급하도록 하겠습니다.
설명이 무척 장황하고 복잡해 보이지만 지금까지의 작업은 자신이 필요한 모듈들을 modules.lrp 에 포함시킨 후에 다시 압축하고 원래의 디스켓에 다시 넣는 작업이었습니다.
- 모듈 패키지 만들기가 와 이리 어렵노!!!
제목과 같이 생각되시는 분들은 LRP Module package generator 라는 곳을 방문해 보시기 바랍니다. 이곳에서 필요한 모듈들을 선택하고 완료를 누르면, 바로 선택한 모듈들을 삽입해서 modules.lrp 로 만들어 줍니다. 물론 이것을 다운 받아서 디스켓에 넣어서 사용하면 됩니다. (저는 아직 사용해 보지는 않았지만 다들 잘 된다고 합니다.)
- 커널의 교체
위의 작업을 하면서 ./kernel/kernel-36pre15-1.tar.gz 을 압축 풀었을 때 2.0.36pre15-1-LRP.FPU-zImage 와 2.0.36pre2-1-LRP-zImage 라는 두개의 커널 파일을 볼 수 있었을 것입니다. 2.0.36pre15-1-LRP.FPU-zImage는 386sx와 같은 FPU가 없는 CPU를 위한 커널로서, FPU 에뮬레이터를 포함하고 있습니다. 2.0.36pre15-1-LRP-zImage 커널은 지금 디스켓에 들어 있는 커널과 같은 것으로 FPU 가 있는 CPU를 위한 커널입니다. 만약 자신의 CPU에 FPU가 없다면 아래와 같이 FPU 에뮬레이터 기능이 있는 커널로 교체해 주어야 합니다. 대신 FPU 에뮬레이터 기능이 있는 커널이 다른 것보다 30KB 정도 더 큽니다.
ex) cp 2.0.36pre15-1-LRP.FPU-zImage /플로피마운트포인트/linux
- 패키지(package) 설치
./packages/ 아래에는 13개의 패키지가 있습니다. 여기서 자신에게 필요한 패키지는 디스켓으로 복사하도록 합니다. 복사만 한다고 해서 되는 것이 아니라 디스켓에 있는 syslinux.cfg 파일을 편집해 주어야 한다.
syslinux.cfg 파일을 편집창으로 보면 맨 아래줄이 다음과 같을 것입니다.
append=load_ramdisk=1 initrd=root.lrp initrd_archive=minix ramdisk_size=4096 root=/dev/ram0 boot=/dev/fd0,msdos LRP=etc,log,modules
여기서 ppp 패키지와 gated 패키지를 디스켓에 복사했다면 .........LRP=etc, log, local, modules, ppp, gated 라고 고쳐주어야 합니다.
패키지 이름만 가지고는 어떤 역할을 하는 것인지 모르시는 분이 많으실 것입니다. 일단 패키지 파일을 적당한 디텍토리에서 압축풀어 봅시다. 몇개의 디렉토리가 생성되는데 ./var/lib/lrpkg 에는 그 패키지에 대한 설명 파일(*.help)와 몇가지의 텍스트 파일이 있습니다. 이것을 읽어보십시오. 아니면 가지고 계신 유닉스, 혹은 리눅스 관련 서적 맨 뒤의 색인에서 찾아보시면 알 수 있을 것입니다. 인터넷 상에서 찾아보셔도 금방 어디에 쓰이는 것인지를 알 수 있습니다.
패키지를 포함하여 리눅스라우터 플로피로 부팅한 상태에서는 help 패키지이름 이라고 명령을 내리면 역시 간단한 설명을 볼 수 있습니다. 단, 포함되지 않은 패키지에 대해서는 설명이 나오지 않습니다.
- 부팅
자.. 이제 LRP 부팅 디스켓을 리눅스라우터박스가 될 386, 486으로 가져가서 부팅을 해 보도록 합시다. 지금까지 사용하던 시스템과는 차원이 다른(?) 엄청난 시간을 기다려야 할 것입니다. 제 경우에는 정확하게 2분 49초가 걸렸습니다. 느린 컴퓨터가 느린 드라이브로 느리게 압축을 풀고 램디스크에 설치를 하고 있으니 어쩔 수 없는 일입니다. 녀석은 최선을 다 하는 것이니 참고 기다리도록 합시다.
이때 나오는 메시지를 잘 보아야 합니다. 랜카드는 잘 잡혀가고 있는지 등등 마지막 쯤에 etc, module, ... 하고 나오면서 lrp 화일들을 설치하는 메시지가 나오는데 만약 etc(!), modules(!) 등등 마침표가 찍힌 메시지가 나타나면 이는 lrp 화일들을 설치하는데 실패했다는 뜻이니 다시 점검하기 바랍니다.
login: 프롬프트가 뜨면 root 라고 입력합니다.
갑자기 메뉴화면(lrcfg: Linux Router Configurator)이 나왔을 것입니다. 리눅스라우터의 대부분의 세팅은 이곳에서 이루어집니다. 기본적으로 메뉴형식으로 되어있고, 네트워크 관련, 시스템관련, 패키지 관련 세팅으로 나누어져 있습니다. 그리고 마지막으로 여러분이 설정한 내용을 지속시키기 윈한 백업메뉴가 마련되어 있습니다.
이 lrcfg를 이용해서 필요한 파일들을 자신의 시스템에 맞도록 수정해 주어야 합니다. 어떤 부분은 주석처리를 해 주어야하고 어떤부분은 새로 고쳐주어야하는 등, 제법 설정이 난해해서 리눅스 네트워크 설정에 관한 기본지식이 있어야만 될 것입니다. 자신의 리눅스박스에서 라우터기능을 사용하고 계셨던 분들은 별 어려움 없이 설정을 마칠 수 있을 것입니다.
모르시는 분들은 통신상의 리눅스 동호회의 게시물들과 하우투(HOWTO) 문서들을 참조하시기 바랍니다. 꽤 복잡한 일이지만 피해갈 수 없는 일이죠. 한가지 요령을 말씀드린다면 잘 모르는 부분의 설정은 한번에 하나씩 설정해 나가라는 것이다. 괜히 세개 네개 설정을 한꺼번에 바꾸게되면 어느 부분이 문제인지 찾을 수 없기 때문입니다. 말이 쉽지 리눅스초보인 저는 여기서 이틀의 시간을 보내야 했습니다. 흑흑.. <- 제게 너무 많은 것을 바라지 말아주세요. LRP Mailing List 를 이용하는 것이 보다 좋은 대답을 얻을 수 있습니다.
예를 들어서 ppp 를 쓸 것이라면 우선 ppp 부터 설정해서 전화를 거는 것까지 완성을 시키고 그 다음 랜환경을 설정하여 랜을 완벽히 동작시킨 다음 마지막으로 ip 매스커레이딩을 설정하는 순서가 좋을 것입니다. 처음부터 한번에 성공하기는 힘드니 관련 게시물을 찾아서 필독하시기 바랍니다.
참고로 모듈에 관한 설정도 이곳(lrcfg)에서 이루어집니다.
3 ) Package settings -->
2) modules -->
1) modules kernel modules to load at boot
modules.lrp 에 여러분이 필요한 모듈을 포함시켜 두었다고해서 무조건 부팅할 때마다 모듈이 띄워지는 것이 아니라는 것입니다. 위의 메뉴를 선택하게 되면 /etc/modules 파일의 편집화면이 나오는데, 여기에 여러분이 포함시키고 싶은 모듈의 파일명을 써 주고 사용하지 않을 모듈은 주석처리(#)를 해 주면 됩니다.
메뉴화면에서 q를 누르면 쉘 화면으로 나가게 되는데, 여타 리눅스를 사용하는 느낌이 들 것입니다. 디스켓 한장 짜리든 500MB 짜리든 간에 둘다 엄연히 리눅스임에는 틀림없기 때문입니다. 다시 아까의 메뉴화면으로 돌아가고 싶다면 lrcfg (linux router configurator) 라고 입력하거나, exit를 입력하고 다시 로그인을 하면 메뉴화면으로 갈 수 있습니다.
쉘화면으로 나간 김에 암호를 정하는 하도록 합니다. passwd 라고 입력하면 root 의 새로운 암호를 정할 수 있습니다. 물론 한번 정한 것도 바꿀 수 있죠. 일단 암호를 정하면, 앞으로 로그인할 때는 암호를 묻게 됩니다.
여기서 하나 주의 할 점... LRP는 컴퓨터의 램에 램드라이브를 만들고, 그 램드라이브에 리눅스를 설치, 동작하게 됩니다. 다 아시는 것 처럼 RAM은 일단 전원을 끄면 모두 사라집니다. 방금 정한 root의 암호도 디스켓에 backup을 해두지 않으면 모두 사라져 버린 다는 것을 명심해 두십시오. backup에 관해서는 뒤에서 설명하도록 하겠습니다.
예를 들어서 ppp 설정을 해 봅시다(ppp 패키지를 설치했다는 가정하에서). lrcfg 에서 modules 메뉴에 ppp 라는 항목이 있을 것입니다. 선택하면 편집기 화면이 나오는데, 화면 상단을 보면 "/etc/ppp/options" 라고 적혀 있습니다. 즉, /etc/ppp/options 파일을 수정하고 있다는 뜻이지요. 그렇다면 ppp 와 관련된 설정파일은 /etc/ppp 디렉토리에 있다는 것을 감 잡을 수 있지요?
persist 옵션을 주면 접속이 끊어지더라도 자동으로 재접속을 시도하게 됩니다. 여기에 관해서는 네트워크 관련 HOWTO 중에서 PPP관련 문서를 잘 읽어보시기 바랍니다. 또한 제가 사용하는 LRP 이미지 파일도 한번 들여다 보시기 바랍니다.
그 다음 ppp 접속 스크립트를 만들어주고, PAP 인증을 사용하는 사람은 따로 편집해 주어야 합니다. 스크립트나 PAP 에 관한 것도 다른 게시물을 참조하거나, 네트워크 관련 HOWTO를 읽어보시고, 저 또한 PAP 인증을 사용하고 있으므로 필자의 LRP를 보아도 될 것입니다.)
LRP에서 사용되는 파일 편집기는 edit 라고 입력하면 실행 됩니다. 저장은 CTRL-S , 편집기에서 빠져나오는 명령은 CTRL-C 입니다. 도스용 편집기와 비슷하기 때문에 사용에 어려움은 없을 것입니다.
ex) edit 파일명
- 자동실행 스크립트
ppp 사용자들은 컴퓨터를 켜는 것과 동시에 접속스크립트를 실행시키고 싶을 것입니다. 이때는 /etc/rc.boot/0setserial 파일을 수정하면 됩니다. 원래는 시러얼을 설정하는 스크립트지만 부팅과 동시에 작동되므로 그 파일을 편집하는 것이 여러모로 편리하기 때문에 이 파일을 수정하도록 합니다. 그냥 마지막 줄에 접속스크립트명을 써 주면 됩니다.
필자의 예) /usr/sbin/ppp-on
이렇게 해 두면, 컴퓨터를 켜면 자동으로 접속되고, 끄면 당연히 끊어지게 됩니다. 참고로 일반 리눅스는 하드디스크로 동작하기 때문에 전원을 그냥 내리는 것은 무척 위험한 일이지만, 램드라이브로 동작하는 LRP는 shutdown 할 필요없이 그냥 전원을 내리면 됩니다.
(참고) 저는 모뎀을 사용합니다. 컴퓨터를 켜면 자동으로 접속이 되도록 해 두고 사용했었습니다. 어느날 컴퓨터를 끄지 않고 접속만 끊어둔 채로 외출했었는데, 그 사이에 정전(!)이 있었습니다. 전원을 내리지 않은 상태에서 전기가 들어오니 당연히 부팅.. 전화 접속.. 전 수 시간의 전화비를 그냥 날렸답니다. 그 뒤로는 부팅과 동시에 연결을 하지 않도록 하고 있습니다.
감을 잡으셨겠지만, 부팅시에 실행되는 스크립트는 /etc/rc.boot 로 잡혀있습니다. 이 안에 실행스크립트를 넣어주는 것만으로 완성됩니다. 제가 위와 같은 방법을 택한 이유는 단지 용량을 몇 KB 나마 아껴보고자 한 일이니 여러분은 여러분의 방식으로 하셔도 무방합니다. 즉, 스크립트를 부팅과 동시에 실행 시키고 싶을 때는, 0setserial 파일 안에 위와 같은 형식으로 써 넣어주어도 되고 만든 스크립트를 그 디렉토리에 넣어두셔도 된다는 것입니다.
여러분의 응용능력에 따라서 정말 다양한 기능의 리눅스 라우터를 만들 수 있다는 사실을 잊으시면 안됩니다.
- 외부로부터 root 접속
외부로부터 root 접속을 가능하게 하려면 /etc/securetty 파일을 수정해야 합니다. 이 파일은 최초의 메인메뉴화면(lrcfg) 에서도 편집이 가능합니다.
2 ) System settings --> 5) ports root is allowed to login to
위와 같이 메뉴를 선택하면 편집화면이 나왔을 것입니다. 거기서 맨 마지막 줄에
ttyp0
ttyp1
을 삽입하도록 합니다. 보안에 문제가 있으므로 외부로부터의 root 접속은 막아두는 것이 좋겠지만, 모니터, 키보드, 비디오카드도 없이 사용하다가 설정 하나 바꾸기 위해서 모두 다 설치하는 것은 귀찮은 일이 아닐 수 없습니다. 일단 위와 같이 설정해 두면, telnet 접속을 통해서 리눅스라우터박스를 마음껏 관리할 수 있습니다.
간단하게는 ppp접속이 필요할 때, 윈도우의 이야기 통신프로그램으로 리눅스 라우터에 접속해서 로그인, ppp-on을 실행시키고, 다 썼으면 ppp-off 을 실행시켜서 연결을 끊을 수 있습니다. 복잡하게는 시스템 설정과 backup 까지도 할 수 있지요.
좀 더 연구해보면 외부 네트워크로부터의 접근은 막고 내부 네트워크에서만 접속이 가능하도록 만들 수도 있습니다. 잘 연구해 보십시오. 어려운 일은 아닙니다
- log 파일 관리하기
리눅스라우터도 엄연한 리눅스이기 때문에 log 파일을 생성합니다. 일반적인 시스템이라면 별로 문제가 되지 않지만, 램드라이브를 사용하는 LRP 에서는 문제가 될 수 있습니다. 예를 들어서 log 파일이 자꾸만 커지게되면 나중에는 4메가 크기의 램드라이브가 꽉 차게 되버립니다. 이런 사태를 막기 위해서는 log 파일 생성을 적당히 제한해 주어야합니다.
lrcfg 에서
2 ) System settings --> 7) system log config
위와 같이 선택해서 적당히 수정해 주면 됩니다. log 파일이 생성되는 것을 원치 않는 작업 앞에 주석처리 (#) 를 해 주는 것으로 간단하게 설정을 마칠 수 있습니다.
log 파일을 관리하는 또 다른 방법은 cron 을 이용한 접속관리라는 절에서 다시 한번 다루도록 하겠습니다.
- 백업하기
여러분의 LRP는 램디스크 상에서 운용됩니다. 아무리 수정을 잘 해 놓았더라도 일단 전원을 내리면 그것으로 사라지는 것입니다. 어떤 파일을 수정했던지 간에 그 설정이 다음 번에도 지속되기를 바란다면 반드시 백업을 해야합니다.
백업은 최초의 메인메뉴의 화면에서 backup(b) 메뉴를 선택하면 됩니다. 메뉴에 따라 수정한 것들이 플로피디스켓에 저장하게 되는데, 초심자는 일단 everything except log 정도로 선택하면 될 것이나 경험이 쌓이게 되면 수정된 부분에 관련된 패키지만 저장해 주면 됩니다.
예를 들면, /etc에 있는 어떤 파일만 고쳤을 때는 etc만 백업하면 됩니다. 특히 메뉴화면(lrcfg)에서 설정파일을 수정할 때는, 편집기 화면 상단에 어느 디렉토리의 무슨 파일을 수정하고 있는지를 보여주기 때문에 쉽게 백업할 수 있습니다.
다시 한번 말하지만 항상 여러분의 리눅스가 램드라이브에 설치되어 있다는 점을 명심하시기 바랍니다.
- 다른 컴퓨터(client)의 네트워크 설정
이제 다른 컴퓨터의 설정을 환경에 맞게 바꾸어 줍니다. 윈도우를 사용하는 컴퓨터들은 네트워크 설정에서 TCP/IP 부분에 있는 gateway를 리눅스 라우터 박스의 IP주소로 설정해 주어야 합니다. 물론 LINUX를 사용하고 있는 컴퓨터에서도 그렇게 설정해야 합니다.
DNS 는 여러분의 ISP(Internet Service Provider)에서 제공하는 것으로 입력합니다. LRP 에는 네임서버가 설치되어있지 않기 때문에 DNS서버를 LRP 로 지정하면 외부로 접속이 되지 않습니다. 역시 네트웍 설정에 관한 기초지식이 필요할 것이므로 네트워크 관련 HOWTO를 상세히 읽어보세요. (패키지 중에 DNS 서버 관련 패키지를 설치해서 운용하셔도 됩니다.)
- addons 설치하기.
LRP는 1개의 addons를 제공하고 있는데 설치하는 방법은 다음과 같습니다. 일단 필요한 addon을 아무 디스켓에 복사하고, LRP 디스켓으로 부팅합니다. LRP 가 부팅된 후에 addon이 들어 있는 디스켓을 마운트 시키고, addon을 /tmp로 복사합니다.
거기서 압축을 풀고, ./install 을 실행시킵니다. 이렇게 설치를 마친 후에 꼭~ 백업하는 것을 까먹지 말도록 합니다. 한번 백업해 두면, LRP 패키지에 포함되게 되므로, 위와 같은 작업은 더 이상 할 필요가 없습니다.
각각의 addon 패키지는 readme 파일을 포함하고 있으므로 읽어보면 어디에 쓰이는 것인지 쉽게 알 수 있을 것입니다.
4. 고용량 플로피 부팅 디스켓 만들기
LRP를 설치해 보시면 알겠지만 아슬아슬하게 디스켓 한장에 들어 갑니다. 하지만 더 많은 기능을 위해서는 한장으로는 턱없이 부족한 것이 사실이죠. 따라서 1.44MB의 디스켓을 1.72MB, 1.74MB 등으로 포맷해서 사용하는 것도 좋은 방법입니다.
(참고) LRP 2.9.4 는 2.9.3 보다 파일의 크기가 상당히 많이 줄었습니다. 1.44MB로 만든다고 해도 널널할 정도 입니다. 일단 1.44 메가 디스켓에 만들어보고 모자르면 그때 '고용량 플로피 부팅 디스켓'을 만들어서 사용하시기 바랍니다.
흔히 사용되는 방법은 래드햇 리눅스에는 포함되어 있지 않은 fdutils 를 사용하는 것인데 (데비안패키지에는 포함되어 있음), 여기에는 superformat 등의 유틸이 포함되어 있어서 원하는 크기로 쉽게 포맷할 수 있습니다.
fdutils 5.2 소스는 여기에서 구할 수 있습니다. 설명을 잘 읽어보시고 컴파일해서 사용하도록 하십시오. 저는 알짜래드햇5.2를 사용하는데 설치에 아무런 문제가 없었습니다.
래드햇 리눅스를 사용하시는 분들을 위해서 데비안의 fdutils 패키지를 rpm 으로 변환해 두었습니다. 바이너리 패키지(fdutils-5.2-4.i386.rpm)니까 따로 컴파일하실 필요가 없습니다. 래드햇 5.2, 6.0 에서도 잘 작동하는 것을 확인했으니 걱정말고 사용하십시오.
ex)
rpm -Uvh --force fdutils-5.2-4.i386.rpm
/dev/MAKEFLOPPIES (혹은 /bin/MAKEFLOPPIES 스크립트를 실행)
중요한 것은 여러분이 사용하시는 리눅스에 device 파일을 생성시키는 것입니다. 이것을 만들지 않으면 고용량으로 디스켓을 포맷하는데 성공하더라도 제대로 마운트가 되지 않습니다. 마운트가 제대로 되지 않으면, 디스켓에 파일을 옮길 수 없는 것은 당연하겠죠? 자세한 것은 man 페이지를 참조하시도록 하세요.
fdutils를 설치하고서 포맷하는 방법은 다음과 같습니다.
ex) superformat /dev/fd0u1722
아래 목록은 리눅스라우터(LRP)에서 지원하는 플로피드라이브 디바이스 목록입니다. 아래 목록에 나온 용량으로 포맷해서 디스켓을 만들도록 하십시오.
fd0h1200 fd0h1440
fd0h1476 fd0h1494 fd0h1600 fd0u1040 fd0u1120 fd0u1440
fd0u1600 fd0u1680 fd0u1722 fd0u1743 fd0u1760 fd0u1840
fd0u1920 fd0u2880 fd0u3200 fd0u3520 fd0u3840
위의 목록에 나와있는 것에 맞추어서 포맷을 해야하는 이유는 다음과 같습니다.
리눅스라우터(LRP)는 부팅을 시작하면 먼저 램드라이브를 만들고, root.lrp를 램드라이브에 설치하고, 커널을 띄웁니다. 그런 다음에 다시 디스켓을 마운트해서 etc.lrp, log.lrp 등의 다른 lrp 패키지를 설치합니다. 그런데 리눅스라우터에서 지원하지 않는 크기로 디스켓이 포맷 되어 있으면, 마운트를 시키지 못하게되고, etc.lrp, log.lrp 등을 설치하지 못하는 것입니다.
이제 디스켓을 DOS FAT 형식으로 바꾸어 줍니다. LRP 디스켓은 도스형식으로 되어있으며 실제로 도스나 윈도우에서 인식이 가능합니다.
ex) mkdosfs /dev/fd0u1722
리눅스라우터에 새로운 플로피드라이브 디바이스를 만들고자 하시는 분들께서는 /var/lib/lrpkg/root.dev.mk 스크립트를 수정 해 주어야 합니다. 이 스크립트에 의해서 부팅후에 디바이스 파일들이 /dev/ 에 생기는 것입니다.
mknod fd0 b 2 0 >null 2>&1
mknod fd0h1200 b 2 8 >null 2>&1
mknod fd0h1440 b 2 40 >null 2>&1
mknod fd0h1476 b 2 56 >null 2>&1
mknod fd0h1494 b 2 72 >null 2>&1
mknod fd0h1600 b 2 92 >null 2>&1
mknod fd0u1040 b 2 84 >null 2>&1
.
.
위와 같이 보이는 부분에 여러분께서 원하시는 디바이스 설정을 추가 해 두면, 다음에 부팅할 때부터 필요한 디바이스파일이 만들어집니다. 설정 가능한 용량과 디바이스 번호는 여기에서 확인해시기 바랍니다. 두개의 플로피디스크드라이브를 함께 사용하고 싶으신 분들도 이 스크립트를 수정하시면 됩니다. 두대의 플로피디스크드라이브를 사용하게 된다면 용량 걱정은 할 필요가 없겠죠?
그 다음 필요한 것은 syslinux-1.44 이라는 것으로 역시 데비안 리눅스에서 흔히 사용되는 것입니다. 도스에서의 sys.com 과 같은 역할을 합니다. superformat 으로 디스켓을 포맷한 후에 syslinux -s /dev/fd0xxxxx 라고 해 주면 디스켓이 부팅가능한 디스켓이 됩니다. syslinux는 도스에서도 실행이 가능한데 (원래 도스용 프로그램입니다.) syslinux -s a: 라고 해주면 됩니다.
syslinux 1.44 는 여기에서 구할 수 있습니다.
이렇게 부팅이 가능하도록 만든 후에 커널 등의 필요한 파일들을 디스켓으로 복사해 줍니다. 어떤 파일이 필요한지는 처음에 이미지(idiot.image-2.9.4-1.44MB)를 풀어서 만든 디스켓을 참조하시면 좋습니다. 아니면 아예 1.44MB 짜리 디스켓에 들어있는 파일들을 새로 포맷한 디스켓에 복사해서 넣으셔도 됩니다.(ldlinux.sys 제외)
1.44MB 짜리 이미지에는 다음과 같은 파일들이 들어있습니다.
etc.lrp
ldlinux.sys ( syslinux 로 부팅가능하게 만들면 생성되는 파일입니다.)
linux
local.lrp
log.lrp
modules.lrp
root.lrp
syslinux.cfg
syslinux.dpy
이제 가장 중요한 것이 하나 남았습니다. 디스켓에서 syslinux.cfg를 편집해 주어야 합니다. 이 파일의 맨 마지막 줄에 root=/dev/ram0 boot=/dev/fd0,msdos 내용이 포함되어 있는데 이것을 boot=/dev/fd0xxxx포맷한크기,msdos로 고쳐주어야 합니다. 이 작업을 하지 않으면 부팅이 제대로 이루어지지 않기 때문입니다.
ex)
superformat /dev/fd0u1722
(도스에서) syslinux -s a:
(syslinux.cfg 편집)..... boot=/dev/fd0u1722,msdos ......
이제 원래보다 용량이 훨씬(?) 늘어났으므로 보다 널널한(?) 환경에서 필요한 패키지를 설치하도록 하십시오.
저는 1722KB 로 포맷하여 사용하고 있는데, 이 디스켓 이미지가 필요하신 분은 여기를 클릭하세요. 이 이미지 파일을 디스켓에 푸는 방법은 dd if=lrp1722.img of=/dev/fd0u1722 이라고 하시면 됩니다. 만약 fdutils 를 설치하지 않으셨다면, 그런 디바이스가 없다는 에러가 날 것입니다. 꼭, fdutils 를 먼저 설치하세요.
(참고) 1722kb로 포맷해서 이용하는 것이 가장 안정적이며, 도스에서도 완벽하게 인식됩니다. 보다 더 큰 용량으로 포맷을 하게되면 도스에서 인식이 안되거나, 인식이 되더라도 부팅이 안된다거나 하는 문제가 생긴다고 합니다. (이것은 시스템 바이오스와도 관련이 있다고 합니다.) 또한 디스켓이 잘 깨지는 문제도 발생한다고 합니다. 1722kb로 포맷해서 사용하는 것을 권장합니다.
5. cron 과 리눅스 라우터
cron 을 이용하면 주기적으로 반복해야하는 작업을 자동으로 처리 할 수 있습니다. LRP를 부팅할 때, cron 데몬이 자동으로 시작 되므로, /etc/crontab 파일을 편집해 주는 것만으로 쉽게 관리할 수 있습니다. 저처럼 통신요금정액제를 쓰는 분들에게는 꼭 필요한 기능일 것입니다.
아래는 저의 crontab 파일의 모습입니다.
50 3 * * * root /usr/local/sbin/dateconfig
50 23 * * * root /usr/local/sbin/dateconfig
10 11 * * * root /usr/local/sbin/dateconfig
00 11 * * 1-6 root /usr/local/sbin/ppp-on
00 3 * * 1-6 root /usr/local/sbin/ppp-on
59 23 * * 7 root /usr/local/sbin/ppp-off
59 23 * * 1-5 root /usr/local/sbin/ppp-off
59 3 * * 1-6 root /usr/local/sbin/ppp-off
네 번째, 다섯 번째 줄은 매주 월요일-토요일 오전 11시와 3시에 전화접속을 시켜주는 ppp-on 스크립트를 실행시킨다는 의미입니다.
여섯번째줄은 일요일 밤 11시 59분에 ppp 접속을 끊는 스크립트를 실행시킨다는 것이고, 일곱번째 줄은 월요일에서 금요일까지 역시 같은 시간에 접속을 끊겠다는 것입니다. 마지막 줄은 월요일에서 토요일까지 오전 3시59분에 접속을 끊겠다는 것이죠.
이상한 점을 느끼지 못 하셨나요? 저의 crontab 설정은 전혀 통신요금 정액제 시간과 무관하게 설정되어 있습니다. 왜냐..! 저는 GMT 시간을 사용하기 때문입니다. 예를 들면, GMT 시간으로 일요일 밤 11시59분은 한국시각으로 월요일 오전 8시59분 입니다. 제가 GMT를 사용할 수 밖에 없었던 이유는 다음 절에서 설명하기로 합니다.
52 6 * * * root run-parts --report /etc/cron.daily
위의 줄은 기본적으로 crontab 에 포함되어 있는 내용입니다. 이것은 매일 오전 6시 52분에 /etc/cron.daily 디렉토리 안에 존재하는 모든 스크립트를 실행한다는 의미입니다.(run-parts 유틸리티는 디렉토리 안에 존재하는 모든 명령을 실행할 때 사용하는 것입니다.) 실제로 이 디렉토리에는 sysklogd-d 라는 스크립트가 있습니다. 이 스크립트를 실행시키면 기존에 있던 여러개의 /var/log 파일들이 각 종류별로 압축되어 저장되고, 새로운 0byte 파일들로 대체됩니다. 한번 더 실행시키면 번호가 매겨지면서 다시 압축 저장되고, 새 파일들이 그 자리를 메우게 됩니다.
리눅스라우터를 log 파일 생성을 제한하지 않고서 오랜 시간을 사용하게되면 log 파일이 상당히 커지게 됩니다. 이렇게 되면 램드라이브를 사용하는 시스템에는 부담이 되지 않을 수가 없습니다. 하지만 위의 스크립트를 cron 을 이용해서 주기적으로 실행시켜 주면, log 파일들이 압축되어 관리되기 때문에 시스템에 주는 부담을 줄일 수 있습니다. 이것이 log 파일 생성을 제한하는 것 보다 좋은 점은 리눅스라우터에 문제가 생겼을 때, 어떤 일이 발생 했었는지를 log 파일을 통해서 파악 할 수 있다는 점입니다. 하지만, 이것도 램드라이브 상에 있기 때문에 일단 전원을 내리면 사라지게 되므로 조심하시기 바랍니다. '에이~ 일단 꺼두고 나중에 알아보자!' 라고 생각하면, 이미 당신의 log 파일은 사라지고 난 뒤가 될 것입니다.
6. 자동으로 세계표준시에 맞추자.
컴퓨터의 시간은 잘 맞춰 놓는다고 해도 며칠이 지나면 조금씩 실제시각과 차이가 나기 시작합니다. 컴퓨터에 따라서는 하루만 지나도 약 1분 이상 차이가 나기도 합니다. 만약 시간 설정이 잘못된다면 앞에 절에서 작성한 crontab은 조금씩 엉뚱한 시간에 작동하게 되겠죠? 예를 들어서 cron 이 잘못 작동하게되어 접속이 끊어지지 않는다면? 정액제 시간이 끝난 시간에도 접속이 유지되고, 저는 엄청난 전화요금을 내야 할 것입니다.
또한 제가 사용하는 리눅스 라우터박스는 키보드도, 비디오카드도, 모니터도 없는데, 바이오스로 들어가서 시간 하나를 다시 맞추기 위해 모두 다시 설치할 수는 없는 일입니다.
자동으로 시간을 맞추기 위해서 필요한 것은 래드햇 리눅스에 기본적으로 포함되어 있는 /usr/bin/rdate 와 /sbin/hwclock 입니다. (LRP 2.9.4 에는 rdate 가 기본적으로 포함되어 있습니다. 따라서 hwclock 만 따로 삽입하시면 됩니다.)
ex) rdate -s shinbiro.com && hwclock -w
위와 같이 실행한다면 신비로 서버에서 시간을 받아와서 시스템의 시간을 고치고 (rdate), 그 시간을 시스템 바이오스에 기록한다는(hwclock) 것입니다. 저는 이것을 dateconfig 라는 스크립트로 만들어서 앞절에서 본 바와 같이 cron으로 매일 특정시간에 (끊어지기 원하는 시간 10분 전에) 시간을 수정하도록 만들었습니다.
참고로 제가 사용하는 LRP 이미지에서는 hwclock 가 아니라 clock 으로 이름을 바꿔 두었으니 참고하시기 바랍니다. (/usr/local/sbin)
위의 스크립트를 사용하게 되면 LRP 리눅스 라우터박스는 시간이 무조건 GMT시간으로 바뀌게 됩니다. 그래서 제가 GMT 시간을 사용할 수 밖에 없었던 것입니다. 한국 시간을 GMT 시간으로 고쳐서 사용하려니까 계산도 복잡하고 머리 아프죠? 저는 휴대폰의 듀얼타임기능을 이용했습니다. 하나는 한국 시간, 하나는 영국 시간으로 해 둔 다음에 한국 시간을 원하는 시간으로 고치면, 자동으로 GMT 시간을 보여 줍니다.
(상식) GMT 시간은 그리니치 천문대의 시간을 기준으로 합니다. 그리고 그 천문대는 영국에 있으므로 영국 런던의 시간을 이용하시면 됩니다. 한국은 GMT+9 의 시간을 가집니다.
참고로 모든 리눅스는 GMT 시간을 지역에 맞게 변환해서 사용하는 것 같은데 어떤 루틴이 그런 역할을 하는지 몰라서 그냥 사용하고 있습니다. LRP 에서도 로컬타임을 사용하고 싶다면 여러분이 직접 연구해 보시기를 바랍니다.
래드햇 리눅스를 설치할 때, xntp를 설치하셨다면, ntpdate 라는 것을 이용하는 것도 가능합니다. 이것을 사용하고 싶다면 ntpdate time-a.nist.gov 라고 하면 됩니다.xntp 에 대한 보다 자세한 정보가 필요하신 분은 여기에 가 보세요.
7. 무소음리눅스라우터박스와 NFS
(참고) LRP 2.9.4 에는 proftpd 라는 패키지가 새로 생겼습니다. FTP 서버인 것으로 알고 있습니다. 이것을 이용하면 파일 이동만을 위해서 NFS를 설치할 필요가 없게 됩니다. 그냥 FTP로 옮기면 되니까요. 아직 사용해 보지 않았기 때문에 설명은 못 올리지만, 시간이 생기면 해보고 글을 올리도록 하겠습니다. 여러분께서도 직접 도전해 보세요.
NFS (Network File System) 는 랜으로 물려있는 다른 컴퓨터의 저장매체를 mount 시켜서 자신의 매체처럼 사용할 수 있도록 해 줍니다. 이것은 LRP 에서 매우 유용하게 사용될 수 있습니다. 기본적으로 LRP는 아무런 프로토콜도 가지고 있지 않기 때문에, 원격관리할 때 파일을 자신의 컴퓨터로 옮겨 오거나, LRP로 집어넣을 수가 없습니다. 즉, 파일의 이동은 디스켓을 통해서만 가능하게 됩니다.
하지만 NFS를 이용, LRP에서 다른 리눅스컴퓨터의 하드디스크를 마운트시킨다면 파일의 이동은 제한이 없어지게 됩니다. LRP를 설치할 때, NFS 모듈을 넣어두셨다면 간단한 작업을 통해서 NFS를 사용할 수 있습니다.
문제는 지금 LRP에 포함되어 있는 mount, umount 유틸이 NFS를 지원하지 못한다는 것입니다. 따라서 두 파일을 자신의 리눅스시스템에 들어있는 것과 바꾸어 주어야 합니다. 이 작업은 디스켓을 통해서 할 수 밖에 없겠죠?
일단 두 파일을 바꾸어주고, 자신의 리눅스시스템에서 NFS를 위한 설정을 해 줍니다. 자신의 리눅스 시스템에서 NFS를 지원하도록 만드는 방법은 HOWTO 참조하도록 하십시오.
모든 준비가 끝났다면 telnet 으로 리눅스라우터박스에 접속합니다. 그리고 NFS 마운트를 시켜보세요.
ex) mount -t nfs soo:/pub /mnt
soo는 제 리눅스시스템이고 /pub는 마운트시키고 싶은 상대의 디렉토리를 의미하고 /mnt 는 LRP 에서 마운트 시킬 장소를 의미합니다. 참고로 LRP에는 nfs 데몬이 들어있지 않기 때문에 꼭 telnet으로 리눅스라우터에 접속해서 다른 다른 리눅스 머신을 nfs 마운트 시킬 수 밖에 없습니다. LRP 에 NFS 데몬을 삽입하시고 싶은 분은 한번 연구해서 해 보시고요.
이렇게 마운트를 하고서, 필요한 파일을 LRP 로 복사해 옵니다. 그리고 까먹지 말고 꼭 backup 하시고요. NFS를 사용하면 더 이상 디스켓을 가지고 왔다갔다 할 필요가 없습니다.
모듈을 설치할 때, 눈썰미가 있으신 분은, samba 모듈이 있었다는 것을 기억하고 계실 것입니다. NFS 사용을 꺼리시는 분은 삼바를 이용해서 파일을 공유하셔도 됩니다.
diskless booting 도 NFS 를 통해서 이루어집니다. 이것을 구현한다면 플로피디스크드라이브도 필요없는 리눅스라우터 박스를 만들 수 있습니다. 자세한 것은 HOWTO 중에서 Diskless mini HOWTO를 참조하시기 바랍니다.
8. 주어진 커널은 싫다!
(참고) 아래의 설명은 LRP 2.9.3 에 맞춰진 것입니다. 2.9.4 에 들어있는 커널패치 파일을 커널 2.0.36에 적용해 보려고 했으나.. 에러만 생겼답니다. 어지간하면 그냥 사용하시고 꼭 커널을 컴파일해서 사용해야하시는 분은 제가 패치해 놓은 2.9.3 용 커널소스를 시용하시기 바랍니다. 제가 지금 LRP 2.9.4에 2.9.3용 커널을 사용하고 있지만 아무 문제가 없습니다.
기본적으로 주어진 커널을 사용하기 싫으신 분들도 계실 것입니다. 저는 486을 사용하는데 386 에 맞춰서 컴파일된 커널을 사용하는 것이 자꾸 손해보는 느낌이 들더라고요. 그리고 분명히 제가 사용하지 않는 기능이 커널에 포함되어 있을 것이고, 그것 때문에 커널의 크기도 커지고, 메모리도 더 차지하게 되는 것이 마음에 들지 않았습니다. (LRP 리눅스라우터를 사용하다보면 작은 크기에도 매우 민감한 반응을 보이게 됩니다.)
저와 같은 생각을 가지고 계신 분은 직접 리눅스라우터용 커널을 컴파일 하십시오.
우선 2.0.36 커널소스를 구합니다. ftp.kreonet.re.kr 이나 ftp.kernel.org 에 가시면 이 버전의 커널소스를 구할 수 있습니다. 다운로드 받은 파일을 자신의 리눅스시스템 /usr/src 에서 풀어줍니다.
그 다음 ./2.9.3/kernel/kernel-36pre2/patches 에 들어있는 2.0.36-pre-patch-2.diff 를 제외(!)한 나머지 *.diff 파일들을 /usr/src 에 복사를 하시고, 커널소스 패치를 해 줍니다. 2.0.36-pre-patch-2.diff 로 패치를 시도하면 에러가 발생할 뿐이니 절대로 하지 마십시오.
ex) patch -p1 -d linux <ide-floppy-pre34.diff
위와 같은 형식으로 5개의 diff 파일로 커널소스를 패치 합니다. 그 다음은 평소 커널 컴파일을 하는 식으로 해 줍니다. 단, 커널 컨피그는 ./2.9.3/kernel/kernel-36pre2/2.0.36pre2-1-LRP-config 파일을 이용하십시오. 일단 이 커널 컨피그파일을 불러온 후에, 거기서 필요없는 부분을 지워나가는 것이 문제가 생길 소지가 적습니다. 잘 모르는 부분은 그냥 내버려 두는 것이 좋고요.
혹시 커널 패치에 실패하신 분은 여기를 클릭하셔서 제가 패치해 놓은 LRP 2.9.3 용 커널소스 2.0.36 을 받아가십시오.
make bzImage 를 이용해서 컴파일을 한다면 커널파일 크기가 좀 더 작아지므로 디스켓의 용량을 아낄 수 있습니다. 생성된 커널을 디스켓에 linux 라는 이름으로 복사해서 넣으면 커널의 교체가 끝나는 것입니다. 486에 486 에 맞는 커널을 사용 기분은 호부호형을 허락받은 홍길동의 심정과 비슷하지 않을까요...?
저는 여기서 문제가 생겼는데요. 커널을 교체한 이후 ftp 접속만 하면 계속 illegal port 에러가 생겼습니다. 여러번 커널을 컴파일 했지만 문제를 잡지 못하고, 결국 ip_masq_ftp.o 모듈을 모듈로 설치해 주었더니 그런 문제가 사라졌습니다. 참고하시기 바랍니다.
9. 완성
모든 것을 테스트 후에 완성되었다는 것이 확인 되었다면, 과연 여러분의 리눅스라우터가 얼마나 많은 자원을 사용하고 있는지 확인해 보십시오. free 명령으로 램은 얼마나 여유가 있는지를 살펴보시고 df 명령으로 램드라이브는 얼마나 남아있는가도 알아보십시오.
만약 램드라이브가 100kb 이상 남아 있다면 이것은 낭비라고 할 수 있습니다. 이럴 때는 램드라이브의 크기를 줄이고, 그렇게 확보한 램을 리눅스라우터가 사용할 수 있도록 해 주는 것이 효율적일 것입니다.
램드라이브의 크기를 조정하기 위해서는 디스켓에 있는 syslinux.cfg 파일을 편집하셔야 합니다.
....... ramdisk_size=4096 .......
이렇게 보이는 곳이 있는데.. 램드라이브가 사용한 용량보다 100kb 정도 더해서 고쳐주세요. 너무 빡빡하게 설정하면 log 파일이 생성될 공간이 모자르게 될 것입니다. 제 경우에는 3500이 적당했습니다.
여기서 주의할 점 하나! : 램드라이브 용량은 lrcfg (Linux Router Configurator)에서 백업하는 것과 밀접한 관계가 있습니다. 백업과정은 지정한 패키지와 관련된 파일들을 /tmp 디렉토리에 압축을 한 후에 디스켓에 옮기는 것으로 되어 있습니다. 만약 램드라이브의 용량이 충분히 남아있지 않다면 압축이 제대로 이루어지지 않기 때문에 백업에 실패하게 됩니다. 따라서 램드라이브의 크기를 줄일 때는 더 이상 백업을 할 필요가 없을 것이라는 확신이 있을 때만 줄이세요. 또한 백업이 제대로 이루어지지 않을 경우에는 램드라이브 용량을 더 크게 만들어서 시도해 보시고요.
아니면 Back Up 서브 메뉴 중에서 t) Write to /tmp before /mnt = on 과 c) Confirm Writes = on 을 모두 OFF로 만들어 주면 곧바로 플로피디스크로 백업을 하게 되므로 램드라이브의 용량과 무관하게 백업을 수행할 수 있습니다. 단, 이렇게 하다가 백업이 실패하게 되면 플로피디스켓에 들어있던 파일들이 깨지게 됩니다. (파일의 크기가 너무 커서 디스켓 안에 들어가지 않는다거나 하는 경우에...)
모든 것이 완벽하다면 디스켓을 한장 더 백업해 두도록 합시다. 이제까지 고생 고생해서 만든 것을 디스켓에러로 모두 날릴 수가 있으니까요. 여러분의 리눅스시스템에 백업해 두시는 것도 좋은 생각입니다.
ex) dd if=/dev/fd***** of=lrp294.img
위와 같이 하면 lrp294.img 파일이 생성될 것입니다. 나중에 새로운 똑같은 디스켓을 만들고 싶을 때는 새 디스켓을 플로피디스크드라이브에 넣은 후 dd if=lrp294.img of=/dev/fd***** 라고 하면 됩니다.
이제 LRP 시스템의 바이오스를 확인해보도록 하십시오. Standard.... 라는 부분에서 키보드와 비디오카드에 관련된 옵션이 있다면 둘다 Disable로 바꾸십시오. 이렇게 하면 부팅할 때 키보드와 비디오카드를 더 이상 찾지 않게 됩니다. 그렇다고해서 나중에 사용을 못하는 것은 아닙니다. 단지 부팅할 때, 키보드나 비디오카드가 없다고 에러나는 것을 방비하기 위함이니 걱정할 필요가 없습니다.
바이오스 상에서 비디오카드와 키보드에 관한 옵션을 disable 로 바꾸셨다면 이제 비디오카드와 키보드를 제거하도록 하십시오. 어차피 남는 것이니 꼽아두어도 상관 없을지도 모르지만 전기도 아끼고 전력소모가 적으면 파워의 열도 적게 나오기 때문에 어지간하면 빼두는 것이 좋습니다. 특히 파워에서 팬을 제거하신 분들은 비디오 카드에서 상당량의 열이 방출되므로 빼두는 것이 좋습니다. 케이스를 벗겨두고 사용하시는 분들은 열 방출에 대해서는 신경 쓸 필요가 없겠습니다만...
이제 앞으로는 모든 설정을 telnet을 통한 root 접속을 이용해서 바꾸면 됩니다. 통신프로그램 이야기로 접속해서 해도 되고요.
만약 여러분의 바이오스에 비디오카드와 키보드에 관한 옵션이 없다면 최소한 다음과 같은 옵션이 있을 것입니다. Ignore errors 나 error message on/off 등과 같은 옵션이 있을 것입니다. 이런 옵션은 키보드 혹은 비디오카드가 없다고 에러가 날 때, 그 에러를 무시하고 부팅을 계속하게 만들 수 있습니다.
제가 486을 이용하여 리눅스 라우터를 만들어 본 결과 매우 시스템은 안정적이었습니다. 파워의 팬이 없어서 불이나지는 않을까라고 생각도 해 보았지만 80시간 이상 연속으로 돌려도 아무런 문제가 생기지 않았고, 모뎀의 접속도 끊어지지 않았습니다. 그 이상은 전기가 아까워서 더 이상 테스트 해 보지 않았습니다. 사용하지 않는 386, 486 을 이용하여 만드는 무소음리눅스라우터에 여러분들도 도전해 보시기 바랍니다.
그럼 여러분의 무운을 빌겠습니다.
꼬랑지 : 보다 자세한 자료는 LRP 홈페이지에서 찾으실 수 있으니 꼭 들러보시기 바랍니다.
LINUX 없이 Linux Router Box 를 만들자.
과연 기존의 리눅스 시스템이 없이 리눅스 라우터 박스를 만들 수 있을까요?
정답은 할 수 있다는 것입니다. 아래의 설명만 보고 만드는 것이 어려울 지도 모릅니다. 하지만 제 홈페이지의 '소개'에서부터 '마지막 마무리' 까지 잘 읽어보신 분은 쉽게 이해할 수 있을 것이라고 생각합니다.
방법은...
1. LRP 를 다운 받는다.
2. 이미지파일(idiot-image_1440KB_2.9.4)을 디스켓에 풀어넣어 준다.
(방법) rawaite.exe 을 이용하시면 됩니다.
3. 필요한 모듈을 선택해서 modules.lrp 를 만든다.
(방법) LRP Module package generator 에 가서 필요한 모듈을 선택하면 자동으로 modules.lrp 로 만들어 줍니다. 이것을 그대로 디스켓에 넣어줍니다.
4. 필요한 패키지를 디스켓에 넣고, syslinux.cfg를 편집한다.
5. LRP 디스켓 완성되었으므로 부팅해서 필요한 설정을 해 준다.
무지하게 간단하죠? 비록 세세한 부분까지 설정할 수는 없지만 리눅스 시스템이 없이도 리눅스 라우터 박스를 만들 수 있습니다.
그렇다면 고용량 부팅디스켓은 어떻게 만들 수 있을까요?
이전에는 Copystar를 이용하라고 했는데요. 형일님께서 사용하시는 winimage가 더 좋더군요. 이놈도 1.68, 1.72MB 로 포맷을 할 수 있으며 리눅스에서 만들어진 이미지를 디스켓 풀어 넣어주는 기능도 해 줍니다. 그 반대도 가능하고요.
제가 만들어둔 샘플이미지(1.72MB)를 winimage로 디스켓에 넣어주면 자동으로 고용량 부팅디스켓이 만들어집니다.
예를 들면, 형일님의 이미지(케이블 모뎀용)는 1.44MB 디스켓을 사용합니다. 이것을 1.72MB 디스켓으로 변환하고 싶다면.. 제 이미지파일을 디스켓에 풀어주고, 형일님 디스켓에 들어있던 파일들로 교체해 주면 끝납니다. 간단하죠? (주의점: ldlinux.sys 는 바꾸면 안됩니다. 이것은 도스의 io.sys, msdos.sys 와 같은 것으로 syslinux 에 의해서 만들어진 파일입니다.)
(참고) rawrite.exe 로 1722KB 이미지를 디스켓에 쓸 때는 에러가 발생합니다. 메뉴얼을 보면 1.44M, 1.2M, 720K 그리고 360K만을 지원한다고 합니다.
세상 무지하게 좋아졌습니다 그려..