استانداردسازي در كميته IEEE 802

 

   1-1-       انجمن استانداردهاي IEEE

 انجمن IEEE يك سازمان فني غيرانتفاعي با بيش از 000 ,350 عضو است. اين انجمن داراي يك  سري فعاليت‏هاي فني شامل كنفرانس‏ها، انتشارات و فعاليت‏هاي محلي است. علاوه بر اين، فعاليت‏هايي در زمينه استانداردسازي از طريق انجمن استانداردهاي (IEEE-SA[1]) IEEE انجام مي‏شود. فعاليت‏هاي اين انجمن نيز مورد تأييد مؤسسه استانداردهاي ملي آمريكا (ANSI) است.

استانداردهاي IEEE-SA با اتفاق آراء تدوين مي‏شوند. شركت در تدوين اين استانداردها و همچنين استفادة آن‏ها كاملاً اختياري است. با وجود اين، تاريخ نشان داده است كه استانداردهايي كه در يك انجمن با توافق آراء تدوين مي‏شوند، مورد قبول و استفاده تعداد زيادي از شركت‏ها و صنايع هستند.

 

   1-2-        كميته استانداردهاي IEEE 802 LAN MAN

كميته استانداردهاي IEEE 802 LAN MAN توسط انجمن كامپيوتر IEEE حمايت مي‏شود. اولين جلسه اين كميته در سال 1980 براي تدوين استاندارد LAN تشكيل شد. در اين استاندارد، لايه فيزيكي و زيرلايه MAC تحت كنترل زيرلايه LLC مورد بررسي قرارگرفته شده است. اين لايه‏ها دو لايه پائيني مدل هفت لايه‏اي OSI براي شبكه‏هاي ديتا هستند.

كميته IEEE 802 سه‏بار در سال به مدت يك هفته كامل با رياست كميته اجرايي SEC[2] برگزار مي‏شود. مابين جلسات كميته يك سري جلسات خصوصي نيز برگزار مي‏شود. كميته 802 به خاطر استاندارد 802.3 معروف به Ethernet بسيار مشهور و شناخته شده است. اين استاندارد در كل جهان موفق بوده است. بسياري از شبكه‏هاي LAN در جهان برپايه Ethernet است و عمل LAN به معناي اتصال Ethernet دستگاه‏هاست. مانند تمام استانداردهاي موفق 802، استاندارد IEEE 802.3 به‏طور پيوسته تكامل مي‏يابد و از رسانه كواكسيال اشتراكي به زوج سيم تابيده با استاندارد 10 BaseT پيش رفته است و مي‏تواند نرخ‏هاي ديتا با 100BaseT و 1000BaseT را حمايت كند. همچنين رسانه‏هاي نوري نيز حمايت مي‏شود و استاندارد 802.3 در حال تدوين و توسعه يك استاندارد 10 Gb/s است. بعد از موفقيت بزرگ Ethernet، كميته 802 مشغول اجراي تعدادي پروژه استانداردسازي شبكه بي‏سيم   شده است. قبل از اينكه جزئيات برنامه استانداردهاي بي‏سيم IEEE 802 مورد بحث و بررسي قرار بگيريد يك مروري براين پروسه خواهيم داشت.

 

   1-3-         پروسه استانداردسازي IEEE 802

پروسه IEEE 802 براي پياده‏سازي و تدوين سريع استانداردها با توافق آراء طراحي شده است. هدف از توافق جمع در اين استانداردها، داشتن اطمينان از اينكه اين استانداردها فني هستند و نيازهاي بازار را برآورده مي‏كنند‏، است. پروسه تدوين استاندارد در IEEE 802 داراي مراحل زماني زير است. اين پروسه توسط كميته اجرايي SEC نظارت مي‏شود و براساس يك سري قوانين و روالها تعريف مي‏شود. به‏طور خلاصه اين مراحل عبارتند از:

   ·    يك گروه مطالعاتي موظف مي‏شود كه اهداف استاندارد را مطالعه و بررسي كند و همچنين درخواست نامه اجازه يك پروژه ((PAR[1] را نيز تهيه مي‏كند كه درخواست نامه يك پروژه جديد بايد به تصويب IEEE-SA برسد. همچنين بايد علاوه بر تهيه PAR، يك اظهار نامه براي كميته SEC تهيه كنند كه در آن بيان شده باشد: اين استاندارد 5 ملاك و معيار كميته IEEE 802 براي تدوين يك استاندارد را شامل مي‏شود و همچنين داراي بازار گسترده، سازگار با ديگر استانداردهاي 802، داراي هويت متمايز داخل 802 است و از نظر فني و اقتصادي عملي است.

 

   ·    كميته SEC هركدام از پروژه‏هاي تصويب شده را به يك گروه كاري موجود يا جديد اختصاص مي‏دهد. تصميمات فني توسط گروه كاري با توافق حداقل 75% از اعضاء اتخاذ مي‏شود. عضويت اين گروه كاري متعلق به اشخاص است نه به شركت‏ها يا ديگر سازمان‏ها و برپايه شركت در جلسات است. افرادي غير از اعضاء گروه نيز مي‏توانند در جلسات شركت كنند.

 

روش تهيه پيش‏نويس اوليه بين گروه‏ها متفاوت است اما به‏طور معمول، مشكلات و مسائل مربوطه به يك گروه پايين‏تر ارجاع داده مي‏شود و يك دعوت عمومي براي كمك و ياري به پيش‏نويس تهيه شده صورت مي‏گيرد. در نتيجه يك پيش‏نويس اوليه انتخاب مي‏شود و سپس بهينه مي‏شود.

   ·    قبل از اينكه كميته SEC پيش‏نويس اوليه را ارتقاء دهد، بايد پيش‏نويس استاندارد تصويب شود. به اين صورت كه اعضاء گروه كاري بايد يك درخواست نامه جهت تصويب پيش‏نويس تهيه كنند. هر رأي مخالف اين پيش‏نويس بايد همراه با يك دليل مشخص باشد كه چه تغييراتي لازم است و رأي دهنده بايد آن را ثابت كند. قانون داشتن ادله محكم در زمان مخالفت با اين پيش‏نويس كمك مي‏كند تا پيش‏نويس‏ها پس از چندين جلسه بهينه شوند. اعضاء اين گروه براي تصويب پيش‏نويس حق رأي دارند و شركت كننده‏هاي غير از اعضاء فقط مي‏توانند پيشنهاد بدهند. براي تصويب يك پيش‏نويس نياز به موافقت 75% اعضاء‌ است.

 

   ·    آخرين كاري كه انجام مي‏شود اين است كه دوباره بايد به اين پيش‏نويس استاندارد رأي داده شود. در اين مرحله بايد افرادي غير از اعضاء كميته نيز به پيش‏نويس مورد نظر رأي بدهند. در واقع كميته IEEE مي‏خواهد كه استاندارد مبتني بر نظر كاربر يا سازنده تدوين نشود بلكه مورد تأييد يك گروه كارشناس باشد. البته علاوه بر رأي‏گيري در مورد استاندارد، يك سري قوانين هم وجود دارد كه براي موفق شدن استاندارد ضروري است. اغلب گفته مي‏شود كه در كميته 802، هدف از رأي‏گيري، تصويب پيش‏نويس نيست بلكه براي پيشرفت و اصلاح آن است.

تجربه نشان داده است كه پروسه IEEE 802 تأثير بسزايي در بكارگيري گروه‏هاي مختلف، پرورش پيشنهادها و اظهارات و اعمال تغييرات بنيادي دارد. در نتيجه، پيش‏نويس‏هاي 802 در حال اصلاح و بهينه شدن هستند. زمانيكه يك استاندارد روي سيستمي اعمال مي‏شود، كاربران اطمينان كافي پيدا مي‏كنند كه استاندارد مطمئن و قابل قبول است. همچنين مي‏توان يك پيش‏نويس استاندارد كه در يك زمان قابل قبولي بررسي شده است را روي سيستم‏ها اعمال كرد و بكار برد.


 


 

 

کنترل مصرف پهنای باند شبکه با استفاده از 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 Proxy نیز تنظیم خواهد شد. فایل پیکربندی مورد استفاده در 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 PROXY
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy 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 proxy انجام دهیم. برای این کار می‌توان از یک اسکریپت ساده مانند زیر استفاده کرد:

 

#!/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 اجرا خواهد شد و می‌توانید ببینید که تنظیمات کنترلی به خوبی کار می‌کنند.