÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÍøÂçÁ÷Á¿ºÍ´ø¿íÖÎÀíµÄ½â¾ö¼Æ»®£¿
÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÍøÂçÁ÷Á¿ºÍ´ø¿íÖÎÀíµÄ½â¾ö¼Æ»®£¿
¼ò½é£º
÷è÷ë²Ù×÷ϵͳÊÇÒ»ÖÖ»ùÓÚLinuxÄں˵ĿªÔ´²Ù×÷ϵͳ£¬ÆäÒÔ¸ßÐÔÄܺ͸߶ȿɶ¨ÖÆÐÔ¶øÖøÃû¡£ÔÚÍøÂçÓ¦Ó÷½Ã棬÷è÷ë²Ù×÷ϵͳÌṩÁËһϵÁнâ¾ö¼Æ»®£¬ÆäÖаüÀ¨ÍøÂçÁ÷Á¿ºÍ´ø¿íÖÎÀíµÄ¹¦Ð§¡£±¾ÎĽ«ÏÈÈÝ÷è÷ë²Ù×÷ϵͳÔõÑùʵÏÖÕâЩ¹¦Ð§£¬²¢ÌṩһЩ´úÂëʾÀý¹©²Î¿¼¡£
Ò»¡¢Á÷Á¿¿ØÖÆ
÷è÷ë²Ù×÷ϵͳͨ¹ýʹÓÃÍøÂç×°±¸ÐÐÁкÍÁ÷Á¿¿ØÖÆËã·¨À´ÊµÏÖÁ÷Á¿¿ØÖƹ¦Ð§¡£Í¨¹ý½«Á÷Á¿¿ØÖÆËã·¨Ó¦ÓÃÓÚÍøÂç×°±¸ÐÐÁÐÖеÄÊý¾Ý°ü£¬¿ÉÒÔÏÞÖÆ×°±¸µÄ·¢ËͺÍÎüÊÕËÙÂÊ¡£
ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룬չʾÁËÔõÑùʹÓÃtc(traffic control)ÏÂÁîÀ´ÊµÏÖ¼òÆÓµÄÁ÷Á¿¿ØÖÆ£º
tc qdisc add dev eth0 root handle 1: htb default 10 tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50mbit tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
µÇ¼ºó¸´ÖÆ
ÒÔÉÏ´úÂ뽨ÉèÁËÒ»¸öÌõÀí»¯ÁîÅÆÍ°(htb)ÐÐÁУ¬²¢½«eth0Íø¿¨ÉèΪ¸ùÐÐÁеÄĬÈÏÐÐÁС£È»ºó£¬´úÂ뽨ÉèÁËÒ»¸öËÙÂÊΪ50mbitµÄ×ÓÀàÐÐÁУ¬²¢½¨ÉèÁËÒ»¸ösfqÐÐÁÐ×÷Ϊ×ÓÀàÐÐÁеÄ×ÓÐÐÁУ¬ÒÔʵÏÖÁ÷Á¿¿ØÖÆ¡£
¶þ¡¢´ø¿íÖÎÀí
³ýÁËÁ÷Á¿¿ØÖÆ£¬÷è÷ë²Ù×÷ϵͳ»¹ÌṩÁË´ø¿íÖÎÀíµÄ¹¦Ð§¡£´ø¿íÖÎÀíÔÊÐíÓû§Æ¾Ö¤Ó¦ÓóÌÐòÐèÇó·ÖÅÉÍøÂç´ø¿í£¬ÒÔÈ·±£Ã¿¸öÓ¦ÓóÌÐò¿ÉÒÔ»ñµÃ¹«ÕýÇÒÊʵ±µÄ´ø¿í·Ý¶î¡£
ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룬չʾÁËÔõÑùʹÓÃtcÏÂÁîÀ´ÊµÏÖ¼òÆӵĴø¿íÖÎÀí£º
tc qdisc add dev eth0 root handle 1: htb default 10 tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50mbit ceil 100mbit tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
µÇ¼ºó¸´ÖÆ
ÒÔÉÏ´úÂ뽨ÉèÁËÒ»¸öÌõÀí»¯ÁîÅÆÍ°(htb)ÐÐÁУ¬²¢½«eth0Íø¿¨ÉèΪ¸ùÐÐÁеÄĬÈÏÐÐÁС£È»ºó£¬´úÂ뽨ÉèÁËÒ»¸öËÙÂÊΪ50mbitµ«×î´ó²»Áè¼Ý100mbitµÄ×ÓÀàÐÐÁУ¬²¢½¨ÉèÁËÒ»¸ösfqÐÐÁÐ×÷Ϊ×ÓÀàÐÐÁеÄ×ÓÐÐÁУ¬ÒÔʵÏÖ´ø¿íÖÎÀí¡£
Èý¡¢Á÷Á¿·ÖÁ÷
Á÷Á¿·ÖÁ÷ÊÇ÷è÷ë²Ù×÷ϵͳÌṩµÄÁíÒ»¸öÖ÷ÒªµÄÍøÂçÖÎÀí¹¦Ð§¡£ËüÔÊÐíÓû§½«ÍøÂçÁ÷Á¿·ÖÅɵ½²î±ðµÄÁ´Â·»ò½Ó¿ÚÉÏ£¬ÒÔʵÏÖ¸ºÔØƽºâºÍÈßÓ౸·Ý¡£
ÏÂÃæÊÇÒ»¸öʾÀý´úÂ룬չʾÁËÔõÑùʹÓÃiptablesÏÂÁîÀ´ÊµÏÖ¼òÆÓµÄÁ÷Á¿·ÖÁ÷£º
iptables -t mangle -A PREROUTING -i eth0 -j CONNMARK --set-mark 1 iptables -t mangle -A PREROUTING -m mark --mark 1 -j DNAT --to-destination 192.168.1.100 iptables -t nat -A POSTROUTING -m mark --mark 1 -j SNAT --to-source 192.168.1.1
µÇ¼ºó¸´ÖÆ
ÒÔÉÏ´úÂëͨ¹ýÉèÖðü±ê¼Ç(mark)À´ÊµÏÖÁ÷Á¿·ÖÁ÷¡£Ê×ÏÈ£¬ÔÚPREROUTINGÁ´ÉÏ£¬´úÂ뽫½øÈëeth0½Ó¿ÚµÄÊý¾Ý°üµÄ±ê¼ÇÉèÖÃΪ1¡£È»ºó£¬´úÂ뽫±ê¼ÇΪ1µÄÊý¾Ý°üÖض¨Ïòµ½Ä¿µÄµØµãΪ192.168.1.100µÄÖ÷»úÉÏ¡£×îºó£¬ÔÚPOSTROUTINGÁ´ÉÏ£¬´úÂ뽫±ê¼ÇΪ1µÄÊý¾Ý°üµÄÔ´µØµãÖØдΪ192.168.1.1£¬ÒÔʵÏÖ³ö¿ÚÁ÷Á¿µÄ·ÖÁ÷¡£
½áÓ
÷è÷ë²Ù×÷ϵͳÌṩÁËÇ¿Ê¢µÄÍøÂçÁ÷Á¿ºÍ´ø¿íÖÎÀí¹¦Ð§£¬Ê¹Óû§Äܹ»¸üºÃµØÖÎÀíºÍ¿ØÖÆÍøÂçÓ¦Óá£Í¨¹ýÁ÷Á¿¿ØÖÆ¡¢´ø¿íÖÎÀíºÍÁ÷Á¿·ÖÁ÷ÕâЩ¹¦Ð§£¬Óû§¿ÉÒÔÌá¸ßÍøÂçÐÔÄÜ¡¢°ü¹ÜÓ¦ÓóÌÐòµÄ¿É¿¿ÐÔ£¬²¢ÓÐÓÃʹÓÃÍøÂç×ÊÔ´¡£Ï£Íû±¾ÎÄÌṩµÄ´úÂëʾÀýÄܶԶÁÕßµÄʵ¼ùºÍÑо¿ÓÐËù×ÊÖú¡£
ÒÔÉϾÍÊÇ÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÍøÂçÁ÷Á¿ºÍ´ø¿íÖÎÀíµÄ½â¾ö¼Æ»®£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡