ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스에 PPPoE 서버 구축하기
    TIP&TECH/리눅스 2013. 3. 14. 12:27
    728x90

    ※ 이 포스팅에 사용된 리눅스는 페도라를 사용하였습니다.

     

    PPPoE 서버를 구축하고 테스트하기 위해 다음과 같이 환경을 구축 하였습니다.

     

     

    리눅스에 PPP 데몬 및 PPPoE 플러그인을 설치합니다(yum을 이용하였습니다).

     

     # yum -y install ppp rp-pppoe
    1. 쉘 프롬프트 앞이 #로 시작되는 것은 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
    1. 설정에 사용된 각 옵션이 무엇을 의미하는지 다 알지 못하여 설명해 드리지 못했습니다...

     

     # 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-start

     

    PPPoE 서버를 중지하기 위한 스크립트를 작성합니다.

     

     # 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-stop

     

    PPPoE 서버를 시작합니다.

     

     # /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

    댓글

Designed by Tistory.