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
|