ADSL ÀÚµ¿ À翬°á ¼³Á¤

¹èö¼ö : bae@linuxlab.co.kr/ ¸®´ª½º¿ùµå ¹ßÇàÀÎ

 

 

    Çѱ¹Åë½ÅÀÇ adsl ¶óÀÌÆ®³ª ÇÁ·ÎÀÇ °æ¿ì º¸Åë 30ºÐ Á¤µµ »ç¿ëÀ» ¾ÊÀ¸¸é ¿¬°áÀÌ ²÷¾îÁø´Ù. ¸®´ª½º·Î ¿¬°áÇÒ °æ¿ìµµ ¸¶Âù°¡Áö´Ù. ±×·¡¼­ ¿¬°áÀÌ ²÷±âÁö ¾Êµµ·Ï ÀÏÁ¤ ½Ã°£ °£°ÝÀ¸·Î pingÀ» ½î´Â ¹æ¹ýµµ ÀÖÀ¸³ª ÀÌ ¹æ¹ýÀº ȸ¼±À̳ª Çѱ¹Åë½ÅÃøÀÇ »çÁ¤À¸·Î ²÷±â´Â °æ¿ì¿¡´Â È¿°ú°¡ ¾ø´Ù. Áï ÀÌ °æ¿ì´Â ´Ù½Ã ¼öµ¿À¸·Î ¿¬°á ¸í·ÉÀ» ÁÖ¾î¾ß ÇÑ´Ù.

    ¾Æ·¡¿¡ ¼Ò°³ÇÏ´Â ¹æ¹ýÀº pppoed-0.47/contribs µð·ºÅ丮¿¡ ÀÖ´Â keepalive.ppp ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇؼ­ ÀÏÁ¤ ½Ã°£ °£°ÝÀ¸·Î ppp ¿¬°á ¿©ºÎ¸¦ üũÇØ ¿¬°áÀÌ ²÷±â¸é pppoed ¿¬°á ¸í·ÉÀ» ´Ù½Ã ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ ¼±·Î »çÁ¤À̳ª Çѱ¹Åë½ÅÃøÀÇ »çÁ¤À¸·Î ²÷±ä °æ¿ì¿¡µµ Àå¾ÖÀÇ ¿øÀÎÀÌ Á¦°ÅµÇ¸é ADSL ¿¬°áÀÌ ´Ù½Ã ÀÌ·ç¾î Áö¹Ç·Î pingÀ» ½î´Â °Íº¸´Ù À¯¸®ÇÏ´Ù.

    ÀÌ ÀÚµ¿ À翬°á ¹æ¹ýÀº Çѱ¹Åë½Å¿¡¼­´Â º°·Î ÁÁ¾ÆÇÏÁö ¾ÊÀ» °Í °°´Ù. »ç¿ëÇÏÁöµµ ¾Ê´Âµ¥ ADSL Æ÷Æ® Çϳª¸¦ °è¼Ó Á¡À¯Çϱ⠶§¹®ÀÌ´Ù. µû¶ó¼­ ²À ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ Á¦ÇÑÀûÀ¸·Î »ç¿ëÇÏ±æ ±ÇÇÑ´Ù.

 

1. »çÀü ÀýÂ÷

    ¸®´ª½º¿¡ ADSLÀ» ¿¬°áÇØ ¿©·¯ ´ëÀÇ Çǽÿ¡¼­ ³»ºÎ ÁÖ¼Ò·Î ÀÎÅͳÝÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀº ¸®´ª½º¿ùµå 2000³â 6¿ùÈ£¿¡ ÀÌ¹Ì ¼Ò°³ÇßÀ¸¹Ç·Î ¿©±â¼­ ¼³¸íÇÏÁö ¾Ê´Â´Ù. ±×¸®°í ¾Æ·¡ ¼³¸íÀº ADSL ¸ðµ©ÀÌ eth1¿¡ ¿¬°áµÇ¾î ÀÖ°í ³»ºÎ ·£Àº eth0¿¡ ¿¬°áµÈ °æ¿ìÀÌ´Ù. ¹èÆ÷º»Àº µ¥ºñ¾ÈÀ» ±âÁØÀ¸·Î ÇÑ´Ù.(¹öÀüÀº ¹«°üÇÔ.)

 

2. ¿¬°á ¸í·É

    µ¥ºñ¾ÈÀÇ °æ¿ì ºÎÆà ½Ã¿¡ ÀÚµ¿ ½ÇÇàµÇ´Â »ç¿ëÀÚ ½ºÅ©¸³Æ®´Â /etc/rc.boot µð·ºÅ丮¿¡ ³Ö´Â´Ù. ±×·¯¸é ls ¸í·É¿¡ ³ªÅ¸³ª´Â ¼ø¼­´ë·Î ºÎÆýà ½ÇÇàµÈ´Ù. ·¹µåÇÞÀÇ rc.local ÆÄÀÏ°ú À¯»çÇÏÁö¸¸ ´õ ÆíÇÏ´Ù. ±× µð·ºÅ丮¿¡ ¿øÇÏ´Â ÀÛ¾÷ ³»¿ëÀ» ´ãÀº ½ºÅ©¸³Æ®¸¦ ³Ö°í À̸§À» ³»¿ë¿¡ ¸Â°Ô Áþ´Â´Ù. ½ÇÇà ¼ø¼­¸¦ ÁöÁ¤ÇÏ·Á¸é À̸§ ¸Ç ¾Õ¿¡ ¼ýÀÚ¸¦ ³ÖÀ¸¸é µÈ´Ù.

    ¾Æ·¡´Â ÇÊÀÚ°¡ ÀÌ ±ÛÀ» ¾²´Âµ¥ Âü°í ÇÑ »çÀÌÆ®ÀÇ /etc/rc.boot µð·ºÅ丮 ¿¹ÀÌ´Ù.

      -rwxr-xr-x  1 root  root  10122 Sep 9 1998  0setserial
      -rwxr-xr-x  1 root  root  53 Oct 25 01:51     1ip_forward
      -rwxr-xr-x  1 root  root  95 Oct 25 01:52     2ipchain
      -rwxr-xr-x  1 root  root  51 Oct 25 19:00     3adsl
      -rwxr-xr-x  1 root  root  62 Oct 27 20:17     4del-log
      -rwxr-xr-x  1 root  root  33 Oct 26 18:41     5chk-adsl

    À§¿¡¼­ 0setserial Àº ½Ã¸®¾ó Æ÷Æ® ¼Â¾÷, 1ip_forward Àº ip forwarding ÁöÁ¤, 2ipchainÀº ip masquerade ¼³Á¤ÀÌ´Ù. 3adslÀÌ ¹Ù·Î adsl ¿¬°á ¸í·ÉÀÌ´Ù. ³»¿ëÀº ¾Æ·¡¿Í °°´Ù.

      #!/bin/bash
      /usr/local/sbin/pppoed -I eth1
      sleep 6

    À§¿¡¼­ -I eth1 Àº ADSL ¸ðµ©ÀÌ µÎ ¹ø° ·£Ä«µå¿¡ ¿¬°áµÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ´ÙÀ½¿¡ sleep 6¸¦ ³ÖÀº ÀÌÀ¯´Â ADSL ÀÌ ¿¬°áÀÌ ÀÌ·ç¾î Áö´Âµ¥ 3 ~ 5 ÃÊÀÇ ½Ã°£ÀÌ °É¸®±â ¶§¹®¿¡ ±× ½Ã°£ ³»¿¡ ´Ù¸¥ ½ºÅ©¸³Æ®³ª ¸í·ÉÀÌ ½ÇÇàµÅ ADSL ¿¬°áÀ» ¹æÇØÇÏÁö ¾Êµµ·Ï Çϱâ À§ÇÔÀÌ´Ù.

    ¿¬°áÀÌ ÀÌ·ç¾îÁö¸é ¾Æ·¡Ã³·³ ¶ó¿ìÆà Å×À̺íÀÌ ¸¸µé¾î Áø´Ù.

    linuxlab:/etc/rc.boot# netstat -nr
    Kernel IP routing table
    Destination      Gateway        Genmask        Flags   MSS   Window   irtt   Iface
    192.168.1.1      0.0.0.0     255.255.255.255    UH      0         0          0    eth0
    192.168.2.1      0.0.0.0     255.255.255.255    UH      0         0          0    eth1
    211.196.60.9    0.0.0.0     255.255.255.255    UH       0        0           0    ppp0
    127.0.0.1         0.0.0.0     255.255.255.255     UH      0        0           0    lo
    192.168.2.0      0.0.0.0     255.255.255.0         U       0         0          0    eth1
    192.168.1.0      0.0.0.0     255.255.255.0         U       0         0          0    eth0
    0.0.0.0        211.196.60.9      0.0.0.0             UG       0        0           0   ppp0

  

3. ²÷±è È®ÀÎ ¹× À翬°á

    ²÷±è È®ÀÎ ¹× À翬°áÀº ¾Æ·¡ÀÇ keepalive.ppp ½ºÅ©¸³Æ®°¡ ´ã´çÇÑ´Ù. ÀÌ ÆÄÀÏÀ» /etc µð·ºÅ丮¿¡ ³Ö°í /etc/rc.boot µð·ºÅ丮¿¡ 5chk-adsl ½ºÅ©¸³Æ®·Î ÀÌ ½ºÅ©¸³Æ®¸¦ ¿¬°áÇÑ´Ù. À§ µÎ ÆÄÀÏÀº ¸ðµå°¡ 755 ¿©¾ß ÇÑ´Ù. (/etc/rc.boot µð·ºÅ丮ÀÇ ¸ðµç ½ºÅ©¸³Æ®´Â ½ÇÇà ¸ðµå¿©¾ß ÇÑ´Ù.)

 

3.1  /etc/rc.boot/5chk-adsl

    #!/bin/bash
    /etc/keepalive.ppp &

    * ¹é±×¶ó¿îµå·Î ½ÇÇàÇØ¾ß ÇÑ´Ù.(&)

 

3.2  /etc/keepalive.ppp

    #!/bin/bash
    # restart the ppp connection whenever it goes down
    export PATH=/bin:/usr/bin:/sbin:/usr/local/sbin
    export LOG="logger -p daemon.notice -t `basename $0`[$$]"
    $LOG "Monitoring PPP connection"
    sleep 5
    while [ 1 ]
    do
          if `ifconfig | grep -q ^ppp0`
          then
                        $LOG "PPP connection ok"
          else
                        $LOG "Starting pppoed"
                        pppoed -I eth1
          fi
          sleep 120
    done
    #Matthew Darwin                             Westend Family Cinema
    #Community Volunteer                     The home of great family movies!
    #matthew@davin.ottawa.on.ca          webmaster@familycinema.org
    #http://www.davin.ottawa.on.ca/~matthew/
                                                          http://www.familycinema.org

    * ½ºÅ©¸³Æ®ÀÇ ÀÛ¼ºÀÚ´Â Matthew Darwin ¾¾ÀÌ´Ù. pppoed-0.47/contribs µð·ºÅ丮¿¡ µé¾î
       ÀÖ´Ù. ¿ø ³»¿ë Áß ¸î °¡Áö¸¦ ¼öÁ¤Çß´Ù.(¾Æ·¡ ¼öÁ¤Àº °¢ÀÚÀÇ ±¸¼º¿¡ ¸Â°Ô ÇØ¾ß ÇÑ´Ù. ´Ü 1)Àº
       ²À ÇÊ¿äÇÏ´Ù.)

    1) PATH= .... /usr/local/sbin À» Ãß°¡ÇÔ : pppoed¸¦ ÄÄÆÄÀÏÇϸé /usr/local/sbin µð·ºÅ丮¿¡
        pppoed°¡ »ý¼ºµÇ¹Ç·Î ÀÌ µð·ºÅ丮°¡ PATH¿¡ µé¾î°¡¾ß ÇÑ´Ù.

    2) pppoed -I eth1 : ¿ø ½ºÅ©¸³Æ®¿¡´Â pppoed ¸¸ ÀÖ´Ù. ADSL ¸ðµ©ÀÌ eth0¿¡ ¿¬°áµÈ °æ¿ì´Â
        ¼öÁ¤ÀÌ ÇÊ¿ä ¾ø´Ù. ÇÊÀÚÀÇ ¿¹´Â eth1¿¡ ¿¬°áµÅ ÀÖÀ¸¹Ç·Î -I eth1À» Ãß°¡Çß´Ù...

    3) sleep 120: ÀÌ °ªÀº »ç¿ëÀÚ°¡ Àû´çÈ÷ ÁöÁ¤ÇÒ °Í.(ÃÊ ´ÜÀ§) À§ÀÇ °æ¿ì´Â 120ÃÊ¿¡ Çѹø¾¿
        ppp ¿¬°á ¿©ºÎ¸¦ üũÇϵµ·Ï ÇÏ°í ÀÖ´Ù. ³Ê¹« ÀÚÁÖ ÇÏ¸é ½Ã½ºÅÛ¿¡ ºÎÇÏ°¡ ¸¹ÀÌ °É¸°´Ù.

    * óÀ½ÀÇ sleep 5´Â adsl ¿¬°á ¸í·É(3adsl) ÀÌ ½ÇÇàµÇ°í ¹Ù·Î üũ°¡ ÀÌ·ç¾îÁö¸é adsl ¿¬°á
      °úÁ¤ÀÌ ÁøÇà ÁßÀε¥µµ adsl ¿¬°áÀÌ ²÷±ä °ÍÀ¸·Î ¿ÀÇØÇØ ´Ù½Ã ¿¬°á ¸í·ÉÀ» ÁÖ´Â °ÍÀ» ¹æÁöÇϱâ
      À§ÇÔÀÌ´Ù.

    * À§ÀÇ ½ºÅ©¸³Æ®´Â ifconfig ¸í·ÉÀ» »ç¿ëÇØ ppp0°¡ ³ªÅ¸³ª´ÂÁö¸¦ °Ë»çÇÏ´Â ¹æ¹ýÀÌ´Ù.
       Áï ADSLÀÌ ¿¬°áµÇ¾î ÀÖ´Ù¸é ¾Æ·¡Ã³·³ ³ª¿Ã °ÍÀÌ´Ù.

    linuxlab:~# ifconfig
    lo      Link encap:Local Loopback
             inet addr:127.0.0.1 Mask:255.0.0.0
             UP LOOPBACK RUNNING MTU:3924 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

    eth0   Link encap:Ethernet HWaddr 00:48:54:82:67:B0
             inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
             RX packets:161151 errors:0 dropped:0 overruns:0 frame:0
             TX packets:188079 errors:0 dropped:0 overruns:0 carrier:0
             Collisions:804
             Interrupt:10 Base address:0x6100

    eth1   Link encap:Ethernet HWaddr 00:C0:26:59:4F:CD
             inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
             RX packets:237083 errors:0 dropped:0 overruns:0 frame:0
             TX packets:191536 errors:0 dropped:0 overruns:0 carrier:0
             Collisions:2441
             Interrupt:11 Base address:0x6200

      ppp0  Link encap:Point-to-Point Protocol
               inet addr:211.104.24.158 P-t-P:211.196.60.9                       Mask:255.255.255.255
               UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1490                       Metric:1
               RX packets:13804 errors:0 dropped:0 overruns:0 frame:0
               TX packets:11867 errors:0 dropped:0 overruns:0 carrier:0
               Collisions:0

    ADSL ¿¬°áÀÌ ²÷±â¸é À§ÀÇ ppp0 ÀÌÇÏ°¡ »ç¶óÁø´Ù. ±×·¯¸é keepalive.ppp ´Â

      $LOG "Starting pppoed"
      pppoed -I eth1

    ÀÌ ºÎºÐÀ» ½ÇÇàÇؼ­ ´Ù½Ã ADSLÀ» ¿¬°áÇÏ°í 120Ãʸ¦ ±â´Ù¸± °ÍÀÌ´Ù.

    ±×·±µ¥ ¸¸¾à ¸®´ª½º¿¡ ADSL ¿ÜÀÇ ´Ù¸¥ PPP ¿¬°áÀÌ ÀÖ´Ù¸é (´ÙÀ̾ó¾÷ ppp) ÀÌ °æ¿ì´Â ppp0°¡ ADSL ¿¬°áÀ̶ó´Â º¸ÀåÀÌ ¾ø´Ù. µû¶ó¼­ ÀÌ ¶§´Â À§ÀÇ keepalive.ppp ½ºÅ©¸³Æ®´Â »ç¿ëÇÒ ¼ö°¡ ¾ø´Ù.

    ÀÌ»ó°ú °°ÀÌ ¼³Á¤ ÈÄ ¸®ºÎÆÃÇؼ­ adslÀÌ ¿¬°áµÇ¾úÀ» ¶§ ps ax ¸í·ÉÀ» ÁÖ¸é ¾Æ·¡Ã³·³ ³ª¿Â´Ù.(°ü°è¾ø´Â ºÎºÐÀº »ý·«ÇßÀ½.)

      115 ? S 0:30 sh /etc/keepalive.ppp
      125 ? S 0:42 /sbin/syslogd
      22197 ? S 0:00 pppoed -I eth1
      22199 ? S 0:02 pppd /dev/pppox0 38400
      23462 ? S 0:00 sleep 120

 

4. ·Î±× ÆÄÀÏ »ý¼º

    ÀÌ ºÎºÐÀº ÇʼöÀûÀÎ ºÎºÐÀº ¾Æ´Ï³ª ÇÊ¿äÇÑ °æ¿ì°¡ ÀÖ´Ù. À§ÀÇ ½ºÅ©¸³Æ®¿¡¼­ ·Î±×ÆÄÀÏÀ» »ý¼ºÇÏ´Â ºÎºÐÀÌ ÀÖ´Ù. Áï "$LOG ... " ºÎºÐÀÌ´Ù. ·Î±× ÆÄÀÏÀÌ ±â·ÏµÇ·Á¸é /etc/syslog.conf ÆÄÀÏ¿¡ daemon.notice ºÎºÐÀÌ ÁöÁ¤ µÇ¾ß Çϴµ¥ µ¥ºñ¾È¿¡´Â ÁöÁ¤ÀÌ ¾ÈµÇ¾î¼­ /etc/syslog.conf ¿¡ ¾Æ·¡ ÁÙÀ» Ãß°¡Çß´Ù.

      daemon.notice /var/log/adsl.log

    ÀÌ·¸°Ô ÁöÁ¤ÇÏ¸é ¾Æ·¡Ã³·³ ·Î±× ÆÄÀÏÀÌ ±â·ÏµÇ¹Ç·Î adsl.log ÆÄÀÏÀ» º¸¸é keepalive.ppp ½ºÅ©¸³Æ®°¡ Á¤»óÀ¸·Î ÀÛµ¿ÇÏ´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.(¹°·Ð ps ax ¸í·Éµµ °¡´ÉÇÏ´Ù.)

    ·Î±×ÆÄÀÏ ³»¿ë (var/log/adsl.log)

    -------------------
    Oct 31 17:16:10 linuxlab keepalive.ppp[115]: PPP connection ok
    Oct 31 17:17:50 linuxlab pppd[17600]: Connection terminated.
    Oct 31 17:18:10 linuxlab keepalive.ppp[115]: Starting pppoed
    Oct 31 17:18:10 linuxlab pppd[17709]: pppd 2.3.11 started by root, uid 0
    Oct 31 17:18:10 linuxlab pppd[17709]: Connect: ppp0 <--> /dev/pppox0
    Oct 31 17:18:11 linuxlab pppd[17709]: local IP address 211.104.24.127
    Oct 31 17:18:11 linuxlab pppd[17709]: remote IP address 211.196.60.9
    Oct 31 17:20:10 linuxlab keepalive.ppp[115]: PPP connection ok
    -------------------

 

5. ·Î±× ÆÄÀÏ Áö¿ò/´Ù½Ã ¸¸µé±â

    À§ÀÇ ·Î±× ÆÄÀÏÀÌ ³Ê¹« Ä¿Áö´Â °ÍÀ» ¸·±â À§ÇØ ½Ã½ºÅÛÀÌ ¸®ºÎÆà µÇ¸é ·Î±× ÆÄÀÏÀ» Áö¿ìµµ·Ï ÇÑ´Ù.

    /etc/rc.boot µð·ºÅ丮¿¡ 4del-log ÆÄÀÏÀ» ³Ö°í ¾Æ·¡Ã³·³ ÁöÁ¤ÇÑ´Ù.

    (Ȥ½Ã, ÇÑ 1³â Á¤µµ Çǽø¦ ÀüÇô ¸®ºÎÆà ¾ÊÀ¸¸é ·Î±× ÆÄÀÏÀÌ ³Ê¹« Ä¿Á® Çϵ带 ´Ù Â÷ÁöÇÒÁöµµ ¸ð¸£´Ï ¿ù 1ȸ Á¤µµ´Â ¸®ºÎÆÃÇØ ÁÙ °Í. ¾Æ´Ï¸é cronÀ¸·Î ÇÑ ´Þ¿¡ ÇÑ ¹ø ÀÌ ·Î±× ÆÄÀÏÀ» Áö¿ì°Ô ¸¸µå´Â ¹æ¹ýÀ» ¾µ °Í.)

      #!/bin/bash
      /bin/rm /var/log/adsl.log
      touch /var/log/adsl.log




¡ã top

homeÀ¸·Î...