-
리눅스에 PPPoE 서버 구축하기TIP&TECH/리눅스 2013. 3. 14. 12:27728x90
※ 이 포스팅에 사용된 리눅스는 페도라를 사용하였습니다.
PPPoE 서버를 구축하고 테스트하기 위해 다음과 같이 환경을 구축 하였습니다.
리눅스에 PPP 데몬 및 PPPoE 플러그인을 설치합니다(yum을 이용하였습니다).
# yum -y install ppp rp-pppoe - 쉘 프롬프트 앞이 #로 시작되는 것은 root에서 실행하는 것을 가르킨다.
PPPoE 관련 설정을 합니다.
# cat > /etc/ppp/pppoe-server-options << "EOF"
# PPP options for the PPPoE server
# LIC: GPL
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 10.0.2.3
netmask 255.255.255.0
defaultroute
noipdefault
usepeerdns
EOF- 설정에 사용된 각 옵션이 무엇을 의미하는지 다 알지 못하여 설명해 드리지 못했습니다...
# cat << "EOF" | tee -a /etc/ppp/chap-secrets > /dev/null 2>&1
"test" * "test" 192.168.1.1
EOF# echo "192.168.1.1-20" > /etc/ppp/allip PPPoE 서버를 시작하기 위한 스크립트를 작성합니다.
# cat > /etc/ppp/pppoe-start << "EOF"
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
pppoe-server -C isp -L 192.168.1.254 -p /etc/ppp/allip -I eth1 -m 1412
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
EOF
# chmod +x /etc/ppp/pppoe-startPPPoE 서버를 중지하기 위한 스크립트를 작성합니다.
# cat > /etc/ppp/pppoe-stop << "EOF"
#!/bin/bash
echo 0 > /proc/sys/net/ipv4/ip_forward
killall pppoe-server
iptables -t nat -F POSTROUTING
EOF
# chmod +x /etc/ppp/pppoe-stopPPPoE 서버를 시작합니다.
# /etc/ppp/pppoe-start 이러면 PPPoE 서버 구축을 완료하였습니다. 이제 타깃 보드에서 PPPoE 접속을 해보겠습니다.
커널 빌드 옵션에서 PPPoE를 활성화하고, PPP 데몬 소스를 다운받아(ftp://ftp.samba.org/pub/ppp/ppp-2.4.5.tar.gz) 빌드하여 타깃 보드에 설치합니다.
Device Drivers --->
[*] Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP over Ethernet (EXPERIMENTAL)타깃 보드에 연결 설정을 합니다.
# cat > tee /etc/ppp/options << "EOF"
plugin rp-pppoe.so
eth0
defaultroute
usepeerdns
user "test"
noauth
noipdefault
hide-password
debug
EOF# cat << "EOF" | tee -a /etc/ppp/chap-secrets > /dev/null 2>&1
"test" * "test" *
EOF다음과 같이 ppp 데몬을 실행하면 접속이 된 것을 확인하실 수 있습니다.
# pppd
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
# ifconfig
eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:AA
inet6 addr: fe80::1034:56ff:fe78:90aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:43 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4429 (4.3 KiB) TX bytes:4018 (3.9 KiB)
Interrupt:33
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 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:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.1.1 P-t-P:192.168.1.254 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:76 (76.0 B) TX bytes:70 (70.0 B)
# ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: seq=0 ttl=64 time=26.023 ms
64 bytes from 192.168.1.254: seq=1 ttl=64 time=23.892 ms
64 bytes from 192.168.1.254: seq=2 ttl=64 time=22.464 ms
64 bytes from 192.168.1.254: seq=3 ttl=64 time=21.808 ms
--- 192.168.1.254 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 21.808/23.546/26.023 ms참고 사이트
728x90'TIP&TECH > 리눅스' 카테고리의 다른 글
리눅스 시간 설정 관련 (0) 2021.03.21 파일 또는 디렉터리만 퍼미션 변경하는 방법 (0) 2021.03.21 리눅스 쉘 프롬프트를 LCD에 표시하기 (0) 2013.03.12 리눅스 부팅 메시지를 LCD에 표시하기 (0) 2013.03.12 쉘스크립트에서 파일 존재 유무 확인법 (0) 2013.03.11