![]() |
![]() |
|
|
کنترل مصرف پهنای باند شبکه با استفاده از squid
یکی از مشکلاتی که معمولا بر روی شبکههای داخلی وجود دارد، مصرف پهنای باند توسط کاربرانی خاص و عدم پخش مناسب آن بر روی کل شبکه است. به طوری که یک کاربر میتواند کل پهنای باند شبکه را مصرف کرده و سایر کاربران را دچار مشکل کند. راههای متعددی برای کنترل مصرف پهنای باند مانند ابزارهای Traffic Shaper و... شبکه وجود دارد که از حوصله این مقاله خارج است. ما در این مقاله کوچک سعی داریم تا نحوه کنترل مصرف پهنای باند را توسط سرویس دهنده squid آموزش دهیم. قدم اول Squid چگونه کار میکند؟ ۱) نخست از طریق حفظ صفحات، تصاویر و سایر اقلام دریافت شده بر روی حافظه یا فضای دیسک. بنابراین در صورتی که کاربران تقاضای دریافت مجدد یک صفحه تکراری را نمایند، این صفحه از روی اینترنت دریافت نخواهد شد. ۲) در کنار سیستم Caching معمولی، Squid دارای قابلیتی به نام delay pools است که از طریق آن میتوانید ترافیک اینترنت را بطور معقولانهای کنترل نمایید. این کار از طریق تعریف کلمات کلیدی موجود در آدرسهای URL انجام میگیرد. برای مثال میتوانید کلماتی مانند mp3، mpg، exe و... را بعنوان کلمات کلیدی تعریف نمایید. با استفاده از این کلمات کلیدی، میتوانیم به Squid بگوییم تا آنها را حداکثر با سرعت خاصی دریافت نماید. میتوان پهنای باند باقیمانده را برای سرویسهای دیگر مانند مرور وب، پست الکترونیکی و... باقی گذاشت و یا حتی آنرا نیز محدود کرد. نصب و پیکربندی ابزارهای لازم # apt-get install squid سرویسدهنده Squid از روی مخازن مربوطه دریافت و نصب خواهد شد. در قدم دوم، باید این سرویسدهنده را برای مقاصد خودمان تنظیم کنیم. به همراه تنظیم Delay Pools، سرویسدهنده برای ارائه سرویس Transparent Proxy نیز تنظیم خواهد شد. فایل پیکربندی مورد استفاده در Squid به شکل زیر خواهد بود:
#SQUID PORT http_port 8080 hierarchy_stoplist cgi-bin ? cache_mem 16 MB maximum_object_size 4096 KB #CACHE DIR CONFIG #LOGS hosts_file /etc/hosts refresh_pattern ^ftp: 1440 20% 10080 acl all src 0.0.0.0/0.0.0.0 # OUR LOCAL LAN acl SSL_ports port 443 563 http_access allow manager localhost local #HOSTNAME #TRANSPARENT PROXY store_avg_object_size 50 KB coredump_dir /var/spool/squid #DELAY POOLS delay_pools 2 delay_class 1 2 delay_class 2 2
این فایل پیکربندی در آدرس etc/squid/squid.conf/ قرار میگیرد. مهمترین بخش این فایل برای کنترل ترافیک، بخش مشخص شده با DELAY POOLS است. delay_parameters 1 -1/-1 -1/-1 عدد منفی یک مشخص کننده عدم وجود محدودیت است. همانطور که در مثال بالا میبینید، محدودیت ساعت در خطوط تنظیم کننده مربوط به delay_parameters 2 اعمال شده است. توجه داشته باشید که اعدادی فایل پیکربندی فوق تماما مثال بوده و آنها را باید بنا به شرایط شبکه خودتان تنظیم کنید. پس از اعمال تنظیمات فوق، سرویسدهنده Squid را راهاندازی میکنیم: # squid -z در مرحله بعدی تنظیم و پیکربندی، باید اشتراک اینترنت و تنظیمات iptables را برای transparent proxy انجام دهیم. برای این کار میتوان از یک اسکریپت ساده مانند زیر استفاده کرد:
#!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward کافی است این اسکریپت را در شاخه etc/init.d/ با نامی مانند ics ذخیره کرده و آنرا با chmod +x اجرایی کنید. سپس برای اینکه در هنگام بوت اجرا شود، از دستور زیر استفاده نمایید: # ln -s /etc/init.d/ics /etc/rc2.d/S99ics از این پس هنگام بوت سیستم (سطح اجرایی ۲ در دبیان) اسکریپت ics اجرا خواهد شد و میتوانید ببینید که تنظیمات کنترلی به خوبی کار میکنند |
|
+ نوشته شده در
دوشنبه 1387/08/27ساعت 11:0 توسط عباسعلی |
|
|
صفحه نخست پست الکترونیک آرشیو عناوین مطالب وبلاگ |
| درباره وبلاگ |
|
| نوشته های پیشین |
|
آبان 1388 مهر 1388 شهریور 1388 مرداد 1388 اردیبهشت 1388 بهمن 1387 دی 1387 آذر 1387 آبان 1387 اردیبهشت 1387 فروردین 1387 اسفند 1386 |
| آرشیو موضوعی |
|
سخت افزار کامپیوتر شبکه های کامپیوتری اینترنت اس ام اس موبایل تازه های فناوری اطلاعات گوناگون نرم افزار |
| پیوندها |
|
روزهای به یادماندنی وبلاگ تخصصی فیزیک وبلاگ تخصصی موبایل ثبت نام در سیستم تبلیغاتی آموزش ساخت ویژال بیسیک وبلاگ فارسی |
|
RSS
|