<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.parspooyesh.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>http://wiki.parspooyesh.com/index.php?feed=atom&amp;namespace=0&amp;title=%D9%88%DB%8C%DA%98%D9%87%3A%D8%B5%D9%81%D8%AD%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AA%D8%A7%D8%B2%D9%87</id>
		<title>ویکی پارس پویش - صفحه‌های تازه [fa]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.parspooyesh.com/index.php?feed=atom&amp;namespace=0&amp;title=%D9%88%DB%8C%DA%98%D9%87%3A%D8%B5%D9%81%D8%AD%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AA%D8%A7%D8%B2%D9%87"/>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/%D9%88%DB%8C%DA%98%D9%87:%D8%B5%D9%81%D8%AD%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AA%D8%A7%D8%B2%D9%87"/>
		<updated>2026-06-24T10:03:30Z</updated>
		<subtitle>از ویکی پارس پویش</subtitle>
		<generator>MediaWiki 1.19.0</generator>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php/%D9%85%D8%B3%D8%AA%D9%86%D8%AF_%D8%B4%DB%8C%D9%81%D8%AA</id>
		<title>مستند شیفت</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/%D9%85%D8%B3%D8%AA%D9%86%D8%AF_%D8%B4%DB%8C%D9%81%D8%AA"/>
				<updated>2017-08-14T08:25:47Z</updated>
		
		<summary type="html">&lt;p&gt;Siavash: صفحه‌ای جدید حاوی '  عیب یابی مشکل در شیفت بسته به نوع مشکل به سه دسته تقسیم میگردد :  مشکلات دیتاب...' ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
عیب یابی مشکل در شیفت بسته به نوع مشکل به سه دسته تقسیم میگردد :&lt;br /&gt;
&lt;br /&gt;
مشکلات دیتابیس &lt;br /&gt;
&lt;br /&gt;
مشکل query های فعال &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
مشکلات سیستم عامل و سرویس&lt;br /&gt;
&lt;br /&gt;
مشکل iowait&lt;br /&gt;
&lt;br /&gt;
مشکل redundancy&lt;br /&gt;
&lt;br /&gt;
مشکل پر شدن پارتیشن ها &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
مشکلات شبکه&lt;/div&gt;</summary>
		<author><name>Siavash</name></author>	</entry>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php/Docker_Troubleshooting</id>
		<title>Docker Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/Docker_Troubleshooting"/>
				<updated>2017-07-08T10:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Siavash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IBSng]]&lt;br /&gt;
&amp;lt;font face =&amp;quot;Tahoma&amp;quot;&amp;gt; &lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;div dir=rtl lang=fa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Docker''' =&lt;br /&gt;
==Docker Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''دستورات مفید برای مدیریت docker-compose'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای خاموش کردن سرورها.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  stop  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای روشن کردن سرورها.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  start  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 برای اجرای سرورها (معادل run در docker)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  up -d  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 برای اجرای حذف سرورها (معادل rm در docker).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  down ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای مشاهده سرورهای موجود &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  ps  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای مشاهده میزان بارسرورها &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' ddocker-compose  top  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای انجام عملیات فوق بر روی یک سرور خاص از دستور زیر استفاده میکنیم&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' docker-compose  start core  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای اتصال به docker از دستور زیر استفاده مینماییم&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' (docker attach (docker name  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
این دستور باعث میشود شما به شل docker متصل شود. &lt;br /&gt;
 &lt;br /&gt;
برای نمایش لیست کانتینر های اجرای موجود از دستور زیر استفاده میکند&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' Docker ps   ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای نمایش تمام کانتینر ها از دستور زیراستفاده میشود.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  ''' Docker ps -a  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نکته مهم:&lt;br /&gt;
&lt;br /&gt;
برای خروج از سرور attach شده از کلید ctl + p + q استفاده نمایید. در صورت استفاده از کلید ctl+d با دستور exit ممکن است سرور stop شود. (در صورتی که کانتینر را با -d اجرا کرده باشید, stop نمیشود).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''نحوه راه اندازی سرور registry hub'''&lt;br /&gt;
&lt;br /&gt;
برای راه اندازی سرور ریجستری لوکال لازم است دستور زیر را وارد نماییم&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''docker run -d -p 5000:5000 --restart=always --name registry registry:2 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در این صورت سرور registry اجرا شده است.&lt;br /&gt;
برای استفاده از این سرور لازم است ایمیج مورد نظر تگ زده شود. &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker tag debian:ibs 5.202.129.64:5000/debian:IBSng '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور بالا image به نام debian:ibs را به صورت زیر تگ میزند&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''5.202.129.64:5000/debian:IBSng '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال در هر جایی که از این image استفاده شود, ایمیج مورد نظر دانلود میشود.برای مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''docker run 5.202.129.64:5000/debian:IBSng'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*'''تنظیمات سمت سرور''' :&lt;br /&gt;
برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم&lt;br /&gt;
برای راه اندازی docker registry ابتدا سرور debian و docker را بر روی سرور نصب می نماییم سپس برای اجرای برنامه ریجستری دستور زیر را اجرا میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker run -d -p 5000:5000 --restart=always --name registry registry:2 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور بالا image به نام registry:2 را دانلود و اجرا کرده. این ایمیج برای راه اندازی docker repository (docker reistry) استفاده میشود.&lt;br /&gt;
 &lt;br /&gt;
توجه نمایید که پورت ۵۰۰۰ در هاست باز است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*'''تگ گذاری ایمیج های ''' :&lt;br /&gt;
برای بارگذاری ایمیج های docker بر روی registry hub لازم است ابتدا باید ایمیج مورد نظر را تگ بزنیم. برای این کار از دستور زیر استفاده میکنیم:&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker tag debian:ibs 5.202.129.64:5000/debian:IBSng '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
این دستور به ایمیج به نام debian:ibs تگ به صورت 5.202.129.64:5000/debian:IBSng اختصاص میدهد. قسمت اول این تگ نشانی اینترنتی (IP) سرور است و قسمت دوم نشانی ایمیج اصلی تگ مورد است (debian). در نهایت IBSng که نشان دهنده نام ایمیج است, نشان داده شده است.&lt;br /&gt;
&lt;br /&gt;
:*'''تنظیمات سمت کلاینت ''' :&lt;br /&gt;
برای استفاده از ایمیج موجود در روی سرور لازم است به سادگی ایمیج موجود را با دستور زیر pull نمایید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker  pull 5.202.129.64:5000/debian:IBSng '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که سرور را بدون certificate کانفیگ کرده باشید, لازم است کانفیگ زیر را در فایل  vim /etc/docker/daemon.json وارد نماییم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;insecure-registries&amp;quot;: [&amp;quot;5.202.129.64:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و  سپس سرویس docker  را ریست نمایید&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 '''service docker restart '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این مورد باعث میشود که کلاینت شما بتواند به سرور docker registry بدون https متصل شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*'''عیب یابی شبکه''' :&lt;br /&gt;
&lt;br /&gt;
از آنجا که داکر از iptable برای اتصال به شبکه استفاده میکند. مهمترین دستور در عیب یابی شبکه چک کردن IP tables است.&lt;br /&gt;
دستور زیر برای چک کردن IPtables استفاده میشود.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ''' iptables -t nat -nvL '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی زیر مشاهده میشود&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''0   0 DNAT    udp  --  !br-600b9c816e99 *  0.0.0.0/0    0.0.0.0/0   udp dpt:1812 to:192.168.50.11:1812 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این نمونه از خروجی نشان میدهد که پروتکل udp از همه سورسها با پرت 1812 برای مقصد 192.168.50.11:1812 باز شده است.&lt;br /&gt;
 &lt;br /&gt;
خطایابی: در صورتی که پورت خاصی لازم دارید باید پرت باز باشد. در صورتی که لازم دارید پرت خاصی برای داکر باز نمایید. باید رول مورد نظر را در iptable وارد نمایید.&lt;br /&gt;
برای مثال اینجا پرت ۹۵۹۵ را برای دسترسی به یک کانتینر باز مینماییم.&lt;br /&gt;
 از دستور زیر استفاده نمایید.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''iptables -t nat -A POSTROUTING -s 192.168.20.10/32 -d 192.168.20.10/32 -p tcp -m tcp --dport 9595 -j MASQUERADE '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''iptables -t nat -A DOCKER ! -i br-600b9c816e99 -p udp -m udp --dport 9595 -j DNAT --to-destination 192.168.50.11:9595 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای ساده شدن کار میتواند ابتدا دستور زیر را وارد نمایید و سپس خروجی را ویرایش کرده و port خود را وارد نمایید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''iptables -t nat -S '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی به صورت زیر است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''-A POSTROUTING -s 192.168.50.11/32 -d 192.168.50.11/32 -p tcp -m tcp --dport 8080 -j MASQUERADE '''&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''-A DOCKER ! -i br-600b9c816e99 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.50.11:8080 '''&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال کافی است پورت ها را به پورت دلخواه وارد کرده و در ابتدای عبارت زیر را وارد کرده&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''“iptables -t nat” '''&lt;br /&gt;
 &amp;lt;/div&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
مثلا برای تبدیل پورت 9595 به 22 به دو دستور زیر را اجرا میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''iptables -t nat -A DOCKER ! -i br-b10d536b1f47 -p tcp -m tcp --dport 9595 -j DNAT --to-destination 192.168.50.11:22 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''iptables -t nat -A DOCKER ! -i br-b10d536b1f47 -p tcp -m tcp --dport 9595 -j DNAT --to-destination 192.168.50.11:22 '''&lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
:*'''عیب یابی containers''' :&lt;br /&gt;
&lt;br /&gt;
برای مشاهده status از دستور زیر استفاده میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker-compose ps '''&lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
پس از اجرای دستور زیر انتظار میرود که موارد شمابه زیر نمایش داده شود:&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
دستور نمایش میدهد که هر دو سرور به درستی up شده است و تمامی پرت ها به سمت کانتینر ها باز است. &lt;br /&gt;
در صورتی که یکی  از سرورها down یا stop است با دستور زیر میتوان آن را UP کرد&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker-compose start &amp;lt;server name&amp;gt; '''&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
که در آن &amp;lt;server name&amp;gt; نام سروری است که قرار است up شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*'''مشاهده docker log''' :&lt;br /&gt;
&lt;br /&gt;
برای مشاهده log هر داکر از  دستور زیر استفاده میشود.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''&amp;lt;docker logs &amp;lt;dockername '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همچنین درصورت استفاده از docker compose لازم است دستور زیر را وارد نمایید&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''docker-compose logs '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Siavash</name></author>	</entry>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php/Docker_Installation</id>
		<title>Docker Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/Docker_Installation"/>
				<updated>2017-07-08T10:12:58Z</updated>
		
		<summary type="html">&lt;p&gt;Siavash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IBSng]]&lt;br /&gt;
&amp;lt;font face =&amp;quot;Tahoma&amp;quot;&amp;gt; &lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;div dir=rtl lang=fa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Docker''' =&lt;br /&gt;
&lt;br /&gt;
==Difference between Docker and VM==&lt;br /&gt;
&lt;br /&gt;
Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است.&lt;br /&gt;
 &lt;br /&gt;
[[پرونده:D4.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در تصویر بالا هم در Docker و هم در ماشین مجازی دو عنصر Server، Host Os مشترک است.&lt;br /&gt;
در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوت‌ها از اینجا شروع  می‌شود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عامل‌های سنگین و پیچیده می‌توان نرم افزارها را روی آن نصب و تست کرد.&lt;br /&gt;
هرچند می‌توان نسخه کوچکی از نسخه‌های مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشین‌های مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز می‌توان به موارد زیر اشاره کرد:&lt;br /&gt;
ایجاد و حذف بسیار سریع Container ها&lt;br /&gt;
ریستارت و خاموش کردن بسیار سریعنحوه راه اندازی سرور registry hub&lt;br /&gt;
انتقال پذیری راحت و سبک&lt;br /&gt;
مدیریت منابع و ریسورس‌ها به صورت قدرتمند و متغیر&lt;br /&gt;
و …&lt;br /&gt;
&lt;br /&gt;
'''داکر Image:'''&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D5.png|center]]&lt;br /&gt;
&lt;br /&gt;
در داکر Image‌ها را پس از دریافت اجرا می‌کنیم. همانطور که در بالا می‌بینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Image‌های دیگر را نصب کرده ایم.&lt;br /&gt;
Image‌ها پس از پایان به حالت اولیه خود باز می‌گردند چون همانطور از نام آن‌ها مشخص است تنها یک تصویری از پکیج اصلی هستند. برای حذف تغییرات Image می‌توان حالت آن‌ها را با دستورات خاصی ذخیره کرد.&lt;br /&gt;
&lt;br /&gt;
'''Docker Hub چیست؟'''&lt;br /&gt;
&lt;br /&gt;
یک سرویس اشتراک گذاری تهیه شده توسط شرکت Docker است که شامل مخزنی از image‌های آماده برای Docker است. این مخزن حاوی ده‌ها هزار برنامه و سیستم عامل است که می‌توان به آن image‌هایی را هم اضافه کرد. توجه کنید که شرکت پارس پویش دارای hub مخصوص به خود است.&lt;br /&gt;
&lt;br /&gt;
'''Docker Container:'''&lt;br /&gt;
&lt;br /&gt;
در واقع می‌توان گفت Container ظرفی است که Image‌ها را در آن اجرا می‌کنند. Container‌ها از روی Image‌ها ایجاد می‌شوند و به وظایف خود عمل می‌کنند. مثلا فرض کنید از یک Centos چند Container می‌سازیم و در هر کدام تغییرات متفاوتی اعمال می‌کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== debian Installation==&lt;br /&gt;
 &lt;br /&gt;
نصب لینکوس نسخه Debian به دو صورت انجام میگیرید و تفاوت این دو روش در تفاوت پارتیشن بندی هاست .&lt;br /&gt;
&lt;br /&gt;
===debian Installation for normal IBSng Installation===&lt;br /&gt;
&lt;br /&gt;
در روش اول و برای نصب سرویس IBSng به صورت معمول پارتیشن بندی به صورت زیر میباشد :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /boot ex4 1G&lt;br /&gt;
 /ext4 50G &lt;br /&gt;
 /var xfs 120G&lt;br /&gt;
 /var/log/IBSng xfs 150G&lt;br /&gt;
 /var/lib/postgresql xfs 500G&lt;br /&gt;
 swap 3G&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از نصب سیستم عامل به روش زیر سرویس IBSng را نصب میکنیم :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Install IBSng'''&lt;br /&gt;
&lt;br /&gt;
جهت نصب تهیه موارد زیر الزامیست:&lt;br /&gt;
*:قفل سخت افزاری (USB) متصل شده به سرور&lt;br /&gt;
&lt;br /&gt;
*:امکان اتصال سرور به اینترنت&lt;br /&gt;
&lt;br /&gt;
لازم به ذکر است که سرویس IBSng بر روی نسخه ۶۴ بیتی سیستم عامل Debian 8 wheezy نصب و راه اندازی می شود.&lt;br /&gt;
پس از نصب سیستم عامل Debian با توجه به نیازمندیهای موجود، دستورات زیر را وارد می کنیم:&lt;br /&gt;
در ابتدا دایرکتوری زیر را ساخته و وارد آن شوید:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  '''root@debian:# cd /home '''&lt;br /&gt;
  '''root@debian:# mkdir Download '''&lt;br /&gt;
  '''root@debian:# cd Download '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
استفاده از دستور زیر DNS سرور را در دبیان مشخص نمایید(میتوانید به جای آی پی 4.2.2.4، DNS سرور دلخواه خود را تنظیم نمایید):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ''' root@debian:/home/Download/# echo “nameserver 4.2.2.4” &amp;gt;&amp;gt; /etc/resolv.conf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به منظور نصب و آپدیت پکیجها URL مخزن بسته های دبیان را در فایل زیر تنظیم نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  '''root@debian:/home/Download/# echo “deb http://ftp.debian.org/debian jessie main” &amp;gt; /etc/apt/sources.list'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با استفاده از دستور زیر لیست بسته ها را آپدیت نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ''' root@debian:/home/Download/# apt-get update  '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با استفاده از فرمان apt-get بسته های اولیه را نصب نمایید:&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 ''' root@debian:/home/Download/# apt-get install dialog screen aptitude locales -y '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با استفاده از دستور زیر متغیر محیطی زیر را تنظیم نمایید تا زبان بومی سرور به صورت موقت به زبان انگلیسی تغییر پیدا کند:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ''' root@debian:/home/Download/# wget http://pkg.parspooyesh.com/narbeh/config.sh&amp;quot; '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در ادامه با استفاده از کلیدهای مکان نما بر روی گزینه UTF-8  en_US.UTF-8 رفته سپس با استفاده از کلید space آن را انتخاب نمایید:&lt;br /&gt;
&lt;br /&gt;
[[Image:1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
سپس کلید Enter را فشار دهید. در منوی بعد  با استفاده از کلیدهای مکان نماen_US.UTF-8  را انتخاب کرده و سپس کلید Enter را فشار دهید:&lt;br /&gt;
&lt;br /&gt;
[[Image:20.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
پس از اجرای دستورات بالا باقی مراحل نصب توسط ابزار ibsng-tools انجام می شود.&lt;br /&gt;
جهت اجرای ابزار دستور زیر را اجرا می کنیم:&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 ''' root@debian:/home/Download# ibsng-tools  '''&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
جهت نصب IBSng  وارد بخش IBSng Operations‌ می شویم:&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D21.png|center]]&lt;br /&gt;
&lt;br /&gt;
بر روی Install رفته و کلید Enter را فشار میدهیم:&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D22.png|center]]&lt;br /&gt;
&lt;br /&gt;
منوی ذیل تمامی مواردی را نمایش می‌دهد که باید همگی به ترتیب از بالا به پایین انجام شوند.&lt;br /&gt;
به همین منظور تمامی بخش‌ها را به ترتیب اجرا می کنیم:&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D20.png|center]]&lt;br /&gt;
&lt;br /&gt;
با فشرن یک دکمه  به منوی اصلی نصب بازمیگردیم، با رفتن بر روی Cancel و فشردن دکمه Enter از برنامه خارج شوید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''root@debian:/home/Download# /etc/init.d/IBSng restart '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از استارت شدن سرویس از پنجره ابزار ibsng-tools و از service tab : &lt;br /&gt;
&lt;br /&gt;
[[پرونده:D25.png|center]]&lt;br /&gt;
&lt;br /&gt;
گزینه های logrotate ,backup و runlevel را اجرا میکنیم :&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D26.png|center]]&lt;br /&gt;
&lt;br /&gt;
اکنون برای استفاده و انجام تنظیمات، آدرس زیر را در مرورگر خود وارد می کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''http://[IP Server]/IBSng/admin '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== debian Installation for IBSng Installation via Docker ===&lt;br /&gt;
&lt;br /&gt;
در روش دوم و برای نصب سرویس  IBSng از طریق نصب Docker پارتیشن بندی ها به صورت زیر میباشد :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /boot ext4 1G&lt;br /&gt;
 /ext4 50G &lt;br /&gt;
 /var/lib/docker ext4 500G&lt;br /&gt;
 swap 3G&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از پارتیشن بندی به روش فوق, docker را نصب نمایید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Docker Installation====&lt;br /&gt;
&lt;br /&gt;
نصب Docker به دو صورت انجام میگیرد :&lt;br /&gt;
&lt;br /&gt;
1.  via IBSng-tools&lt;br /&gt;
&lt;br /&gt;
2. via Command-Line&lt;br /&gt;
 &lt;br /&gt;
=====Docker Installation via IBSng-tools=====&lt;br /&gt;
&lt;br /&gt;
1. برای نصب  Docker در IBSng-tools مراحل زیر را طی میکنیم :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D7.png|center]]&lt;br /&gt;
&lt;br /&gt;
گزینه (Docker(new را انتخاب میکنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D8.png|center]]&lt;br /&gt;
&lt;br /&gt;
در این پنجره به ترتیب گزینه های 1 , 2 , 4 و 5 را اجرا میکنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
حال برای اجرای container‌دستور زیر را  در دایرکتوری  /docker/dockerComposeCore وارد میکنیم &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''  docker-compose up -d '''  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اکنون برای استفاده و انجام تنظیمات، آدرس زیر را در مرورگر خود وارد می کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''http://[IP Server]/IBSng/admin '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D9.png|center]]&lt;br /&gt;
&lt;br /&gt;
برای چک کردن بالا بودن از دستور زیر استفاده کنید :&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 ''' Docker-compose ps'''  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.حال کافی است لایسنس را به روش عادی به روز نماییم.&lt;br /&gt;
&lt;br /&gt;
=====Docker Installation via Command-Line=====&lt;br /&gt;
&lt;br /&gt;
2. برای نصب  Docker از طریق command-line مراحل زیر را طی میکنیم :&lt;br /&gt;
&lt;br /&gt;
برای نصب لازم است ابتدا package های مورد نیاز را نصب کنیم. برای این کار دستور زیر را وارد میکنیم:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
 '''apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common  '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال کلید رسمی منتشر شده از سایت docker‌ را اضافه میکنیم.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''Add Docker’s official GPG key: '''&lt;br /&gt;
 '''curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - '''&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
حال repository مورد نیاز برای نصب docker را اضافه مینماییم.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''add-apt-repository &amp;quot;deb [arch=amd64] https://download.docker.com/linux/debian  $(lsb_release -cs) stable&amp;quot; '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستورات زیرریپوزیتوری  سیستم را به روز رسانی میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''apt-get update '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستورات زیرdocker را نصب میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''apt-get install docker-ce '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال میتوانید docker-compose را نصب نمایید&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` &amp;gt; /usr/local/bin/docker- '''compose&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''chmod +x /usr/local/bin/docker-compose '''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
دانلود ایمیج از parspooyesh hub&lt;br /&gt;
 &lt;br /&gt;
تنظیمات سرور&lt;br /&gt;
همچنین فایل زیر را باز نمایید /etc/docker/daemon.json و کد زیر را در آن اضافه نمایید&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''{&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;insecure-registries&amp;quot;: [&amp;quot;5.202.129.64:5000&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
 } '''&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
استفاده از docker-compose برای اجرای docker ibs&lt;br /&gt;
در فولدر home یوزر خود فولدری به نام dockerCompose ایجاد نمایید. و فایلی به نام docker-compose.yml در آن ایجاد نمایید&lt;br /&gt;
در این فایل کد زیر را وارد کنید&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 version: '2'&lt;br /&gt;
 services:&lt;br /&gt;
 #================= IBSng Core =================&lt;br /&gt;
 Core:&lt;br /&gt;
  image: &amp;quot;78.47.28.30:5000/debian:IBSng&amp;quot;&lt;br /&gt;
  container_name: IBSng_Server&lt;br /&gt;
  hostname: IBSng_Server&lt;br /&gt;
  ports:&lt;br /&gt;
   - &amp;quot;8080:8080&amp;quot;&lt;br /&gt;
   - &amp;quot;6379:6379&amp;quot;&lt;br /&gt;
   - &amp;quot;8000:8000&amp;quot;&lt;br /&gt;
   - &amp;quot;1812:1812/udp&amp;quot;&lt;br /&gt;
   - &amp;quot;1813:1813/udp&amp;quot;&lt;br /&gt;
   - &amp;quot;1235:1235&amp;quot;&lt;br /&gt;
   - &amp;quot;1237:1237&amp;quot;&lt;br /&gt;
   - &amp;quot;8001:8001&amp;quot;&lt;br /&gt;
   - &amp;quot;80:80&amp;quot;&lt;br /&gt;
   - &amp;quot;1700:1700/udp&amp;quot;&lt;br /&gt;
   - &amp;quot;5432:5432&amp;quot;&lt;br /&gt;
   - &amp;quot;27017:27017&amp;quot;&lt;br /&gt;
   - &amp;quot;9596:22&amp;quot;&lt;br /&gt;
   - &amp;quot;88:88&amp;quot;&lt;br /&gt;
   - &amp;quot;389:389&amp;quot;&lt;br /&gt;
  volumes:&lt;br /&gt;
   - /dev/mem:/dev/mem&lt;br /&gt;
   - etc:/etc/&lt;br /&gt;
   - var:/var/&lt;br /&gt;
   - usr:/usr/&lt;br /&gt;
  stdin_open: true&lt;br /&gt;
  tty: true&lt;br /&gt;
  privileged: true&lt;br /&gt;
  restart: always&lt;br /&gt;
  command: sed -i &amp;quot;5i listen_addresses = '*'&amp;quot; /etc/postgresql/9.4/main/postgresql.conf&lt;br /&gt;
  command: /etc/init.d/cron restart&lt;br /&gt;
  command: /etc/init.d/redis-server restart&lt;br /&gt;
  command: /etc/init.d/postgresql restart&lt;br /&gt;
  command: /etc/init.d/apache2 restart&lt;br /&gt;
  command: /etc/init.d/rsyslog restart&lt;br /&gt;
  command: /etc/init.d/ssh restart&lt;br /&gt;
  command: /etc/init.d/IBSng restart&lt;br /&gt;
  command: /bin/bash&lt;br /&gt;
   networks:&lt;br /&gt;
   IBSng_network:&lt;br /&gt;
    ipv4_address: 192.168.50.11&lt;br /&gt;
  #================= Network Configuration =================&lt;br /&gt;
 networks:&lt;br /&gt;
 IBSng_network:&lt;br /&gt;
  driver: bridge&lt;br /&gt;
  ipam:&lt;br /&gt;
   driver: default&lt;br /&gt;
   config:&lt;br /&gt;
   - subnet: 192.168.50.0/24&lt;br /&gt;
     gateway: 192.168.50.1&lt;br /&gt;
 volumes:&lt;br /&gt;
 etc:&lt;br /&gt;
 var:&lt;br /&gt;
 usr:&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
حال برای اجرای container‌دستور زیر را وارد میکنیم&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 ''' docker-compose up -d  '''&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
این دستور باید containerهای تعریف شده را اجرا بنماید.&lt;br /&gt;
 &lt;br /&gt;
برای چک کردن up شدن از دستور زیر استفاده کنید&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
 '''Docker-compose ps '''&lt;br /&gt;
 &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.حال کافی است لایسنس را به روش عادی به روز نماییم.&lt;/div&gt;</summary>
		<author><name>Siavash</name></author>	</entry>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php/PCEF</id>
		<title>PCEF</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/PCEF"/>
				<updated>2017-07-05T10:38:39Z</updated>
		
		<summary type="html">&lt;p&gt;Behnaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IBSng Manuals Dialup]]&lt;br /&gt;
[[Category:IBSng Manuals ADSL]]&lt;br /&gt;
[[Category:IBSng Manuals VoIP]]&lt;br /&gt;
[[Category:IBSng Manuals Lan Accounting]]&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;div dir=rtl lang=fa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PCEF/PCRF service==&lt;br /&gt;
&amp;lt;font face =&amp;quot;Tahoma&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''مقدمه'''&lt;br /&gt;
&lt;br /&gt;
امروزه شبکه‌های ارتباطات ثابت مانند ADSL در حال گسترش هستند و ظرفیت آن‌ها روز به روز افزایش می یابد. این امر سبب می‌شود تا این شبکه‌ها با مشکلاتی مانند افزایش تراکنش ها به سبب افزایش روز افزون مشترکین، افزایش  تنوع سرویس های قابل ارایه به مشترکین به سبب رقابتی بودن بازار و نیاز به توسعه زیرساخت مواجه باشند که در صورت عدم استفاده از راهکارهای صحیح و استاندارد، این مشکلات پس از مدتی باعث توقف ارایه سرویس مناسب و در نتیجه از رفتن سیستم خواهند شد. از طرفی شبکه‌های موبایل به دلیل ضریب نفوذ بالا و فراگیری بیشتری که  نسبت به شبکه‌های ثابت دارند، پیشتر با این مشکلات مواجه شده‌اند و با ارایه چهارچوب‌های صحیح و استاندارد مشکلات ذکر شده را به نحوی حل کرده‌اند. به همین دلیل می‌توان از راهکارهای ارایه شده در شبکه‌های موبایل جهت رفع مشکلات شبکه‌های ثابت نیز بهره برد تنها کافیست تطبیق پذیری ای بین استاندارد های شبکه‌های موبایل و نیازمندی های شبکه‌های ثابت مانند ADLS برقرار کرد تا مشکلات موجود این شبکه‌ها نیز به روشی صحیح و استاندار که قابلیت توسعه پذیری را نیز داراست، رفع گردند.&lt;br /&gt;
&lt;br /&gt;
===استاندارد 3GPP===&lt;br /&gt;
&lt;br /&gt;
استاندارد 3GPP مربوط به شبکه‌های موبایل است که توسعه نسل های متفاوت این شبکه‌ها مانند 3G، 4G، LTE و … را به راحتی ممکن می‌کند و استانداردهای مربوط به  اجزای هسته شبکه (Core Network) آن در شبکه‌های ثابت نیز قابل استفاده است.&lt;br /&gt;
&lt;br /&gt;
===PCRF و PCEF ===&lt;br /&gt;
&lt;br /&gt;
یکی از نیازمندی های شبکه‌های ارتباط ثابت، اعمال سیاست‌های کنترلی شبکه برای هر یک از مشترکین این نوع شبکه است. این نیازمندی ضرورت وجود دو آلمان در شبکه را ایجاد می کند:&lt;br /&gt;
 یک المان که به ترافیک مشترک دسترسی مستقیم دارد و می‌تواند سیاست هایی مانند تعریف پهنای باند، دسترسی به مقاصد مشترک و &lt;br /&gt;
 تفکیک ترافیک مصرفی را روی ارتباط هر از مشترکین اعمال کند که به آن PCEF گفته می‌شود &lt;br /&gt;
&lt;br /&gt;
 یک المان که با سیستم شارژینگ در ارتباط است و با توجه به وضعیت مشترک در سیستم شارژینگ وظیفه تعریف سیاست‌های کنترلی و &lt;br /&gt;
 اعلام آن به PCEF را دارد که به آن PCRF گفته می‌شود&lt;br /&gt;
&lt;br /&gt;
این دو المان بنا بر استاندارد 3GPP از رابط های پروتکل Diameter جهت ارتباط با سامانه شارژینگ و اکانتینگ استفاده می‌کنند و به دلیل پیچیدگی هایی که درعملکرد هر یک وجود دارند اقلب توسط شرکت ها به صورت مجزا طراحی و تولید می‌شوند و هر شرکت بنا به تکنولوژی خود تمرکز خود را روی تولید یکی و یا هردو معطوف می دارد.&lt;br /&gt;
شرکت پارس پویش به عنوان تولید کننده نرم‌افزار های شارژینگ و اکانتینگ نسبت به تولید نرم‌افزار PCRF اقدام نمود است که قادر است با استفاده از رابط های استاندارد تعریف شده در استاندارد 3GPP به راحتی با سامانه های دیگر مانند PCEF و DPI شرکت های دیگر ارتباط برقرار نماید و وظیفه اعلام سیاست‌ها به هر نرم‌افزار PCEF/DPI را به راحتی انجام دهد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== محصول PCRF شرکت پارس پویش سازگار با محصول PCEF شرکت دوران ===&lt;br /&gt;
پیرو مصوبه ۲۳۷ کمیسیون تنظیم مقررات ارتباطات در خرداد ماه ۱۳۹۵ که طی آن تمامی شرکت های ارایه دهنده خدمات اینترنتی موظف به تفکیک اکانتینگ ترافیک مصرفی مشترکین خود شدند. به همین دلیل شرکت پارس پویش علاوه برا راهکارهایی که برای این نیازمندی ارایه کرده است، جهت کاهش هزینه برای شرکت های ارایه دهنده خدمات اینترنتی و پشتیبانی از شرکت های داخلی، اقدام به برقراری ارتباط بین نرم‌افزار اکانتینگ IBSng و نرم افزارهای داخلی ای نمود که قادر به تفکیک ترافیک هستند. محصول PCEF شرکت داده پردازی دوران یکی از این محصولات است که با نرم‌افزار اکانتینگ IBSng شرکت پارس پویش یکپارچه شده است.&lt;br /&gt;
&lt;br /&gt;
===امکانات===&lt;br /&gt;
&lt;br /&gt;
نرم‌افزار PCEF محصول شرکت داده پردازی دوران  شامل امکانات زیر می باشد:&lt;br /&gt;
:*تعریف سرویس ها به صورت ثابت (Static)&lt;br /&gt;
:*شمارش تفکیک شده میزان مصرف مشترکین در قالب سرویس های از پیش تعریف شده&lt;br /&gt;
:*فعال و غیر فعال کردن هر یک از سرویس های فعال شده برای هر یک از مشترکین&lt;br /&gt;
:*ارایه میزان مصرف تفکیک شده ی مشترکین به نرم‌افزار اکانتینگ با استفاده از واسط Gy پروتکل Diameter&lt;br /&gt;
:*دریافت اطلاعات مورد نیاز مشترکین از نرم‌افزار PCRF شرکت پارس پویش فن آور  با استفاده از پروتکل Radius&lt;br /&gt;
( سرویس به مجموعه تعاریفی گفته می‌شود که در لایه چهار معماری مرجع OSI قابل انجام بوده و تفکیک اکانتینگ بر اساس آن‌ها انجام می شود.)&lt;br /&gt;
&lt;br /&gt;
به توجه به این امکانات و مدت زمان محدود جهت یکپارچه سازی PCEF با محصول PCRF شرکت پارس پویش، نسخه ارایه شده PCRF شرکت پارس پویش با قابلیت‌های زیر ارایه شد: &lt;br /&gt;
&lt;br /&gt;
- ویژگی user awareness و اعلام سیاست های کنترلی با استفاده از پروتکل RADIUS به نرم‌افزار PCEF شرکت دوران&lt;br /&gt;
&lt;br /&gt;
- دریافت تفکیک شده میزان مصرف هر مشترک از نرم‌افزار PCEF شرکت دوران با استفاده از رابط Gy پروتکل Diameter&lt;br /&gt;
&lt;br /&gt;
- دریافت اطلاعات مشترکین از سامانه شارژینگ IBSng محصول شرکت پارس پویش جهت پردازش و اعلام به PCEF&lt;br /&gt;
&lt;br /&gt;
- اعلام تفکیک شده میزان مصرف مشترکین به سامانه شارژینگ IBSng محصول شرکت پارس پویش&lt;br /&gt;
&lt;br /&gt;
با این توضیح هر شرکت ارایه دهنده خدمات اینترنتی قادر خواهد بود تا پروژه تفکیک اکانتینگ ترافیک مصرفی مشترکین خود را با معماری زیر پیاده‌سازی نماید:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
در این معماری، محصول PCEF شرکت دوران در مسیر ترافیک مشترکین ADLS قرار می گیرد و ضمن تفکیک ترافیک مشترکین و اعلام جداگانه آن ها به اکانتنیگ IBSng برای هر مشترک، سرویس هایی که  توسط اکانتینگ IBSng به آن اعلام میشود را نیز بر اتصال مشترک اعمال می کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===تعاریف ===&lt;br /&gt;
&lt;br /&gt;
===='''CCR'''====&lt;br /&gt;
&lt;br /&gt;
به درخواست هایی که روی رابط Gy پروتکل Diameter از PCEF به PCRF ارسال می شود CCR یا Credit Control Request گفته می شود و شامل اطلاعات تفکیک شده ی مصرف مشترک است.&lt;br /&gt;
&lt;br /&gt;
به طور کلی CCR انواع زیر را داراست:&lt;br /&gt;
&lt;br /&gt;
1) '''INITIAL_REQUEST  (CC-Request-Type ID: 1)'''&lt;br /&gt;
&lt;br /&gt;
      An Initial request is used to initiate a credit-control session, and contains credit control information that is relevant to the &lt;br /&gt;
 initiation.&lt;br /&gt;
&lt;br /&gt;
2) '''UPDATE_REQUEST   (CC-Request-Type ID: 2)'''&lt;br /&gt;
&lt;br /&gt;
      An Update request contains credit-control information for an existing credit-control session.  Update credit-control requests SHOULD be &lt;br /&gt;
 sent every time a credit-control re-authorization is needed at the expiry of the allocated quota or validity time. Further, additional &lt;br /&gt;
 service-&lt;br /&gt;
 specific events MAY trigger a spontaneous Update request.&lt;br /&gt;
&lt;br /&gt;
3)'''TERMINATION_REQUEST   (CC-Request-Type ID: 3)'''&lt;br /&gt;
&lt;br /&gt;
      A Termination request is sent to terminate a credit-control session and contains credit-control information relevant to the existing &lt;br /&gt;
 session.&lt;br /&gt;
&lt;br /&gt;
===='''CCA'''====&lt;br /&gt;
&lt;br /&gt;
به پاسخ هایی که اکانتینگ IBSng به ازای هر CCR  به PCEF ارسال می کند CCA  یا Credit Control Answer گفته می شود.&lt;br /&gt;
&lt;br /&gt;
===='''User-Awareness'''====&lt;br /&gt;
&lt;br /&gt;
به فرآیند اعلام زمان اتصال و قطع اتصال مشترک و نیز اعلام سرویس هایی که برای یک مشترک بایستی روی PCEF فعال گردد گفته می شود که توسط اکانتینگ IBSng کنترل می شود. در این فرآیند هنگامی که یک کاربر به RAS متصل می گردد ماژول PCRF اکانتینگ IBSng ، اتصال کاربر، آدرس IP کاربر و سرویس هایی که بایستی برای او روی PCEF فعال گردد را روی پروتکل RADIUS به PCEF اطلاع می دهد و هنگام قطع اتصال نیز این ماژول اتمام سرویس برای این مشترک را به PCEF اعلام می دارد.&lt;br /&gt;
&lt;br /&gt;
===='''Service'''====&lt;br /&gt;
&lt;br /&gt;
به مجموعه تعاریفی گفته می شود که تفکیک ترافیک مشترک و میزان پهنای باند او روی هر سرویس را ممکن می سازد. این تعاریف به صورت Static روی PCEF انجام می شود و نام هر سرویس تعریف شده به صورت Manual روی اکانتینگ IBSng اضافه می شود.&lt;br /&gt;
&lt;br /&gt;
===نیازمندی ها===&lt;br /&gt;
&lt;br /&gt;
====سخت افزار====&lt;br /&gt;
&lt;br /&gt;
با توجه به میزان منابعی که محصول PCRF شرکت پارس پویش مصرف می کند تا سقف ۲۰۰،۰۰۰ کاربر آنلاین همزمان، می توان این محصول را روی سرور Core اکانتینگ IBSng نصب کرد به همین دلیل تا این سقف نیاز به سخت افزار جداگانه برای این محصول وجود ندارد.&lt;br /&gt;
&lt;br /&gt;
جهت اطلاع از سخت افزار مورد نیاز برای PCEF  لطفا به مستندات محصول PCEF شرکت دوران مراجعه نمایید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====نرم افزار====&lt;br /&gt;
&lt;br /&gt;
جهت استفاده از راهکار تفکیک اکانتینگ و ماژولPCRF سازگار با محصول PCEF شرکت داده پردازی دوران تنها نیاز است تا نرم افزار اکانتینگ IBSng به نسخه C_Diameter و تگ 361 و بالاتر بروزرسانی شود.&lt;br /&gt;
&lt;br /&gt;
====اطلاعات انتقالی بین PCEF  و PCRF====&lt;br /&gt;
&lt;br /&gt;
در فرآیند تفکیک اکانتینگ مصرفی مشترکین ADSL با فرض اینکه برای هر کاربر n سرویس تعریف شده بوده، تعداد سرویس های فعال در اکانتینگ IBSng به صورت n+1 خواهد بود. به طور مثال اگر برای کاربردو سرویس اینترنت و اینترانت تعریف شده باشد در اکانتینگ IBSng سه سرویس برای کاربر فعال خواهد بود که میزان مصرف سرویس اینترنت و اینترانت را PCEF به صورت تفکیک شده نمایش می هد و سرویس سوم میزان مصرف کلی است که RAS به طور جداگانه برای اکانتینگ IBSng ارسال می کند.&lt;br /&gt;
&lt;br /&gt;
در تصویر زیرسرویس Master اطلاعات است که RAS به طور کلی برای اکانتینگ IBSng ارسال می کند و شامل مجموعه مصرف مشترک بدون هیچگونه تفکیک ترافیک است. دو زیر سرویس rating-group-101 و rating-group-100 نیز میزان مصرف تفکیک شده ی مشترک (به طور مثال rating-group-100 برای میزان ترافیک اینترنت و rating-group-101 برای میزان ترافیک اینترانت) است که توسط PCEF به صورت تفکیک شده محاسبه و به اکانتینگ IBSng اعلام شده است. طبیعی است در پایان اتصال کاربر میزان مصرف اعلام شده توسط RAS بایستی برابر با مجموعه میزان تفکیک شده توسط PCEF باشد. لازم به ذکر است بسته به نوع شمارش پکت توسط RAS و PCEF ،ممکن است عدد اعلام شده توسط RAS مقداری با مجموعه ترافیک محاسبه شده توسط PCEF فاصله داشته باشد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
تصویر زیر تمام فرآیند تفکیک اکانتینگ ترافیک مصرفی مشترک را نمایش میدهد:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-3.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
'''توضیح پیام ها'''&lt;br /&gt;
&lt;br /&gt;
۱- کاربردرخواست اتصال به شبکه را ارسال می کند&lt;br /&gt;
&lt;br /&gt;
۲- RAS در قالب یک Access-Request درخواست کاربر را به IBSng اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۳- IBSng پس از احراز هویت کاربر اجازه اتصال کاربر به شبکه را صادر می کند (Access-Accept)&lt;br /&gt;
&lt;br /&gt;
۴-RAS پس از اتصال کاربردر قالب یک درخواست اکانتینگ Accounting-Request و از نوع Start زمان و اطلاعات اتصال کاربر را به IBSng اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۵- IBSng به محض دریافت Start از RAS یک درخواست user-awareness به PCEF ارسال کرده ، به PCEF زمان اتصال کاربر و سرویس هایی که بایستی برای کاربر فعال گردد را اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۶- PCEF به محض اطلاع از اتصال کاربر، سرویس های اعلام شده را برای کاربر فعال می کند و لیست سرویس های فعال شده و شروع تفکیک ترافیک را به IBSng اعلام می کند. این درخواست در قالب پروتکل Diameter و رابط Gy ارسال می شود. نوع درخواست CCA در این بخش Initial_Request است &lt;br /&gt;
&lt;br /&gt;
۷- IBSng پس از دریافت CCR نوع 1 یک CCA به PCEF ارسال می کند و زمان ارسال CCR بعدی (CC-Time) برای هر سرویس به PCEF اعلام می کند. همچنین ارسال CC-Total-Octets و re-authorize سرویس در این مرحله کنترل می شود. (جهت اطلاعات بیشتر می توانید به RFC 4006 مراجعه نمایید.)&lt;br /&gt;
&lt;br /&gt;
۸- PCEF آپدیت میزان مصرف کاربر(CCR ) را پس از اتمام زمان اعلام شده (CC-Time) به IBSng اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۹- IBSng پس از دریافت CCR پاسخ درخواست(CCA) را ارسال می کند&lt;br /&gt;
&lt;br /&gt;
۱۰- PCEF آپدیت میزان مصرف کاربر(CCR ) را پس از اتمام زمان اعلام شده (CC-Time) به IBSng اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۱۱- IBSng پس از دریافت CCR پاسخ درخواست(CCA) را ارسال می کند&lt;br /&gt;
&lt;br /&gt;
۱۲- PCEF آپدیت میزان مصرف کاربر(CCR ) را پس از اتمام زمان اعلام شده (CC-Time) به IBSng اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۱۳- IBSng پس از دریافت CCR پاسخ درخواست(CCA) را ارسال می کند&lt;br /&gt;
&lt;br /&gt;
۱۴- کاربر درخواست قطع اتصال را برای RAS میفرستد&lt;br /&gt;
&lt;br /&gt;
۱۵- RAS پس از قطع اتصال کاربر، قطع اتصال را در قالب( Accounting-Request Stop) برای اکانتیگ ارسال می کند&lt;br /&gt;
&lt;br /&gt;
۱۶- IBSng پس از قطع اتصال کاربر یک درخوایت User-Awareness برای PCEF ارسال می کند و زمان قطع اتصال را به PCEF اعلام می کند&lt;br /&gt;
&lt;br /&gt;
۱۷- PCEF پس از اطلاع از قطع اتصال کاربر شمارش تفکیک شده را متوقف و یک CCR از نوع 3 برای اکانتینگ ارسال می کند. در این بخش میزان تفکیک شده مصرف کاربر در اکانتینگ برای این اتصال ثبت می شود.&lt;br /&gt;
&lt;br /&gt;
 نکته: در فاصله بین پیام های ۴ تا ۱۵ RAS طبق پروتکل AAA میزان مصرف کلی کاربر را در قالب Accounting-Request Alive)) همچنان برای اکانتینگ &lt;br /&gt;
 ارسال می کند که مقادیر آن در بخش Master نمایش داده می شود.&lt;br /&gt;
&lt;br /&gt;
== تنظیم سرویس در پنل IBSng ==&lt;br /&gt;
&lt;br /&gt;
تفکیک ترافیک با استفاده از اکانتینگ IBSng و PCEF  شرکت داده پردازی دوران به صورت کلی شامل مراجل زیر می باشد:&lt;br /&gt;
&lt;br /&gt;
1)افزودن PCEF در پنل مدیریتی اگانتینگ&lt;br /&gt;
&lt;br /&gt;
2)برقراری ارتباط بین RAS و PCEF   در پنل مدیریتی اکانتینگ IBSng&lt;br /&gt;
&lt;br /&gt;
3)افزودن سرویس های تعریف شده در PCEF به اکانتینگ&lt;br /&gt;
&lt;br /&gt;
4)تنظیم شارژها&lt;br /&gt;
&lt;br /&gt;
===افزودن PCEF در پنل مدیریتی اکانتینگ IBSng ===&lt;br /&gt;
&lt;br /&gt;
برای افزودن PCEF وارد بخش Settings پنل مدیریتی IBSng شده سپس روی Add new RAS  کلیک می کنیم&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-4.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در این صفحه PCEF را که پیشتر در شبکه نصب شده است و ترافیک مشترکین از روی آن عبور می کند را اضافه می کنیم. لازم به ذکر است که اکانتینگ IBSng بایستی بتواند با PCEF با یک Management IP در ارتباط باشد:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-5.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
لازم به ذکر است عبارت Radius Secret بایستی روی PCEF و IBSng یکسان باشد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-6.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
پارامتر های مهم این صفحه به صورت زیر بایستی تنظیم شود:&lt;br /&gt;
&lt;br /&gt;
'''Attached_pcef_ras_id''': بایستی برای دستگاه PCEF همراه -1 تنظیم شود.&lt;br /&gt;
&lt;br /&gt;
'''Diameter_max_reauthorized_minutes''' بایستی برابر با update_accounting_interval باشد.&lt;br /&gt;
&lt;br /&gt;
'''Update_accounting_interval''' این عدد مقداری است که اکانتینگ انتظار دارد PCEF آپدیت میزان مصرف مشترک را بر اساس این زمان ارسال کند و آن را در بخش CC-Time در هر CCA به PCEF اعلام می کند. واحد این پارامتر دقیقه است.&lt;br /&gt;
&lt;br /&gt;
===برقراری ارتباط بین RAS و PCEF  در پنل مدیریتی اکانتینگ IBSng===&lt;br /&gt;
&lt;br /&gt;
برقراری ارتباط بین RAS و PCEF در پنل مدیریتی اکانتینگ IBSng به این معنی است که تفکیک ترافیک یک RAS را کدام بخش از شبکه انجام و اطلاعات تفکیک شده مصرف را به اکانتنیگ IBSng اعلام می کند. زمانیکه حجم ترافیک شبکه بالا باشد شاید نتوان تمام ترافیک را از یک PCEF عبور داد و لازم باشد ترافیک برخی از RAS ها را از روی PCEF جداگانه ای عبور داد. آنچه مهم است تنظیم PCEF ی است که وظیفه تفکیک ترافیک یک RAS را دارد.&lt;br /&gt;
&lt;br /&gt;
برای این منظور از قسمت RAS List پنل IBSng ابتدا ID دستگاه PCEF را مشخص می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-7.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس وارد بخش تنظیمات RAS ی می شویم که ترافیک آن یا از این PCEF عبور می کند یا این PCEF میزان مصرف تفکیک شده را به اکانتینگ IBSng اعلام می کند و ID این PCEF را در بخش attached_pcef_ras_id وارد می کنیم:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-8.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===افزودن سرویس های تعریف شده در PCEF به اکانتینگ===&lt;br /&gt;
&lt;br /&gt;
از آنجایی که تعریف سرویس در PCEF انجام می گیرد لازم است نام و شماره سرویس تعریف شده جهت استفاده در شارژها ابتدا به اکانتینگ IBSng معرفی شود تا بتوان از آن ها در تعاریف شارژ استفاده کرد. هر سرویس در PCEF به طور کلی شامل سه پارامتر است:&lt;br /&gt;
&lt;br /&gt;
1)'''Name''': که بایستی بین PCEF  و اکانتینگ یکسان باشد&lt;br /&gt;
&lt;br /&gt;
2) '''Charging''': که عددی است که بخش User-Awareness برای فعال و غیر فعال نمودن سرویس های از آن استفاده می شود و با پارامتر connect-info به PCEF اعلام میشود&lt;br /&gt;
&lt;br /&gt;
3) '''QOS''': که کیفیت سرویس تعریف شده را تعیین می کند و در بخش User-Awareness  به ازاری هر سرویس، به PCEF تحت پارامتر connect-info اعلام می گردد.&lt;br /&gt;
جهت اطلاعات بیشتر در مورد سه پارامتر فوق به مستندات PCEF مراجعه کنید&lt;br /&gt;
&lt;br /&gt;
برای انجام تعاریف اولیه وارد بخش Settings -&amp;gt; Advance Config می شویم:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-9.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در بخش Charging نیز شماره Charging-Group هایی که پیشتر در PCEF تعریف شده است را وارد    می کنیم. در این مثال دو Charging-Group تعریف شده است:&lt;br /&gt;
&lt;br /&gt;
- 100 برای اینترانت&lt;br /&gt;
&lt;br /&gt;
- 101 برای اینترنت&lt;br /&gt;
&lt;br /&gt;
می تواند Charging Group های بیشتری نیز روی PCEF برای انواع سرویس ها مانند ترافیک داخل شبکه مخابرات، شبکه IXP و ... افزود و اینجا ID آن ها را اضافه کرد.&lt;br /&gt;
&lt;br /&gt;
در ادامه جهت جلوگیری از اشتباهات تایپی بایستی نام سرویس ها که درون خود اکانتینگ IBSng استفاده می شود را وارد کرد. از این نام در مرحله بعد در تعریف شارژ ها استفاده می شود:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-10.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در بخش Services صفحه Advanced Configs نام سرویس ها را اضافه می کنیم.&lt;br /&gt;
&lt;br /&gt;
===تنظیم شارژها===&lt;br /&gt;
&lt;br /&gt;
برای تنظیم شارژها تنها کافیست برای هر سرویس مجموع قوانین شارژ را تعریف کنیم. منطق لحاظ شده در مکانیز عملکرد شارژها به این گونه است که هر اتصال کاربر از یک  سرویس Master  و چند SubService تشکیل شده است و اکاننتینگ کاربر بر این اساس صورت می پذیرد. سرویس Master سرویسی است که اطلاعات آن از RAS دریافت می گردد و در تنظیمات شارژ بایستی نوع SubService آن Master انتخاب شود. تمام قوانینی که SubService آن ها Master است روی RAS و اطلاعات آن لحاظ می گردد. سرویس هایی که روی PCEF  تعریف شده اند نیز در قالب SubService روی اتصال کاربر لحاظ می شوند و اطلاعات آن از PCEF دریافت می گردد.&lt;br /&gt;
&lt;br /&gt;
پس برای کاربری که قرار است ترافیک اینترنت و اینترانت او تفکیک شده محاسبه شود بایستی سه نوع قانون شارژ تعریف شود.&lt;br /&gt;
&lt;br /&gt;
1)قانونی که اتصال او به RAS را امکان پذیر می کند و نوع subservice آن در قوانین شارژ Master انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
2)قانونی که قرار است سرویس Internet را برای او روی PCEF فعال کند و نوع subservice آن در قوانین شارژ Internet  (یا هر نامی که پیشتر در PCEF تعریف شده ) است .&lt;br /&gt;
&lt;br /&gt;
3)قانونی که قرار است سرویس INTRANET را برای او روی PCEF فعال کند و نوع subservice آن در قوانین شارژ INTRANET  (یا هر نامی که پیشتر در PCEF تعریف شده) است .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-11.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-12.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-13.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-14.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-15.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:pcrf-16.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===چند نکته پیرامون تنظیمات شارژها===&lt;br /&gt;
&lt;br /&gt;
:*پارامتر Charge Per Megabyte بایستی تنها و تنها یا روی سرویس Master (سرویسی که اطلاعات آن توسط RAS اعلام می شود و میزان مصرف کلی مشترک را شامل میشود) تنظیم شود و یا روی سرویس های Internet و Intranet (سرویس هایی که روی PCEF تعریف شده است). در صورتی این پارامتر روی هردو تنظیم شود میزان مصرف کاربر دوبرابر محاسبه می شود&lt;br /&gt;
&lt;br /&gt;
:*کسر اعتبار برای کاربر به دو صورت کلی قابل محاسبه است&lt;br /&gt;
&lt;br /&gt;
الف) به صورت تعیین اعتبار، به این صورت که برای مشترک یک اعتبار (Credit) کلی در نظر گرفته می شود و برای Subservice ها پارامتر Charge Per Megabyte لحاظ می گردد. به این شکل چه کاربر از اینترنت استفاده کند و چه از اینترانت کسر اعتبار به صورت کلی انجام می شود و با اتمام اعتبار اتصال کاربر قطع و کاربر اصطلاحا به حالت Failed در می آید&lt;br /&gt;
&lt;br /&gt;
ب) یه صورت تعیین سقف مصرف روی هر سرویس، به صورت که در هر Subservice با استفاده از پارامتری مانند Maximum Traffic Rule Usage می توان برای کاربر سقف مصرف تعیین کرد. به طور مثال اگر بخواهیم برای کاربر شارژی تعریف کنیم که به او اجازه استفاده 2 گیگابایت اینترنت و 10 گیگابایت اینترانت دهد بایستی ابتدا یک قانون شارژ با نوع سرویس Master و بدون Charge Per Megabyte ایجاد کنیم. سپس یک قانون شارژ با نوع سرویس Internet، بدون Charge Per Megabyte و با Maximum Traffic Rule Usage= 2048MB به همراه یک قانون شارژ با نوع سرویس اینترانت، بدون Charge Per Megabyte و با Maximum Traffic Rule Usage=10240MB ایجاد کنیم.&lt;br /&gt;
&lt;br /&gt;
برای تنظیمات failed نیز در حالت الف به صورت معمول عمل میکنیم اما برای حالت ب چون مشترک ممکن است سقف مصرف مجاز را برای یکی از سرویس ها به اتمام رساند و سرویس دیگری همچنان فعال باشد، بایستی ترافیک کاربر برای سرویسی که حق استفاده از آن را ندارد روی PCEF به صفحه پرتال Redirect شود. برای این امر بایستی پرتال امکان Redirect ترافیک کاربر را دارا باشد.&lt;br /&gt;
&lt;br /&gt;
:*برای تعیین سرعت مشترک در صورتی که بخواهیم محدودیت سرعت روی RAS به صورت کلی اعمال شود بایستی روی سرویس Master از پارامتر BW limit in RAS استفاده کرد اما در صورتی که بخواهیم برای هر سرویس محدودیت سرعت روی PCEF اعمال شود بایستی روی Subservice های Internet و Intranet از پارامتر QOS استفاده شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[کاربر:Behnaz|Behnaz]] ([[بحث کاربر:Behnaz|بحث]]) ‏۸ ژوئیهٔ ۲۰۱۷، ساعت ۱۶:۲۵ (IRDT)&lt;/div&gt;</summary>
		<author><name>Behnaz</name></author>	</entry>

	<entry>
		<id>http://wiki.parspooyesh.com/index.php/Docker</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://wiki.parspooyesh.com/index.php/Docker"/>
				<updated>2017-06-20T09:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;Siavash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:IBSng]]&lt;br /&gt;
&amp;lt;font face =&amp;quot;Tahoma&amp;quot;&amp;gt; &lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;div dir=rtl lang=fa&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Docker''' =&lt;br /&gt;
&lt;br /&gt;
==Difference between Docker and VM==&lt;br /&gt;
&lt;br /&gt;
، Docker هیچ سیستم عامل جدیدی ایجاد نمی کند بلکه این امکان را به بسته نرم افزاری ایجاد شده می دهد که از Kernel اصلی سیستم عامل لینوکسی که بر روی آن نصب شده است استفاده کند و در زمان انتقال نیز فقط Package نرم افزاری منتقل می شود نه ماشین مجازی ، در واقع Docker Engine یا موتور اصلی Docker جایگزین نرم افزار Hypervisor ما می شود و اینکار یعنی کارایی سیستم ما به شدت افزایش می یابد زیرا یک لایه واسط به نام Hypervisor حذف شده و نرم افزار بصورت مستقیم با هسته اصلی سیستم عامل کار میکند با این تفاوت که کاملا ایزوله شده است.&lt;br /&gt;
 &lt;br /&gt;
[[پرونده:D4.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
در تصویر بالا هم در داکر و هم در ماشین مجازی دو عنصور Server، Host Os مشترک است.&lt;br /&gt;
در مرحله بعدی در ماشین مجازی یک مجازی ساز مانند Vmware، VirtualBox و در داکر نرم افزار Docker را نصب داریم. تفاوت‌ها از اینجا شروع  می‌شود که در ماشین مجازی باید یک سیستم عامل کامل را نصب و نرم افزارها را روی آن نصب کرد. ولی داکر این مرحله را ساده کرده است و یک نسخه کوچک از سیستم عامل را در خود دارد که بدون نیاز به نصب سیستم عامل‌های سنگین و پیچیده می‌توان نرم افزارها را روی آن نصب و تست کرد.&lt;br /&gt;
هرچند می‌توان نسخه کوچکی از نسخه‌های مختلف سیستم عامل را نیز نصب کرد ولی باز هم بسیار راحت تر از سیستم ماشین‌های مجازی است. از مزایای استفاده از داکر نسبت به مجازی ساز می‌توان به موارد زیر اشاره کرد:&lt;br /&gt;
ایجاد و حذف بسیار سریع Container ها&lt;br /&gt;
ریستارت و خاموش کردن بسیار سریعنحوه راه اندازی سرور registry hub&lt;br /&gt;
انتقال پذیری راحت و سبک&lt;br /&gt;
مدیریت منابع و ریسورس‌ها به صورت قدرتمند و متغیر&lt;br /&gt;
و …&lt;br /&gt;
&lt;br /&gt;
'''داکر Image:'''&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D5.png]]&lt;br /&gt;
&lt;br /&gt;
در داکر Image‌ها را پس از دریافت اجرا می‌کنیم. همانطور که در بالا می‌بینید یک Base Image مانند Debian روی این داکر نصب شده است و روی آن Image‌های دیگر را نصب کرده ایم.&lt;br /&gt;
Image‌ها پس از پایان به حالت اولیه خود باز می‌گردند چون همانطور از نام آن‌ها مشخص است تنها یک تصویری از پکیج اصلی هستند. برای حذف تغییرات Image می‌توان حالت آن‌ها را با دستورات خاصی ذخیره کرد.&lt;br /&gt;
&lt;br /&gt;
'''Docker Hub چیست؟'''&lt;br /&gt;
&lt;br /&gt;
یک سرویس اشتراک گذاری تهیه شده توسط شرکت Docker است که شامل مخزنی از image‌های آماده برای Docker است. این مخزن حاوی ده‌ها هزار برنامه و سیستم عامل است که می‌توان به آن image‌هایی را هم اضافه کرد. توجه کنید که شرکت پارس پویش دارای hub مخصوص به خود است.&lt;br /&gt;
&lt;br /&gt;
'''Docker Container:'''&lt;br /&gt;
&lt;br /&gt;
در واقع می‌توان گفت Container ظرفی است که Image‌ها را در آن اجرا می‌کنند. Container‌ها از روی Image‌ها ایجاد می‌شوند و به وظایف خود عمل می‌کنند. مثلا فرض کنید از یک Centos چند Container می‌سازیم و در هر کدام تغییرات متفاوتی اعمال می‌کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' debian Installation'''&lt;br /&gt;
&lt;br /&gt;
برای نصب لازم است دو هارد جداگانه در نظر گرفته شود. در هارد اول میتوانید debian را نصب کرده و هارد دوم را به دایرکتوری زیر mount کنید. از شکل زیر پیروی کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
پس از پارتیشن بندی به روش فوق, docker را نصب نمایید.&lt;br /&gt;
&lt;br /&gt;
== Docker Installation==&lt;br /&gt;
&lt;br /&gt;
برای نصب لازم است ابتدا package های مورد نیاز را نصب کنیم. برای این کار دستور زیر را وارد میکنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ''' apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common  '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال کلید رسمی منتشر شده از سایت docker‌ را اضافه میکنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add Docker’s official GPG key:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ''' curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -  '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال repository مورد نیاز برای نصب docker را اضافه مینماییم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ''' add-apt-repository &amp;quot;deb [arch=amd64] https://download.docker.com/linux/debian  $(lsb_release -cs) stable&amp;quot;  '''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستورات زیرریپوزیتوری  سیستم را به روز رسانی میکنیم&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ''' apt-get update '''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستورات زیرdocker را نصب میکنیم&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ''' apt-get install docker-ce ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;نحوه راه اندازی سرور registry hub&lt;br /&gt;
&lt;br /&gt;
حال میتوانید docker-compose را نصب نمایید&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 curl -L https://github.com/docker/compose/releases/download/1.13.0/&lt;br /&gt;
 docker-compose-`uname -s`-`uname -m` &amp;gt; /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''دانلود ایمیج از parspooyesh hub'''&lt;br /&gt;
&lt;br /&gt;
تنظیمات سرور&lt;br /&gt;
&lt;br /&gt;
همچنین فایل زیر را باز نمایید &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ''' Vim /etc/docker/daemon.json''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و کد زیر را در آن اضافه نمایید&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 &amp;quot;insecure-registries&amp;quot;: [&amp;quot;5.202.129.64:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
استفاده از docker-compose برای اجرای docker ibs&lt;br /&gt;
در فولدر home یوزر خود فولدری به نام dockerCompose ایجاد نمایید. و فایلی به نام docker-compose.yml در آن ایجاد نمایید&lt;br /&gt;
در این فایل کد زیر را وارد کنید&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D1.png]]&lt;br /&gt;
&lt;br /&gt;
[[پرونده:D2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
حال برای اجرای container‌دستور زیر را وارد میکنیم&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  '''  docker-compose up -d '''  &lt;br /&gt;
 &lt;br /&gt;
دستور نمایش میدهد که هر دو سرور به درستی up شده است و تمامی پرت ها به سمت کانتینر ها باز است. &lt;br /&gt;
در صورتی که یکی  از سرورها down یا stop است با دستور زیر میتوان آن را UP کرد&lt;br /&gt;
 &lt;br /&gt;
docker-compose start &amp;lt;server name&amp;gt;&lt;br /&gt;
که در آن &amp;lt;server name&amp;gt; نام سروری است که قرار است up شود.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این دستور باید containerهای تعریف شده را اجرا بنماید.&lt;br /&gt;
 &lt;br /&gt;
برای چک کردن up شدن از دستور زیر استفاده کنید&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div dir=ltr lang=en&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  ''' Docker-compose ps  ''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و مشاهده خواهید کرد که سرور با همه پرتها اجرا شده است.&lt;br /&gt;
 &lt;br /&gt;
حال کافی است لایسنس را به روش عادی به روز نماییم.&lt;/div&gt;</summary>
		<author><name>Siavash</name></author>	</entry>

	</feed>