5.3Àý¿¡¼ ¼³¸íÇÑ ³»¿ëÀ» ±âÁØÀ¸·Î ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ¿´À¸¸ç, À̸¦ Àû¿ëÇϱâ À§Çؼ´Â ¿©·¯ºÐ °¢ÀÚÀÇ È¯°æ¿¡ ¸Â°Ô ¼öÁ¤ÇÒ Çʿ䰡 ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡ÀÇ ½ºÅ©¸³Æ®´Â ¶ó¿ìÆÃ Å×À̺íÀ» »ý¼ºÇÏ´Â ¿ªÇÒÀ» Çϸç IP Masquerading ¿ªÇÒÀº ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. µû¶ó¼ IP MasqueradingÀ» ±¸ÇöÇÏ´Â ½ºÅ©¸³Æ®¸¦"Linux IP Masquerade HOWTO" ¹®¼¸¦ Âü°í·ÎÇÏ¿© µû·Î ÀÛ¼ºÇϱ⠹ٶõ´Ù. ¾Æ·¡ÀÇ ½ºÅ©¸³Æ®µµ "Linux IP Masquerade HOWTO" ¹®¼¸¦ Âü°í·ÎÇÏ¿© ÀÛ¼ºÇÏ¿´´Ù.
#! /bin/sh KERNELVER="`uname -r | cut -d. -f1,2`" if [ "$KERNELVER" = "2.2" ] then echo "This does not support the Kernel 2.2.x" exit 1 fi IPTABLES=/sbin/iptables IFCONFIG=/sbin/ifconfig ECHO=/bin/echo GREP=/bin/grep AWK=/usr/bin/awk SED=/bin/sed IP=/sbin/ip RTTAB=/etc/iproute2/rt_tables ONLINEPPP0=`$IFCONFIG | $GREP ppp0 | $AWK '{print $1}'` if [ -n "$ONLINEPPP0" ] then $ECHO "PPP0 is ON-LINE... Initializing routing table......" else $ECHO "PPP0 is OFF-LINE..." exit 1 fi # ³»ºÎ ³×Æ®¿÷¿¡ ¿¬°áµÈ ÀÌ´õ³Ý Ä«µå INTIF="eth1" # ÀÎÅͳݿ¡ ¿¬°áµÈ ÀÌ´õ³Ý Ä«µå EXITIFETH="eth0" #ppp ¿¬°á EXITIFPPP0="ppp0" ALLPPP="ppp+" # eth1¿¡ ÇÒ´çµÈ ip address INTIP="`$IFCONFIG $INTIF | $GREP 'inet addr' | $AWK '{print $2}' | $SED -e 's/.*://'`" # eth0¿¡ ÇÒ´çµÈ ip address FWIP="`$IFCONFIG $EXITIFETH | $GREP 'inet addr' | $AWK '{print $2}' | $SED -e 's/.*://'`" # ppp0¿¡ ÇÒ´çµÈ ip address PPP0IP="`$IFCONFIG $EXITIFPPP0 | $GREP 'inet addr' | $AWK '{print $2}' | $SED -e 's/.*://'`" # E1 Àü¿ë¼± °ÔÀÌÆ®¿þÀÌ FWGW="100.100.100.1" # ppp0 °ÔÀÌÆ®¿þÀÌ PPP0GW="`$IFCONFIG $EXITIFPPP0 | $GREP 'inet addr' | $AWK '{print $3}' | $SED -e 's/.*://'`" # ³»ºÎ ³×Æ®¿÷ ¹× Àü¿ë¼± ³×Æ®¿÷ NETA="192.168.1.0/24" NETB="192.168.2.0/24" NETC="192.168.3.0/24" NETALL="192.168.0.0/16" NETE1="100.100.100.0/24" UNIVERSE="0.0.0.0/0" add_rt_table() { # rt_tables ÆÄÀÏ »ý¼º $ECHO 255 local > $RTTAB $ECHO 254 main >> $RTTAB $ECHO 253 default >> $RTTAB $ECHO 0 unspec >> $RTTAB $ECHO 1 inr.ruhep >> $RTTAB # »ç¿ëÇÒ ¶ó¿ìÆÃ Å×À̺í À̸§ »ðÀÔ $ECHO 201 adslline >> $RTTAB # ¶ó¿ìÆÃ ·ê Ãß°¡ $IP rule add from $NETC table adslline # ¶ó¿ìÆÃ Å×ÀÌºí »ý¼º $IP route add default via $PPP0GW dev $EXITIFPPP0 table adslline # ³»ºÎ ³×Æ®¿÷°ú E1 Àü¿ë¼± ³×Æ®¿÷¿¡ ´ëÇÑ ¶ó¿ìÆÃÀ» local table¿¡ Ãß°¡ $IP route add $NETE1 via $FWIP dev eth0 table local $IP route add $NETALL via $INTIP dev eth1 table local } del_rt_table() { # ¶ó¿ìÆÃ Å×À̺í°ú ·ê »èÁ¦ $IP route del $NETALL via $INTIP dev $INTIF table local $IP route del $NETE1 via $FWIP dev $EXITIFETH table local $IP route del default via $PPP0GW dev $EXITIFPPP0 table adslline $IP rule del from $NETC table adslline } case "$1" in start) add_rt_table ;; stop) del_rt_table ;; restart) del_rt_table add_rt_table ;; *) echo "Usage: ½ºÅ©¸³Æ® ÆÄÀÏ À̸§ {start|stop|restart}" exit 1 ;; esac exit 0 |