HOME >> ¹®¼­ >> Traffic Control

Traffic Control for LRP



ÀÛ¼º : ½ÅÁß°©(ifw00@dreamwiz.com) 2002³â 6¿ù 22ÀÏ

Âü°í : ÀÌ ¹®¼­¿¡¼­ ¼³¸íÇÏ´Â ¼ÓµµÁ¦¾î´Â °£´ÜÇÑ È¨³×Æ®¿öÅ©¸¦ À§ÇÑ °ÍÀÌ¸ç ±âº»ÀûÀÎ ¿É¼Ç¸¸À» »ç¿ëÇØ LRP¸¦ ÀÌ¿ëÇÑ ÀÎÅͳݻýÈ°¿¡¼­ ÇÊ¿äÇÑ °£´ÜÇÑ ¼ÓµµÁ¦¾î¸¸À» ±¸ÇöÇÒ °ÍÀÌ´Ù. ±×·¸´Ù°í ±â´ÉÀÌ Á¦ÇѵǾî ÀÖ´Â °ÍÀº ¾Æ´Ï¹Ç·Î Á» ´õ ¿¬±¸ÇÏ¸é º¹ÀâÇÑ °Íµµ ±¸Çö°¡´ÉÇÏ´Ù.


Â÷·Ê
1. ¼Ò°³
2. ÆÄÀÏ´Ù¿î·Îµå
2.1 cbq.init »ç¿ë½Ã ÇÊ¿äÇÑ ÆÄÀϵé
2.2 htb.init »ç¿ë½Ã ÇÊ¿äÇÑ ÆÄÀϵé
3. ¾Ë¾ÆµÎ¾î¾ßÇÒ ±âº»»çÇ×
3.1 packet mark
3.2 LRP¿¡¼­ »ç¿ë½Ã
4. cbq.init¸¦ ÀÌ¿ëÇÑ ¼ÓµµÁ¦¾î
5. htb.init¸¦ ÀÌ¿ëÇÑ ¼ÓµµÁ¦¾î


1. ¼Ò °³

LRP¸¦ ÀÌ¿ëÇؼ­ IP¸¦ °øÀ¯ÇØ ¿©·¯¸íÀÌ »ç¿ëÇÏ´Ùº¸¸é ÇÑ »ç¶÷ÀÌ ftp ´Ù¿î·Îµå³ª ¾÷·Îµå µîÀ» ÅëÇØ ´ëºÎºÐÀÇ ´ë¿ªÆøÀ» »ç¿ëÇØ ´Ù¸¥ »ç¶÷¿¡°Ô ºÒÆíÀ» ÁÖ´Â °æ¿ì°¡ ÀÖ´Ù. À¥¼­ÇÎÀ̳ª telnet µîÀº ÀϹÝÀûÀ¸·Î ´ë¿ªÆø¿¡ °ÅÀÇ ¿µÇâÀÌ ¾øÀ¸¹Ç·Î TOS°ª Á¶Àý µîÀ» ÅëÇØ Æ®·¡ÇÈÀÇ ¿ì¼±¼øÀ§¸¦ ³ôÀÌ´Â°Ô ¿ÀÈ÷·Á ´õ ³ªÀ» °ÍÀÌ´Ù.

¿©±â¼­´Â ¸®´ª½º¿¡¼­ »ç¿ëµÇ´Â ´ëÇ¥ÀûÀÎ ¹æ¹ýÀÎ CBQ(Class Based Queueing)¿Í HTB(Hierachical Token Bucket) µÎ °¡Áö¸¦ ´Ù·ç±â·Î ÇÑ´Ù. HTB´Â CBQº¸´Ù Á»´õ Áøº¸ÇÑ ¹æ½ÄÀ¸·Î Æò°¡¹Þ°í ÀÖ´Ù. ´Ù¸¸ ¾ÆÁ÷ °ø½ÄÀûÀ¸·Î Ä¿³Î¿¡ ä¿ëµÇÁö ¾Ê¾Ò±â¿¡ Ä¿³ÎÄÄÆÄÀϽà ÆÐÄ¡¸¦ ÇØÁà¾ß ÇÏ´Â ºÒÆíÀÌ ÀÖ´Ù. HTB´Â Martin Devera°¡ Á¦ÀÛÇÑ °ÍÀ¸·Î ÇöÀç HTB3 public beta±îÁö ³ª¿ÍÀÖÀ¸¸ç kernel 2.4Àü¿ëÀ̱⠶§¹®¿¡ kernel 2.2.x ¸¦ »ç¿ëÇÑ´Ù¸é HTB2¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¾ÆÁ÷±îÁö LRP¿¡¼­´Â Ä¿³Î 2.2 °¡ ÁÖ·Î ¾²À̹ǷΠ¿©±â¼­´Â HTB2¸¦ »ç¿ëÇϱâ·Î ÇÑ´Ù.

»ç¿ëÇÑ LRP¹èÆ÷ÆÇÀº Dachstein v1.0.2 Ç÷ÎÇǹöÀüÀ» ¼öÁ¤ÇÑ °ÍÀ¸·Î ´Ù¸¥ ¹èÆ÷ÆÇ¿¡¼­´Â ½ÇÇèÇغ¸Áö ¾Ê¾Ò´Ù. CBQ, HTB µÑ´Ù ¿ø·¡ »ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ

tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps

Ä¿¸ÇµåÇÁ·ÒÇÁÆ®»ó¿¡¼­ tc¸¦ ÀÌ¿ëÇÏ¿© Á÷Á¢ ÀÔ·ÂÇÏ´Â ¹æ½ÄÀÌ´Ù. ÇÏÁö¸¸ ¼¼¹ÐÇÑ Á¶ÀýÀº °¡´ÉÇÒ Áö ¸ô¶óµµ ¸¹Àº ¸í·É°ú ¹®¹ýÀ» ¾Ë¾Æ¾ß Çϱ⿡ ºÒÆíÇϹǷΠ°£ÆíÇÏ°Ô »ç¿ëÇÏ°íÀÚ ½ºÅ©¸³Æ®°¡ ³ª¿Ô´Ù. 2002³â 6¿ù 5ÀÏ ÇöÀç CBQÀÇ °æ¿ì cbq_init-v0.7(written by Paul Golubev), HTB´Â htb_init-v0.8.3(written by Lubomir Bulej) ±îÁö ³ª¿ÍÀÖ´Ù. µÑ´Ù ³»¿ë°ú »ç¿ë¹ýÀÌ ºñ½ÁÇѵ¥ ÀÌ´Â htb.init ½ºÅ©¸³Æ®°¡ cbq.init ¸¦ HTB¿¡ ¸Â°Ô °íÃļ­ ³ª¿Â °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ ½ºÅ©¸³Æ®µéÀ» ÀÌ¿ëÇÏ¸é °£´ÜÇÑ ¼³Á¤ÆÄÀÏÀ» ¸¸µå´Â °Í¸¸À¸·Î ¼ÓµµÁ¦¾î°¡ °¡´ÉÇÏ´Ù.

 


2. ÆÄÀÏ´Ù¿î·Îµå

¸ÕÀú tcfiles.lrp ¸¦ ¹Þµµ·Ï ÇÑ´Ù. cbq.init, htb.init °øÅëÀûÀ¸·Î ÇÊ¿äÇÑ ÆÄÀϵéÀ» ¸ðÀº ÆÐÅ°Áö·Î¼­ ³»¿ë¹°Àº ´ÙÀ½°ú °°´Ù.

find : 4.1-25
grep : 2.2
tee : 1.16
sed : 3.02
ip : iproute2-ss010824
tc : iproute2-ss010824

HTBÀÇ °æ¿ì tc ÆÐÄ¡¸¦ ÇØÁà¾ß Çϴµ¥ tcfiles.lrp¿¡ µé¾îÀÖ´Â tc´Â ÀÌ¹Ì ÆÐÄ¡°¡ µÇ¾îÀÖ°í ¶ÇÇÑ cbq¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. find, grep µîÀÌ lrp¿¡¼­ »ç¿ë°¡´ÉÇÔ¿¡µµ µû·Î ³ÖÀº ÀÌÀ¯´Â ¸®´ª½º¿Í ´Þ¸® lrp¿¡¼­´Â ÀÌ·¯ÇÑ ¸í·ÉÀ» ¿ë·®»ó º¸Åë busybox·Î ´ëüÇϴµ¥ ½ºÅ©¸³Æ®¿¡¼­ »ç¿ëµÇ´Â ¸î¸î ¿É¼ÇÀÌ ºüÁ®Àֱ⠶§¹®ÀÌ´Ù. htb.init¿¡¼­´Â busybox¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀÌ ÀÖÁö¸¸ ½ÇÇà½Ã ´À¸®¹Ç·Î µð½ºÄÏ¿ë·®ÀÌ ¸ðÀÚ¸£Áö ¾Ê´Ù¸é ±×´ë·Î ¾²´Â°Ô ³´´Ù.

2.1 cbq.init »ç¿ë½Ã ÇÊ¿äÇÑ ÆÄÀϵé

ÆÄÀϸí
¿ë  ·®
ºñ  °í
cbqinit.lrp 32KB cbq.init-v0.7, ¸ðµâ
Ä¿³Î*   qos and/or fair queueing Áö¿øµÇ¾î¾ß ÇÔ.

  • cbqinit.lrp ¿¡´Â ÇÊ¿äÇÑ ¸ðµâ°ú cbq.init-v0.7 ½ºÅ©¸³Æ®°¡ µé¾îÀÖ´Ù. lrpÀÇ È¯°æ¿¡ ¸Â°Ô ¾à°£ ¼öÁ¤Çß´Ù.
  • Ä¿³Î : ÀÚ½ÅÀÌ »ç¿ëÁßÀÎ lrp Ä¿³ÎÀÌ qos and/or fair queueing ÀÌ È°¼ºÈ­µÇ¾îÀÖ´ÂÁö ¾Ë¾Æ¾ß ÇÑ´Ù. Dachstein v1.0.2 Ä¿³Î 2.2.19ÀÇ °æ¿ì Å©°Ô small, normal, RAID 3°¡Áö·Î ³ª´µ°í °¢°¢Àº IPSEC, IDE µîÀÇ Á¶ÇÕÀ¸·Î ÄÄÆÄÀÏµÇ¾î ¿©·¯°¡Áö Á¾·ùÀÇ Ä¿³ÎÀÌ È¨ÆäÀÌÁö¿¡ ¿Ã¶ó¿Í ÀÖ´Ù. Ç÷ÎÇǹöÀüÀÇ °æ¿ì small¹öÀüÀ» »ç¿ëÇϴµ¥ qos and/or fair queueingºÎºÐÀÌ ºñÈ°¼ºÈ­µÇ¾îÀÖÀ¸¹Ç·Î Dachstein Ç÷ÎÇǹöÀüÀ» »ç¿ëÇÑ´Ù¸é normal¹öÀüÀÌ»óÀ¸·Î ¹Ù²Ù¾î¾ß ÇÑ´Ù. Ưº°È÷ IPSEC µîÀ» »ç¿ëÇÏÁö¾Ê´Â´Ù¸é linux-2.2.19-3-LEAF-normal.zImage.upx ¸¦ ¹ÞÀ¸¸éµÇ¸ç ÆÄÀϸíÀ» linux·Î ¹Ù²ã lrpµð½ºÄÏ¿¡ º¹»çÇÑ´Ù.

    2.2 htb.init »ç¿ë½Ã ÇÊ¿äÇÑ ÆÄÀϵé

    ÆÄÀϸí
    ¿ë  ·®
    ºñ  °í
    linux-2.2.19htb 453KB Ä¿³Î 2.2.19 HTB2 ÆÐÄ¡ ('´Ù¸¥ À̸§À¸·Î ´ë»óÀúÀå'ÇÒ °Í)
    bash.lrp 314KB Dachstein¿ë bash. libncurses.so.4, libreadline.so.2 Æ÷ÇÔ
    htbinit.lrp 27KB htb.init-v0.8.3, ¸ðµâ

  • HTBÀÇ °æ¿ì Ä¿³Î¿¡ ÆÐÄ¡¸¦ ÇØÁÖ°í ÄÄÆÄÀÏÇØÁà¾ßÇϴµ¥ ±âÁ¸¿¡ ¸¸µé¾îÁø °ÍÀÌ ¾ø¾î¼­ Á÷Á¢ ÄÄÆÄÀÏÇß´Ù. Dachstein v1.0.2 normal-IPSec.config ¼³Á¤À» ±âº»À¸·Î Çß°í freeswan ipsec v1.91 ´ë½Å 1.97 ÆÐÄ¡¸¦ ÇØÁáÀ¸¸ç ¸ðµâÈ­Çß´Ù. cbq.init ½ºÅ©¸³Æ®»ç¿ë½Ã¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  • htb.initÀÇ °æ¿ì cbq¿Í ´Þ¸® sh¿¡¼­´Â ¿¡·¯°¡ ³ª¹Ç·Î bash¿¡¼­ ½ÇÇàÇØ¾ß ÇÑ´Ù. µû¶ó¼­ bash ÆÐÅ°Áö°¡ ÇÊ¿äÇѵ¥ Dachstein¿¡¼­ ±âÁ¸ÀÇ bash ÆÐÅ°Áö¸¦ »ç¿ëÇßÀ»¶§ÀÇ ¹®Á¦Á¡À» ÇØ°áÇÑ bash ÆÐÅ°Áö ¿¡ ÇÊ¿äÇÑ ¶óÀ̺귯¸®¸¦ °°ÀÌ ³Ö¾ú´Ù.
  • htbinit.lrp ¿¡´Â ÇÊ¿äÇÑ ¸ðµâ°ú htb.init-v.0.8.3 ½ºÅ©¸³Æ®°¡ µé¾îÀÖ´Ù. ¿ª½Ã lrp ȯ°æ¿¡ ¸Â°Ô ¾à°£ ¼öÁ¤Çß´Ù.

     

    3. ¾Ë¾ÆµÎ¾î¾ßÇÒ ±âº»»çÇ×µé

    3.1 packet mark

    lrp¹Ú½º¿¡ eth0, eth1 µÎ nic°¡ ÀÖ´Ù°í ÇÏÀÚ. eth0Àº ¿ÜºÎ, eth1Àº ³»ºÎ·Î ¿¬°áµÈ´Ù.

                                      +----------+                      192.168.1.1
    internet -------- eth0 -|   lrp box   |- eth1 -------- [client]
                                      +----------+

    ÁÖÀÇ! ¼ÓµµÁ¦¾î´Â ÀÎÅÍÆäÀ̽º¿¡¼­ ³ª°¡´Â Æ®·¡Çȸ¸ÀÌ °¡´ÉÇÏ´Ù
    . Áï, ´Ù¿î½ºÆ®¸²À» Á¦ÇÑÇÏ°í ½ÍÀ¸¸é eth1À» ±âÁØÀ¸·Î ¼³Á¤À» ÇÑ´Ù. ¾÷½ºÆ®¸²Àº eth0À» ±âÁØÀ¸·Î ÇÑ´Ù. ÀÌ´Â ÀÚ½ÅÀÇ È¯°æ¿¡ ¸ÂÃç ¹Ù²Û´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¾Æ·¡ cbq, htb °¢°¢ÀÇ ¼³Á¤ÆÄÀÏÀ» º¸¸é ¾Ë ¼ö ÀÖÀ¸¸ç cbq, htb µÑ´Ù °øÅë»çÇ×ÀÌ´Ù. ÀÎÅÍÆäÀ̽ºÀ̸§À» À߸ø ÁöÁ¤ÇÏ¸é ¾ÈµÇ¹Ç·Î ÁÖÀÇÇϵµ·Ï ÇÑ´Ù.

    eth0°ú eth1 ÀüüÀÇ Æ®·¡ÇÈÀ» ¼³Á¤ÇÏ´Â °ÍÀº Å©°Ô ¹®Á¦°¡ ¾ÈµÈ´Ù. Ŭ·¡½º¸¦ ¸¸µé°í °¢°¢¿¡ ÇÊ¿äÇÑ ¸¸Å­ÀÇ ¼ÓµµÁ¦ÇÑÀ» °¡ÇØÁÖ¸é µÈ´Ù. ÇÏÁö¸¸ ip, port, ¾÷´Ù¿î ½ºÆ®¸² º°·Î ÀÚ½ÅÀÇ ±¸¹Ì¿¡ ¸Â°Ô ÀÚ¼¼È÷ ¼³Á¤ÇÏ·Á¸é ÆÐŶÇÊÅ͸µÀ» °ÅÃÄ¾ß Çϴµ¥ ÀÌ´Â ÆÐŶ¿¡ mark¸¦ ÇØÁÖ°í À̸¦ ÀÌ¿ëÇØ cbq³ª htb°¡ Áö³ª°¡´Â Æ®·¡ÇÈÁß ±×°Í¸¸À» °ñ¶ó¼­ Á¦¾îÇÏ´Â °ÍÀÌ´Ù. mark´Â ipchains³ª iptables·Î ÇÑ´Ù.

    ´Ù¿î½ºÆ®¸²ÀÇ °æ¿ì Ưº°È÷ ÇØ ÁÙ °ÍÀÌ ¾ø´Ù. mark¾øÀÌ cbq, htb ½ºÅ©¸³Æ®ÀÇ ¼³Á¤¸¸À¸·Î ½±°Ô ¼ÓµµÁ¦¾î°¡ °¡´ÉÇÏ´Ù.

    ¾÷½ºÆ®¸²ÀÇ °æ¿ì´Â mark¸¦ ÇØÁà¾ß ÇÑ´Ù. ÀÌÀ¯´Â ¸¶½ºÄ¿·¹À̵ù¶§¹®Àε¥ ´Ù¿î½ºÆ®¸²°ú ´Þ¸® ³»ºÎ ³×Æ®¿öÅ©ÀÇ »ç¼³ÁÖ¼Ò°¡ °ø½ÄIP·Î ¹ø¿ªµÇ¸é¼­ ¾î¶² ÆÐŶ¿¡ ¼ÓµµÁ¦ÇÑÀ» °¡ÇØ¾ß ÇÒÁö ¸ð¸£±â ¶§¹®ÀÌ´Ù. ƯÁ¤ÆÐŶ¿¡ mark ¸¦ ÇØÁÜÀ¸·Î½á ¿ÜºÎ·Î ³ª°¡´Â ÆÐŶ Áß ±× ÆÐŶ¸¸À» °ñ¶ó³» ¾÷½ºÆ®¸² ¼ÓµµÁ¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù.

    ipchains·Î ¾÷½ºÆ®¸²ÀÇ ÆÐŶ¿¡ ¸¶Å©¸¦ ÇÒ °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

    ipchains -I input -p tcp -s xxx.xxx.xxx.xxx/mask sport -d yyy.yyy.yyy.yyy/mask dport -m marknumber

  • ipchains µÚ -I´Â iÀÇ ´ë¹®ÀÚÀÌ´Ù. LÀÇ ¼Ò¹®ÀÚ lÀÌ ¾Æ´Ï´Ù.
  • -s ´Â source ÀÇ ¶æÀÌ´Ù. Áï -s µÚ¿¡ ÆÐŶÀÌ ½ÃÀÛÇÏ´Â ip³ª Æ÷Æ®¸¦ ÁöÁ¤ÇÑ´Ù. ¿©±â¼­´Â ¾÷·ÎµåÀÇ °æ¿ì¿¡ ÇÑÇؼ­À̹ǷÎ, xxx.xxx.xxx.xxx´Â ³»ºÎ ³×Æ®¿öÅ© Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¼Ò, Áï 192.168.1.10 °°Àº lrpµÚ ³»ºÎ³×Æ®¿öÅ©ÀÇ »ç¼³IPÀÌ´Ù.
  • /mask ´Â ¼­ºê³Ý ¸¶½ºÅ©ÀÌ´Ù. 0Àº ¸ðµÎ¸¦, 32´Â ƯÁ¤ ip Çϳª¸¸À» ÁöĪÇÑ´Ù.
  • sport´Â ¼Ò½º¾îµå·¹½ºÀÇ Æ÷Æ®ÀÌ´Ù.
  • -d ´Â destination, Áï ¸ñÀûÁö¸¦ ³ªÅ¸³½´Ù.
  • yyy.yyy.yyy.yyy´Â ¸ñÀûÁöÁÖ¼ÒÀÌ´Ù. ƯÁ¤ ip¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ°í ¸ðµç ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ Æ÷ÇÔ½ÃÅ°·Á¸é 0/0 À̶ó°í ÇÏ¸é µÈ´Ù.
  • dport ´Â ¸ñÀûÁöÀÇ Æ¯Á¤ Æ÷Æ®¸¦ °¡¸®Å²´Ù.
  • marknumber´Â ¼ýÀڷμ­ ½ÊÁø¼ö·Î ÇÑ´Ù. 0x01 °°ÀÌ 16Áø¼ö·Î ÇÒ ¼öµµ ÀÖ´Ù.

    ¿¹¸¦ µé¸é:
    ex3.1)
    ipchains -I input -p tcp -s 192.168.1.10 -d 0/0 20:21 -m 11

    ³»ºÎ Ŭ¶óÀ̾ðÆ® 192.168.1.10¿¡¼­ ÀÎÅͳݻóÀÇ ¿ÜºÎftp¼­¹ö(Æ÷Æ® 20,21)·Î ¾÷·ÎµåÇÏ´Â ÆÐŶ¿¡ 11·Î markÇÑ´Ù.

    ex3.2)
    ipchains -I input -p tcp -s 192.168.1.10 9292 -d 0/0 -m 12

    ³»ºÎŬ¶óÀ̾ðÆ® 192.168.1.10¿¡¼­ ±¸·ç±¸·ç(Æ÷Æ® 9292)¿¡¼­ ¾÷·ÎµåÇÏ´Â ÆÐŶ¿¡ 12·Î markÇÑ´Ù.

    3.2 LRP¿¡¼­ »ç¿ë½Ã

    cbqinit.lrp, htbinit.lrp µÑ´Ù ÀÚµ¿À¸·Î ½ÇÇàµÇÁö ¾Ê°Ô µÅÀÖ´Ù. µû¶ó¼­ ºÎÆýà ½ÃÀ۵Ǵ ½Ã½ºÅÛ½ºÅ©¸³Æ®¿¡ ½ÃÀÛ¸í·ÉÀ» Æ÷ÇÔ½ÃÅ°µµ·Ï ÇÑ´Ù. Àß ¸ð¸£°ÚÀ¸¸é Æ÷Æ®Æ÷¿öµù½Ã ¼öÁ¤ÇÏ´Â ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù. ¾÷½ºÆ®¸²Á¦¾î½Ã ÇÊ¿äÇÑ ipchains ±¸¹®µµ ¸¶Âù°¡Áö·Î °°ÀÌ ³Ö´Âµ¥ ´Ü ¼ÓµµÁ¦¾î½ºÅ©¸³Æ®º¸´Ù ¸ÕÀú ½ÇÇàµÇ°Ô ¼ø¼­¸¦ À§·Î ¿Ã¸®´Â°Ô ÁÁ´Ù.

    lrcfg - ÆÐÅ°Áö ¸Þ´º¿¡¼­ °¢ ½ºÅ©¸³Æ®ÀÇ À̸§Àº º¸À̳ª ¸·»ó ¼³Á¤ÆÄÀÏ¿¡¼­´Â ¾Æ¹«°Íµµ ¾È³ª¿Â´Ù. ÀÌ´Â °¢°¢ÀÇ ½ºÅ©¸³Æ®¸¦ ÇÊ¿äÇѸ¸Å­ µû·Î ¸¸µé¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. cbq.init¿Í htb.init °¢°¢ÀÇ ¼³Á¤ÆÄÀÏÀ§Ä¡´Â /etc/sysconfig ³»¿¡ ÀÖ´Ù. ÇÊ¿äÇÑ ¼³Á¤ÆÄÀÏÀ» ¸¸µé¸é ¹Ýµå½Ã ¹é¾÷À» Çϵµ·Ï ÇÑ´Ù.

     

    4. cbq.init ¸¦ ÀÌ¿ëÇÑ ¼ÓµµÁ¦¾î

    ¸ÕÀú cbq.init ¾ÕÀÇ ÁÖ¼®¹®À» Àоµµ·Ï ÇÑ´Ù. ¸¹Àº ¿É¼Ç°ú ¼³¸íÀÌ ÀÖÀ¸¹Ç·Î ²À Àоµµ·Ï ÇÑ´Ù. ½Ã°£´ëº°·Î ¼Óµµ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ°í Å©°Ô Áö¿ªÀ» ¼³Á¤ÇØ Áö¿ªº°·Î ¼ÓµµÁ¦¾î¸¦ ÇÒ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ¿©±â¼­´Â ¹®¼­Ãʱ⿡ ¾ð±ÞÇßµíÀÌ °£´ÜÇÑ ¼ÓµµÁ¦¾î¸¸À» ±¸ÇöÇغ»´Ù.

    cbq.init ½ºÅ©¸³Æ®´Â /usr/sbin ¿¡ ÀÖÀ¸¸ç Æнº°¡ °É·ÁÀÖ¾î ¾îµð¿¡¼­µç ½ÇÇà°¡´ÉÇÏ´Ù. ¼³Á¤ÆÄÀÏÀº /etc/sysconfig/cbq ¿¡ ³õ¾Æ¾ß Çϴµ¥ µð·ºÅ丮À§Ä¡´Â ½ºÅ©¸³Æ®³» CBQ_PATH ºÎºÐÀ» ¼öÁ¤Çؼ­ ¹Ù²Ü ¼ö ÀÖ´Ù.

    i### Default CBQ_PATH & CBQ_CACHE settings
    CBQ_PATH=${CBQ_PATH:-/etc/sysconfig/cbq}
    CBQ_CACHE=${CBQ_CACHE:-/var/cache/cbq.init}        

    ¼³Á¤ÆÄÀϸíÀÇ Çü½ÄÀº

    cbq-<classid>.name

    ¿Í °°´Ù. class id´Â 16Áø¼ö·Î 2 ºÎÅÍ FFFF ±îÁöÀÌ´Ù. nameÀº ¸»±×´ë·Î ¼³Á¤ÆÄÀÏ¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» ³ªÅ¸³½ À̸§ÀÌ´Ù. ÇÑ ÆÄÀÏ¿¡ ÇÑ Æ®·¡ÇÈ¿¡ ´ëÇÑ ¼Óµµ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Áï, ftp, ±¸·ç±¸·ç µÎ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¼Óµµ¸¦ Á¦ÇÑÇÏ°í ½ÍÀ¸¸é ¼³Á¤ÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ

    cbq-020.ftpdown
    cbq-030.guruguruup

    µÎ °³ÀÇ ÆÄÀÏÀ» ¸¸µé¸é µÈ´Ù. ¿¹¸¦ µé¾î ¼³¸íÇغ¸¸é:

    ex4.1) ftp ´Ù¿î·Îµå ¼ÓµµÁ¦ÇÑ

    #cbq-020.ftpdown

    DEVICE=eth1,10Mbit,1Mbit
    RATE=28Kbit
    WEIGHT=2Kbit
    PRIO=5
    RULE=:20/0xfffe,192.168.1.10

    192.168.1.10 ÀÇ ftp ´Ù¿î·Îµå¼Óµµ¸¦ 28kbit ·Î Á¦ÇÑÇÑ´Ù.

    ex4.2) ±¸·ç±¸·ç ¾÷·Îµå ¼ÓµµÁ¦ÇÑ

    #cbq-030.guruguruup

    DEVICE=eth0,10Mbit,1Mbit
    RATE=40Kbit
    WEIGHT=4Kbit
    MARK=11
    PRIO=5
    RULE=192.168.1.10:9292,

    192.168.1.10 ¿¡¼­ ±¸·ç±¸·çÀÇ ¾÷·Îµå¼Óµµ¸¦ 40kbit·Î Á¦ÇÑÇÑ´Ù. ¾÷½ºÆ®¸²¼ÓµµÁ¦¾î½Ã ipchains¸¦ ÀÌ¿ëÇØ mark¸¦ Ç϶ó°í Çߴµ¥ ±× mark number¸¦ À§¿Í °°ÀÌ MARK¸¦ ÀÌ¿ëÇؼ­ ¹Ýµå½Ã ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¾÷½ºÆ®¸²¼ÓµµÁ¦¾î´Â µÇÁö ¾Ê´Â´Ù.

    ÀÌÁ¦ °¢ ±¸¹®ÀÇ ¿ªÇÒÀ» ¾Ë¾Æº¸ÀÚ.

  • DEVICE=<ifname>,<bandwidth>[,<weight>]
       DEVICE=eth1,10Mbit,1Mbit

    <ifname> Àº Á¦¾îÇÒ ÀÎÅÍÆäÀ̽º À̸§ÀÌ´Ù. À§ÀÇ ³×Æ®¿öÅ©¿¹¿¡¼­ ¾ð±ÞÇßµíÀÌ ¿©±â¼­´Â ´Ù¿î½ºÆ®¸²Àº eth1, ¾÷½ºÆ®¸²Àº eth0ÀÌ´Ù.
    <bandwidth> ´Â µð¹ÙÀ̽ºÀÇ ¹°¸®Àû ´ë¿ªÆøÀÌ´Ù. Áï, ÀÌ´õ³ÝÀº 10Mbit ȤÀº 100Mbit, arcnetÀº 2MbitÀÌ´Ù.
    <weight> ´Â <bandwidth>¿¡ ºñ·ÊÇÏ´Â Æ©´× ÆĶó¹ÌÅͷμ­ °£´ÜÈ÷ ´ÙÀ½°ú °°ÀÌ °è»êÇÑ´Ù.

    <weight> = <bandwidth> / 10

  • RATE=<speed>
       RATE=1Mbit

    Á¦¾îÇÒ ¼Óµµ¸¦ ÁöÁ¤ÇÑ´Ù. ´ÜÀ§´Â Kbit, Mbit ȤÀº bps, Kbps, Mbps ´ÜÀ§ÀÌ´Ù. º¸Åë ¿ì¸®°¡ »ç¿ëÇÏ´Â ´ÜÀ§´Â KByte À̹ǷΠÀß °è»êÇϵµ·Ï ÇÑ´Ù. 1 Byte = 8bit ÀÌ´Ù.


  • WEIGHT=<speed>
       WEIGHT=500Kbit

    RATE¿¡ ºñ·ÊÇÏ´Â Æ©´× ÆĶó¸ÞÅͷμ­ WEIGHT = RATE / 10 À¸·Î °è»êÇؼ­ ÀÔ·ÂÇÑ´Ù.

  • PRIO=<1-8> ±âº»°ª 5
       PRIO=5

    Ŭ·¡½º Æ®·¡ÇÈÀÇ ¿ì¼±±ÇÀ¸·Î ¼ýÀÚ°¡ ³ôÀ»¼ö·Ï ¿ì¼±±ÇÀÌ ³·´Ù. 5Á¤µµ¸é ÁÁ´Ù.
  • RULE=[[saddr[/prefix]][:port[/mask]],][daddr[/prefix]][:port[/mask]]

    Æ®·¡ÇÈ¿¡ ´ëÇÑ ±ÔÄ¢À» ¸¸µç´Ù. ¼³Á¤ÆÄÀÏ´ç ¿©·¯°³ÀÇ RULE Ç׸ñÀ» µÑ ¼ö ÀÖ´Ù.
    ¿¹¸¦ µé¸é:
  • MARK=<mark>
       MARK=10

    mark ¼ýÀÚ´Â ½ÊÁø¼öÀÌ¸ç ¼³Á¤ÆÄÀÏ´ç ¿©·¯°³¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¾÷½ºÆ®¸²¼ÓµµÁ¦¾î½Ã ÇʼöÀ̸ç ipchains·Î ¹Ýµå½Ã ¹Ì¸® ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ¿Ü¿¡µµ ¸¹Àº ¿É¼ÇÀÌ ÀÖ´Ù. ÀÌ Áß DEVICE, RATE, WEIGHT´Â ÇʼöÇ׸ñÀÌ´Ù. ´õ ÀÚ¼¼ÇÑ °ÍÀº ½ºÅ©¸³Æ®³» ¾ÕºÎºÐÀÇ ÁÖ¼®À» Âü°íÇϵµ·Ï ÇÑ´Ù.

    ½ÇÇàÀº cbq.init start ·Î Çϸç cbq.init ¸¸ ½ÇÇàÇÏ¸é ½ÇÇà¿¡ ´ëÇÑ ¿©·¯ ¿É¼ÇÀÌ ³ª¿Â´Ù.

    # cbq.init
    Usage: cbq.init {start|compile|stop|restart|timecheck|list|stats}

  • start : ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÑ´Ù.
  • compile : ½ÇÇàÀº ÇÏÁö¾Ê°í tc¸¦ ÀÌ¿ëÇØ cbq.init°¡ ¼³Á¤ÆÄÀÏ´ë·Î ¸¸µé¾î³½ ±¸¹®µéÀ» º¸¿©ÁØ´Ù. ½ºÅ©¸³Æ®°¡ ½ÇÁ¦·Î ¾î¶»°Ô ÀÛµ¿µÇ´ÂÁö ¾Ë ¼ö ÀÖ´Â ºÐ¼®¿¡ Æí¸®ÇÑ ¸í·ÉÀÌ´Ù.
  • stop : ½ºÅ©¸³Æ® ½ÇÇàÀ» ¸ØÃá´Ù.
  • restart : ½ºÅ©¸³Æ® Àç½ÃÀÛ.
  • timecheck : TIME ¸í·ÉÀ» ÁáÀ»¶§ ½ÇÇà.
  • list : ½ÇÇàÇßÀ»¶§ µð¹ÙÀ̽º¿¡ ´ëÇØ Àû¿ëµÈ °¢Á¾ Ŭ·¡½º, ·êÀ» º¸¿©ÁØ´Ù.
  • stats : list¿Í ºñ½ÁÇÏ°Ô ÇöÀç »óŸ¦ º¸¿©ÁØ´Ù. ÃÑ Æ®·¡ÇȾç°ú ¾ó¸¶³ª ÇÊÅ͸¦ Åë°úÇß´ÂÁö µî¿¡ ´ëÇØ º¸¿©ÁØ´Ù.

     

    5. htb.init ¸¦ ÀÌ¿ëÇÑ ¼ÓµµÁ¦¾î

    htb.init´Â À§¿¡¼­ ¾ð±ÞÇßµíÀÌ cbq.init¸¦ htb¿ëÀ¸·Î °³·®ÇÑ °ÍÀ¸·Î »ç¿ë¹ý ¿ª½Ã ºñ½ÁÇÏ´Ù. htb¼³Á¤ÆÄÀÏÀº /etc/sysconfig/htb ¿¡ ³õÀ¸¸é µÇ¸ç ¿ª½Ã cbq¿Í ºñ½ÁÇÏ°Ô HTB_PATH ºÎºÐÀ» °íÄ¡¸é ¼³Á¤ÆÄÀÏÀÇ À§Ä¡¸¦ ¹Ù²Ü ¼ö ÀÖ´Ù. ½ÇÇà¹æ¹ý ¿ª½Ã µ¿ÀÏÇÏÁö¸¸ ¼³Á¤½Ã ¸î°¡Áö ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù. htb.initÀÇ ¼³Á¤ÆÄÀϸíÇü½ÄÀº ´ÙÀ½°ú °°´Ù.

    <ifname>-<clsid>(:<clsid>)*<description>

  • <ifname> Àº ÀÎÅÍÆäÀ̽ºÀ̸§. Áï, eth0, eth1°ú °°Àº ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽ºÀÇ À̸§ÀÌ´Ù.
  • <clsid> ´Â Ŭ·¡½º ID·Î¼­ 16Áø¼öÀ̸ç 2ºÎÅÍ FFFF±îÁöÀÇ ¹üÀ§¸¦ °®´Â´Ù. Äݷеڿ¡ Ŭ·¡½º ID°¡ Á¤ÀÇµÇ¸é µÚÀÇ ID°¡ ±× ¼³Á¤ÆÄÀÏÀÇ Å¬·¡½º IDÀÓÀ» ³ªÅ¸³½´Ù. (ex. eth0-2:10.www   ÀÌ °æ¿ì Ŭ·¡½º ID´Â µÞÀÚ¸®ÀÇ 10) µÞÀÚ¸® <clsid>¾ÕÀÇ <clsid>´Â ºÎ¸ð Ŭ·¡½ºÀÇ Å¬·¡½º IDÀÌ´Ù. ¼ø¼­¸¦ À¯ÁöÇϱâ À§ÇØ ºÎ¸ð Ŭ·¡½º´Â Ç×»ó ÀÚ½Ä Å¬·¡½º¸ÕÀú »ý¼ºµÇ¸ç ÀÛ¼º½Ã ·çÆ® Ŭ·¡½º¿¡¼­ ¸¶Áö¸· Ŭ·¡½º±îÁö ¿ÏÀüÇÑ <clsid>Æнº¸¦ Æ÷ÇÔ½ÃÅ°´Â°Ô ÁÁ´Ù.
  • <description>¿¡´Â Ŭ·¡½º¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» ÀûÀ¸¸é µÈ´Ù.

    eth0-2
    eth0-2:3
    eth0-2:3:4
    eth1-2.root

    µð¹ÙÀ̽º eth0 ¿¡ ´ëÇÑ root Ŭ·¡½º id 2
    µð¹ÙÀ̽º eth0 ¿¡ ´ëÇÑ ºÎ¸ðŬ·¡½º id 2, ÀÚ½ÄŬ·¡½º id 3
    µð¹ÙÀ̽º eth0 ¿¡ ´ëÇÑ ºÎ¸ðŬ·¡½º id 3, ÀÚ½ÄŬ·¡½º id 4
    µð¹ÙÀ̽º eth1¿¡ ´ëÇÑ root Ŭ·¡½º id 2

    ½ÇÁ¦ ¿¹¸¦ µé¾îº¸ÀÚ. (htb.init ÁÖ¼® Áß¿¡¼­)

    ex5.1) ÃÑ ´ë¿ªÆø 5Mbit ÀÎ ¸®´ª½º¼­¹ö°¡ ÀÖ´Ù. ÀÌ ¼­¹ö¿¡¼­ À¥¼­¹ö Æ®·¡ÇÈÀ¸·Î´Â 5Mbit, SMTP Æ®·¡ÇÈÀº 3Mbit, ±×¸®°í ³ª¸ÓÁö(ºÐ·ùµÇÁö¾ÊÀº Æ®·¡ÇÈ)´Â 1Kbit·Î Á¦ÇÑÇÏ°í ½Í´Ù. »ç¿ëµÇÁö ¾Ê´Â ´ë¿ªÆøÀÌ ÀÖÀ» °æ¿ì SMTP¿Í ºÐ·ùµÇÁö¾ÊÀº Æ®·¡ÇÈÁß¿¡¼­ °øÀ¯Çϵµ·Ï ÇÏ°í ½Í´Ù.

    "ÃÑ ´ë¿ªÆø"Àº 5MbitÀÇ ÃÖ´ë´ë¿ªÆøÀ» °¡Áø ÇϳªÀÇ top-level Ŭ·¡½º¶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù. top-level Ŭ·¡½ºÇÏ¿¡ ¼¼ °³ÀÇ ÀÚ½Ä Å¬·¡½º°¡ ÀÖ´Ù.

    ù°, À¥¼­¹ö Æ®·¡ÇÈ Å¬·¡½º´Â 5MbitÀÇ ´ë¿ªÆøÀ» »ç¿ëÇϵµ·Ï ÇÒ´ç¹Þ´Â´Ù.
    µÑ°, SMTP Æ®·¡ÇÈ Å¬·¡½º´Â 3MbitÀÇ ´ë¿ªÆøÀ» ÇÒ´ç¹Þ°í »ç¿ëµÇÁö¾Ê´Â ´ë¿ªÆøÀÌ »ý±æ½Ã »ç¿ëÇÒ ¼ö´Â ÀÖÀ¸³ª ´ë¿ªÆø 5Mbit¸¦ ÃÊ°úÇؼ­´Â ¾ÈµÈ´Ù.
    ¸¶Áö¸·À¸·Î ¼Â°, ºÐ·ùµÇÁö¾ÊÀº Æ®·¡ÇÈÀº 1KbitÀÇ ´ë¿ªÆøÀ» ÇÒ´ç¹Þ°í »ç¿ëµÇÁö¾Ê´Â ´ë¿ªÆøÀ» ºô·Á¿Í¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª 5Mbit¸¦ ÃÊ°úÇؼ­´Â ¾ÈµÈ´Ù.¸ðµç Ŭ·¡½º¿¡ ¿äûÀÌ µé¾î¿Ã¶§ °¢ Ŭ·¡½ºÀÇ ±âº» ¼Óµµ¿¡ ºñ·ÊÇؼ­ ´ë¿ªÆøÀ» °øÀ¯ÇÏ°Ô µÈ´Ù. ³²´Â ´ë¿ªÆøÀÌ »ý±æ¶§µµ ¸¶Âù°¡Áö·Î ±âº»¼Óµµ¿¡ ºñ·ÊÇؼ­ ´ë¿ªÆøÀ» °øÀ¯ÇÏ°Ô µÈ´Ù.

    ÀÌ ½Ã³ª¸®¿À¿¡ ´ëÇÑ ¼³Á¤ÆÄÀϵéÀº ´ÙÀ½°ú °°´Ù.

    #eth0
    DEFAULT=30
    R2Q=100

    #eth0-2.root
    # root class containing total bandwidth
    RATE=5Mbit
    BURST=15k

    #eth0-2:10.www
    # class for outgoing WWW traffic
    RATE=5Mbit
    BURST=15k
    LEAF=sfq
    RULE=*:80,

    #eth0-2:20.smtp
    # class for outgoing SMTP traffic
    RATE=3Mbit
    CEIL=5Mbit
    BURST=15k
    LEAF=sfq
    RULE=*:25

    #eth0-2:30.dfl
    # default class for unclassified traffic
    RATE=1Kbit
    CEIL=5Mbit
    BURST=15k
    LEAF=sfq

    ´Ù¸¥ °£´ÜÇÑ ¿¹Á¦¸¦ µé¾îº¸¸é,

    ex5.2) ftp ´Ù¿î·Îµå ¼ÓµµÁ¦ÇÑ

    #eth1-2.host10ftp

    RATE=32kbit
    BURST=15k
    LEAF=sfq
    PRIO=5
    RULE=:20/0fffe,192.168.1.10

    host 192.168.1.10¿¡ ´ëÇÑ ftp ´Ù¿î·Îµå ¼Óµµ¸¦ 32kbit ·Î Á¦ÇÑÇÑ´Ù.

    ex5.3) ftp ¾÷·Îµå ¼ÓµµÁ¦ÇÑ

    #eth0-2.host10www

    RATE=28kbit
    BURST=15k
    LEAF=sfq
    PRIO=2
    MARK=11
    RULE=192.168.1.10,:20/0xfffe

    È£½ºÆ® 192.168.1.10ÀÇ ftp ¾÷·Îµå ¼Óµµ¸¦ 28kbit·Î Á¦ÇÑÇÑ´Ù. ¾÷·ÎµåÀ̹ǷΠmark¸¦ ÇØÁà¾ßÇÏ¸ç ¿©±â¼­´Â 11·Î µÅÀÖ´Ù.

    ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± Àû´çÈ÷ º¯°æÇØÁÖ¸é µÈ´Ù. htb.initÀÇ °æ¿ì ¼ÓµµÁ¦¾î¸¦ ÇØÁÙ ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ÆÄÀÏÀÌ ±âº»ÀûÀ¸·Î ÀÖ¾î¾ßÇÑ´Ù. ±× ´ÙÀ½ °¢°¢ÀÇ ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¼³Á¤ÆÄÀÏÀ» ¸¸µç´Ù.

    #eth0

    DEFAULT=30
    R2Q=100

    eth1ÀÇ °æ¿ìµµ ¶È°°ÀÌ ¸¸µé¾îÁÖ¸é µÈ´Ù.ex5.1 ½Ã³ª¸®¿À¿¹Á¦Ã³·³ °èÃþÀ» ¸¸µéÁö ¾Ê°í °£´ÜÇÏ°Ô ÇÏ°í ½Í´Ù¸é *.root ÆÄÀÏÀº ¸¸µéÁö ¾Ê¾Æµµ µÈ´Ù.

    htbÀÇ °æ¿ì Ŭ·¡½º¿¡ ºÎ¸ðŬ·¡½º¿Í ÀÚ½ÄŬ·¡½º°¡ ÀÖ´Ù°í Çߴµ¥ ºÎ¸ðŬ·¡½ºÀÇ ¼Óµµ¸¦ ÁöÁ¤ÇÏ°í ±× ¹ØÀÇ ÀÚ½ÄŬ·¡½º¿¡ ´ë¿ªÆøÀ» ³ª´²Áִ°ÍÀÌ °¡´ÉÇÏ´Ù. ±×¸®°í cbq¿Í ´Þ¸® htb´Â ´Ù¸¥ Ŭ·¡½º¿¡ ´ë¿ªÆøÀ» Çѵµ³»¿¡¼­ ºô·ÁÁִ°ÍÀÌ °¡´ÉÇÏ´Ù.(ceil) ½Ã³ª¸®¿À ¼³Á¤ÆÄÀÏÀ» »ìÆ캸¸é ¾Ë ¼ö ÀÖ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº htbȨÆäÀÌÁö À¯Àú¸Å´º¾óÀ» º¸±â¹Ù¶ó¸ç ºü¸¥ ½Ã°£³»¿¡ °£´ÜÇÑ ¿ä¾à¹®À» ¿Ã¸®µµ·Ï ÇÏ°Ú´Ù.