نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: کنترل مصرف پهنای باند شبکه با استفاده از squid

  1. #1
    کاربر اخراج شده
    تاریخ عضویت
    Oct 2010
    محل سکونت
    تهران ، صادقیه
    نوشته ها
    307
    تشکر تشکر کرده 
    6
    تشکر تشکر شده 
    331
    تشکر شده در
    216 پست

    پیش فرض کنترل مصرف پهنای باند شبکه با استفاده از squid

    کنترل مصرف پهنای باند شبکه با استفاده از squid
    کنترل مصرف پهنای باند شبکه با استفاده از squid
    یکی از مشکلاتی که معمولا بر روی شبکه‌های داخلی وجود دارد، مصرف پهنای باند توسط کاربرانی خاص و عدم پخش مناسب آن بر روی کل شبکه است. به طوری که یک کاربر می‌تواند کل پهنای باند شبکه را مصرف کرده و سایر کاربران را دچار مشکل کند.

    راه‌های متعددی برای کنترل مصرف پهنای باند مانند ابزارهای Traffic Shaper و... شبکه وجود دارد که از حوصله این مقاله خارج است. ما در این مقاله کوچک سعی داریم تا نحوه کنترل مصرف پهنای باند را توسط سرویس دهنده squid آموزش دهیم.

    قدم اول
    فرض می‌کنیم که یک اتصال مودم یا DSL به شبکه اینترنت داریم که رابط آن ppp0 بوده، رابط شبکه محلی نیز eth0 و آدرس شبکه داخلی 192.168.0.0/24 می‌باشد. مواردی که برای پیاده سازی کنترل مصرف پهنای باند شبکه نیاز داریم عبارتند از یک سرویس‌دهنده squid و سیستم iptables که بر روی هر ماشین گنو/لینوکس وجود دارد. مراحل نصب، پیکربندی و تنظیم بسیار ساده است.

    Squid چگونه کار می‌کند؟
    سرویس‌دهنده Squid پیشرفته‌ترین سرویس‌دهنده پراکسی موجود برای سیستم‌عامل گنو/لینوکس می‌باشد. این سرویس‌دهنده به دو روش می‌تواند در پهنای باند صرفه جویی نماید:

    ۱) نخست از طریق حفظ صفحات، تصاویر و سایر اقلام دریافت شده بر روی حافظه یا فضای دیسک. بنابراین در صورتی که کاربران تقاضای دریافت مجدد یک صفحه تکراری را نمایند، این صفحه از روی اینترنت دریافت نخواهد شد.

    ۲) در کنار سیستم Caching معمولی، Squid دارای قابلیتی به نام delay pools است که از طریق آن می‌توانید ترافیک اینترنت را بطور معقولانه‌ای کنترل نمایید. این کار از طریق تعریف کلمات کلیدی موجود در آدرس‌های URL انجام می‌گیرد. برای مثال می‌توانید کلماتی مانند mp3، mpg، exe و... را بعنوان کلمات کلیدی تعریف نمایید. با استفاده از این کلمات کلیدی، می‌توانیم به Squid بگوییم تا آنها را حداکثر با سرعت خاصی دریافت نماید. می‌توان پهنای باند باقیمانده را برای سرویس‌های دیگر مانند مرور وب، پست الکترونیکی و... باقی گذاشت و یا حتی آنرا نیز محدود کرد.

    نصب و پیکربندی ابزارهای لازم
    در این بخش به بررسی چگونگی نصب و پیکربندی ابزارهای لازم می‌پردازیم. مهمترین نکته در این بخش، فعال بودن ویژگی Delay Pools در Squid می‌باشد. در صورتی که Squid را از طریق کامپایل نصب کرده‌اید، حتما بررسی کنید که به همراه گزینه enable-delay-pools-- کامپایل شده باشد، در غیر اینصورت باید آنرا مجددا کامپایل کنید. معمولا بسته‌هایی که به همراه توزیع‌ها ارائه می‌شود، دارای چنین ویژگیی به صورت پیش‌گزیده می‌باشد. با فرض اینکه از توزیع دبیان استفاده می‌کنید، Squid را نصب می‌کنیم:

    # apt-get install squid
    سرویس‌دهنده Squid از روی مخازن مربوطه دریافت و نصب خواهد شد. در قدم دوم، باید این سرویس‌دهنده را برای مقاصد خودمان تنظیم کنیم. به همراه تنظیم Delay Pools، سرویس‌دهنده برای ارائه سرویس Transparent ***** نیز تنظیم خواهد شد. فایل پیکربندی مورد استفاده در Squid به شکل زیر خواهد بود:

    #SQUID PORT

    http_port 8080

    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY

    cache_mem 16 MB

    maximum_object_size 4096 KB
    maximum_object_size_in_memory 10 KB

    #CACHE DIR CONFIG
    cache_dir ufs /var/spool/squid 512 16 512

    #LOGS
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log /var/log/squid/store.log

    hosts_file /etc/hosts

    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern . 0 20% 4320

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8

    # OUR LOCAL LAN
    acl local src 192.168.0.0/255.255.255.0

    acl SSL_ports port 443 563
    acl SSL_ports port 873
    acl Safe_ports port 80 21 443 563 70 210 631 901 1025-65535
    acl purge method PURGE
    acl CONNECT method CONNECT

    http_access allow manager localhost local
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost
    http_reply_access allow all

    #HOSTNAME
    visible_hostname power

    #TRANSPARENT *****
    httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_***** on
    httpd_accel_uses_host_header on

    store_avg_object_size 50 KB

    coredump_dir /var/spool/squid

    #DELAY POOLS
    acl magic_words1 url_regex -i 192.168
    acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .rpm .zip .tar.gz .gz .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov .swf
    acl day time 08:00-23:59

    delay_pools 2

    delay_class 1 2
    delay_parameters 1 4500/40000 4500/40000
    delay_access 1 allow magic_words1

    delay_class 2 2
    delay_parameters 2 4500/40000 4500/40000
    delay_access 2 allow day
    delay_access 2 deny !day
    delay_access 2 allow magic_words2
    این فایل پیکربندی در آدرس etc/squid/squid.conf/ قرار می‌گیرد. مهمترین بخش این فایل برای کنترل ترافیک، بخش مشخص شده با DELAY POOLS است.
    در خط نخست این بخش یک acl برای شبکه داخلی تعریف شده و در خط دوم انواع فایل‌هایی که مایل به محدود کردن دریافت آنها هستیم، مشخص شده است.
    در خط سوم، ساعات کاری که محدودیت‌ها در آن اعمال می‌شوند مشخص شده و در خط بعدی، دو Delay Pool مختلف تعریف شده است.
    خط delay_class مشخص کننده نوع کلاس pool بکار رفته می‌باشد. سه نوع کلاس delay pool وجود دارد که برای اطلاع دقیق از انها می‌توانید به مستندات سرویس‌دهنده Squid مراجعه نمایید.
    خط delay_parameters 1 مشخص کننده محدودیت‌های اعمالی برای شبکه داخلی است. در این خط مشخص شده که در صورتی که کل شبکه یا یک آدرس IP خاص مقدار حجم دریافتی معادل ۴۰ مگابایت داشت، از آن پس، سرعت دریافت آن به ۴/۵ کیلوبایت در ثانیه کاهش یابد. درصورتی که مایلید تا محدودیت برای مرور صفحات وجود نداشته باشد و در هنگام مرور صفحات، همیشه حداکثر سرعت در اختیار باشد، این خط را به صورت زیر تغییر دهید:

    delay_parameters 1 -1/-1 -1/-1
    عدد منفی یک مشخص کننده عدم وجود محدودیت است. همانطور که در مثال بالا می‌بینید، محدودیت ساعت در خطوط تنظیم کننده مربوط به delay_parameters 2 اعمال شده است. توجه داشته باشید که اعدادی فایل پیکربندی فوق تماما مثال بوده و آنها را باید بنا به شرایط شبکه خودتان تنظیم کنید.

    پس از اعمال تنظیمات فوق، سرویس‌دهنده Squid را راه‌اندازی می‌کنیم:

    # squid -z
    # /etc/init.d/squid start
    در مرحله بعدی تنظیم و پیکربندی، باید اشتراک اینترنت و تنظیمات iptables را برای transparent ***** انجام دهیم. برای این کار می‌توان از یک اسکریپت ساده مانند زیر استفاده کرد:

    #!/bin/sh
    IPTABLES=/sbin/iptables
    $IPTABLES -F

    $IPTABLES -t nat -A PREROUTING -i lan1 -p tcp --dport 80 -j REDIRECT --to-port 8080
    $IPTABLES -A POSTROUTING -t nat -o ppp0 -j MASQUERADE

    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo Starting Internet Connection Sharing...
    کافی است این اسکریپت را در شاخه etc/init.d/ با نامی مانند ics ذخیره کرده و آنرا با chmod +x اجرایی کنید. سپس برای اینکه در هنگام بوت اجرا شود، از دستور زیر استفاده نمایید:

    # ln -s /etc/init.d/ics /etc/rc2.d/S99ics
    از این پس هنگام بوت سیستم (سطح اجرایی ۲ در دبیان) اسکریپت ics اجرا خواهد شد و می‌توانید ببینید که تنظیمات کنترلی به خوبی کار می‌کنند. برای اطلاعات دقیق‌تر در مورد چگونگی اعمال محدودیت‌های ترافیکی با استفاده از Traffic shaper می‌توانید به این آدرس مراجعه کنید.

    منبع:
    whtalk.net
    http://www.faqs.org/docs/Linux-HOWTO/Ban...HOWTO.htm

  2. تعداد تشکر ها ازehsansystem به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. کانفیگ squid
    توسط __coma__ در انجمن شبکه های لینوکسی
    پاسخ ها: 7
    آخرين نوشته: April 3rd, 2015, 19:16
  2. ارور squid dead but pid file exists در squid
    توسط SV24.CO در انجمن اکانتینگ Accounting
    پاسخ ها: 2
    آخرين نوشته: March 14th, 2013, 04:00
  3. خطای بسته بودن پورت در squid
    توسط mr-secret در انجمن اکانتینگ Accounting
    پاسخ ها: 2
    آخرين نوشته: January 2nd, 2013, 20:35
  4. ارور squid dead but pid file exists در squid
    توسط SV24.CO در انجمن اکانتینگ Accounting
    پاسخ ها: 3
    آخرين نوشته: December 7th, 2012, 00:47
  5. مشکل در نصب squid
    توسط SV24.CO در انجمن ردهت,فدورا,سنت-او-اس Redhat,Fedora,CentOS
    پاسخ ها: 2
    آخرين نوشته: December 3rd, 2012, 20:56

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •