PPP를 쓰려면 리눅스 커널이 PPP를 포함하도록 컴파일해야 한다. 리눅스
소스코드를 갖고 있지 않다면 - 리눅스 표준 파일 체계에서
/usr/src/linux
에 들어 있다. - 리눅스 소스 코드를 구해야
한다.
이 디렉토리를 확인해보라 - 많은 리눅스 배포본들이 설치 과정의 일부로서 이 자리에 소스를 깔아준다(파일과 부디렉토리).
처음 부팅할 때, 리눅스 커널은 많은 양의 정보를 내보낸다. 커널 안에
PPP가 포함되어 있으면 그 정보가 이 때 나타난다. 이 정보를 보려면
syslog 파일을 열어보거나, dmesg |less
명령을 써서 화면에
정보를 나타낼 수 있다. 커널이 PPP 지원을 포함할 경우 아래와 같은 행을
볼 수 있다.
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered.
(리눅스 2.0.x 커널 시리즈의 경우).
리눅스 커널 소스은 sunsite.unc.edu
나 미러사이트에서 ftp로
구할 수 있다.
다음은 리눅스 커널 소스를 구하고 까는데 대한 간략한 소개이다. 완전한 정보는 The Linux Kernel HOWTO에서 얻을 수 있다.
리눅스 커널을 구하고 컴파일하려면, 루트로 로긴해야 한다.
/usr/src
디렉토리로 옮긴다.cd /usr/src
/usr/src/linux
를 열어서 소스가 이미 깔려있는지
확인한다./usr/src
에 넣어두면 된다.rm -rf /usr/src/linux
tar xzf linux-2.0.XX.tar.gz
cd /usr/src/linux
해서 README 파일을
읽는다. 여기에는 설정 및 컴파일을 어떻게 하는지 잘 설명되어 있다. 이
파일을 읽는다.(컴파일 하는 동안 어떻게 하는지 잘 알 수 있는 충분한
시간을 갖고 다 끝낼 때까지 출력을 해서 사본을 갖고 있는 것이 좋다.).
커널을 다시 컴파일 하려면 반드시 PC 안에 있는 카드/장치가 어떤 건지 알아야만 한다!!! 몇몇 장치에 대해서는 몇가지 설정에 대해서도 알아둬야 한다. (예를 들어 사운드 카드의 IRQ, I/O 주소 등등)
설정 과정을 시작하려면, README 파일의 안내에 따라서 적절하게 소스를 설치해야 한다. 커널 설정 과정은 이렇게 시작한다.
make config
PPP를 쓰려면 커널을 설정해서 PPP 지원을 넣어야 한다.(PPP는 pppd와 PPP 커널 지원을 모두 요구한다)
PPP (point-to-point) support (CONFIG_PPP) [n] y
다른 make config 선택사항을 PC의 하드웨어와 원하는 리눅스 운영체제의 형태에 맞게 선택한다. 그런 다음 README에 따라 새 커널을 컴파일하고 설치한다.
1.2.13 커널은 PPP장치를 네개만 만든다. 다중 직렬 포트 카드를 쓰려면 커널 PPP 선택사항을 고쳐서 더 많은 포트를 만들어야 한다. (편집해야 할 간략한 내용에 대해 자세하게 알고 싶으면 PPP-2.1.2 배포본에 따라오는 README.linux를 본다.)
주의: 1.2.13 설정 대화창은 뒤로 돌아가는 게 불가능하다. - 그러니까
make config
에 답하다가 실수하면, CTRL C를 입력해서 설정을
중지한 다음 처음부터 다시 시작해야 한다.
리눅스 1.3.x와 2.0.x에서 리눅스 1.2.13과 비슷한 과정을 쓸 수 있다. 역시 README 파일의 안내에 따라 정확히 소스를 설치한다. 커널 설정 과정은 다음과 같이 시작한다.
make config
하지만 이렇게 할 수도 있다.
make menuconfig
이렇게 하면 설정 과정 내애서 앞뒤로 움직이는 것이 가능하며 도움말도 있는 메뉴기반의 설정 체계가 나온다.
또한 X윈도우 기반의 설정 인터페이스를 쓰도록 추천한다.
make xconfig
PPP 지원은 커널에 직접 컴파일할 수도 있고, 장전식 모듈로 컴파일할 수도 있다.
리눅스 기계가 동작하는 시간 중 약간만 PPP를 쓸 경우라면, PPP 지원을 장전식 모듈로 하는 것을 추천한다. 'kerneld'를 쓰면, PPP 연결 과정이 시작할 때 PPP 지원에 요구되는 모듈을 커널이 자동으로 장전한다. 이것은 사용가능한 메모리 공간을 확보한다: 커널은 메모리에서 빠져나올 수 없지만 장전식 모듈은 사용되지 않을 때 자동적으로 제거된다.
이렇게 하려면 장전식 모듈 지원을 사용가능하게 해야 한다:-
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
PPP 지원을 추가할 때 다음 물음에 답해야 한다:-
PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
PPP 장전식 모듈을 선택하려면 M이라고 답하고, PPP를 커널 일부로 컴파일하려면 Y이라고 답하면 된다.
1.2.13 커널과 달리 2.0.x는 PPP 장치를 필요한 만큼 '비행' 중에 만든다. 사용가능한 PPP 장치 주소를 늘리기 위해 소스를 두들겨 고칠 필요가 전혀 없다.
PPP-2.2를 쓸 경우, PPP 장치를 '비행 중에' 만드는 데 따른 부수 효과로서
pppd를 시작해서 장치가 만들어지기 전까지는 /proc/net
을
열어봐도 아무 장치도 찾을 수 없다:-
[hartr@archenland hartr]$ cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 92792 0 0 0 0 92792 0 0 0 0 0 eth0: 621737 13 13 0 23 501621 0 0 0 1309 0
ppp 서비스를 시작하자마자 (ppp 서버에서) 다음과 같은 결과를 볼 수 있다.:-
[root@kepler /root]# cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 428021 0 0 0 0 428021 0 0 0 0 0 eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5 ppp0: 2103 3 3 0 0 2017 0 0 0 0 0 ppp1: 10008 0 0 0 0 8782 0 0 0 0 0 ppp2: 305 0 0 0 0 297 0 0 0 0 0 ppp3: 6720 7 7 0 0 7498 0 0 0 0 0 ppp4: 118231 725 725 0 0 117791 0 0 0 0 0 ppp5: 38915 5 5 0 0 28309 0 0 0 0 0
리눅스 PC를 PPP 서버로 설정할 경우, IP 보내기 (forwarding) 지원을 컴파일해 넣어야 한다. 리눅스를 랜과 연결할 때나 랜을 인터넷에 연결시킬 때도 필요하다.
랜을 인터넷에 연결시킬 때(또는 두개의 랜을 연결시킬 때), 보안에 대해 고려해야 한다. IP 방호벽 역시 커널에 지원해 넣는 것이 필수적이다!
위에서 말한 바 '비연결용' IP 네트워크 주소 중 어느하나를 쓰는 랜을 연결하기 위해 IP 메스커레이드기능을 쓰고자 할 때 이것도 지원해 넣어야 한다.
IP 메스커레이드와 IP 방호벽을 쓰려면 반드시 make config
과정에서
첫번째 질문에 Yes라고 답해야 한다:-
Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
처음 쓰는 사람들은 이게 불필요하다고 생각될 지 모르지만, 많은 사용자들은 실제로 아무 문제 없이 리눅스 2.0.XX커널의 IP 메스커레이드와 IP 방호벽 기능을 쓰고 있다.
일단 커널을 깔고 새 커널을 다시 부팅하게 되면, PPP 링크를 설정하고 시험해볼 수 있다.