در این مقاله سعی می کنم مرحله به مرحله مراحل نصب یک سرور آزمایشی یک پروژه عالی را شرح دهم
هدف مقاله ترغیب همکاران به کنار گذاشتن مدیریت دستگاه های شبکه با استفاده از چنگک ها و عصاهای وحشتناک، به صورت اسکریپت های خودنویس، Dude، Ansible و غیره است و به همین مناسبت باعث آتش بازی و شادی دسته جمعی در مربع ها
0. انتخاب
چرا freeacs و نه genie-acs ذکر شده در
زیرا انتشارات اسپانیایی در مورد genie-acs با mikrotik وجود دارد. آن ها اینجا هستند
1. نصب Freeacs
ما در Centos7 نصب خواهیم کرد و از آنجایی که دستگاه ها داده های زیادی را منتقل می کنند و ACS به طور فعال با پایگاه داده کار می کند، ما طمع منابع نخواهیم داشت. برای کار راحت، ما 2 هسته پردازنده، 4 گیگابایت رم و 16 گیگابایت حافظه سریع ssd raid10 را انتخاب خواهیم کرد. من freeacs را در ظرف Proxmox VE lxc نصب خواهم کرد و شما می توانید با هر ابزاری که برای شما مناسب است کار کنید.
فراموش نکنید که زمان صحیح را روی دستگاه با ACS تنظیم کنید.
این سیستم یک سیستم آزمایشی خواهد بود، بنابراین ما موها را از هم جدا نمیکنیم و فقط از اسکریپت نصب که با مهربانی ارائه شده است استفاده میکنیم.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh
به محض اینکه اسکریپت تمام شد، می توانید بلافاصله با IP دستگاه، با اعتبارنامه admin/freeacs وارد رابط وب شوید.
این یک رابط مینیمالیستی بسیار خوب است و همه چیز چقدر جالب و سریع است
2. راه اندازی اولیه Freeacs
واحد اصلی کنترل برای ACS واحد یا CPE (تجهیزات محل مشتری) است. و مهمتر از همه، آنچه ما برای مدیریت واحدها نیاز داریم، نوع واحد آنهاست، یعنی. یک مدل تجهیزات که مجموعه ای از پارامترهای قابل تنظیم یک واحد و نرم افزار آن را تعریف می کند. اما در حالی که نمیدانیم چگونه یک Unit Type جدید را به درستی ایجاد کنیم، بهتر است با روشن کردن حالت Discovery در مورد آن از خود واحد بپرسیم.
این حالت مطلقاً در تولید قابل استفاده نیست، اما باید هر چه زودتر موتور را روشن کنیم و قابلیت های سیستم را ببینیم. تمام تنظیمات اولیه در /opt/freeacs-* ذخیره می شود. بنابراین، ما باز می کنیم
vi /opt/freeacs-tr069/config/application-config.conf
، ما پیدا می کنیم
discovery.mode = false
و تغییر به
discovery.mode = true
علاوه بر این، ما میخواهیم حداکثر اندازه فایلهایی را که nginx و mysql با آن کار میکنند، افزایش دهیم. برای mysql، خط را به /etc/my.cnf اضافه کنید
max_allowed_packet=32M
و برای nginx به /etc/nginx/nginx.conf اضافه کنید
client_max_body_size 32m;
به بخش http. در غیر این صورت، ما قادر خواهیم بود با سیستم عامل حداکثر 1M کار کنیم.
ما راه اندازی مجدد می کنیم و آماده کار با دستگاه ها هستیم.
و در نقش دستگاه (CPE) یک نوزاد معتاد به کار خواهیم داشت
قبل از اتصال آزمایشی، توصیه می شود که CPE را به صورت دستی روی حداقل تنظیمات کار پیکربندی کنید تا پارامترهایی که می خواهید در آینده پیکربندی کنید خالی نباشند. برای یک روتر، میتوانید به صورت حداقلی یک کلاینت dhcp را در ether1 فعال کنید، بسته tr-069client را نصب کنید و رمزهای عبور را تنظیم کنید.
3. میکروتیک را وصل کنید
اتصال همه واحدها با استفاده از یک شماره سریال معتبر به عنوان ورود مطلوب است. سپس همه چیز در گزارش ها برای شما روشن خواهد شد. کسی توصیه می کند از WAN MAC استفاده کنید - باور نکنید. شخصی از یک جفت ورود / عبور مشترک برای همه استفاده می کند - آنها را دور بزنید.
log tr-069 را برای نظارت بر "مذاکرات" باز کنید
tail -f /var/log/freeacs-tr069/tr069-conversation.log
winbox را باز کنید، آیتم منو TR-069.
آدرس اینترنتی ACS: http://10.110.0.109/tr069/prov
(با IP خود جایگزین کنید)
نام کاربری: 9249094C26CB (کپی سریال از سیستم>روتربرد)
رمز عبور: 123456 (برای کشف مورد نیاز نیست، اما مورد نیاز است)
فاصله زمانی اطلاع رسانی دوره ای را تغییر نمی دهیم. ما این تنظیم را از طریق ACS خود صادر خواهیم کرد
در زیر تنظیمات اولیه سازی از راه دور اتصال وجود دارد، اما من نتوانستم میکروتیک را با این کار کنم. اگرچه درخواست از راه دور با تلفن ها کاملاً کار می کند. ما باید آن را کشف کنیم.
پس از فشار دادن دکمه Apply، داده ها در ترمینال رد و بدل می شوند و در رابط وب Freeacs می توانید روتر ما را با Unit Type "hAPaclite" ایجاد شده به طور خودکار مشاهده کنید.
روتر متصل است. می توانید به نوع واحد تولید شده به طور خودکار نگاه کنید. باز میکنیم Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. چه چیزی وجود ندارد! به اندازه 928 پارامتر (من در پوسته نگاه کردم). زیاد باشد یا کم، بعداً متوجه خواهیم شد، اما در حال حاضر فقط نگاهی گذرا خواهیم داشت. این همان معنای Unit Type است. این لیستی از پارامترهای پشتیبانی شده با کلید اما بدون مقادیر است. مقادیر در سطوح زیر - پروفایل ها و واحدها تنظیم می شوند.
4. Mikrotik را پیکربندی کنید
وقت دانلود است
و خودمان در رابط وب روی مداد کنار واحد خود کلیک کرده و به حالت پیکربندی واحد می رویم. به نظر می رسد این است:
بیایید به طور خلاصه به آنچه در این صفحه جالب است نگاه کنیم:
بلوک پیکربندی واحد
- نمایه: این نمایه در نوع واحد است. سلسله مراتب به این صورت است:
UnitType > Profile > Unit
. یعنی می توانیم مثلاً پروفایل ایجاد کنیمhAPaclite > hotspot
иhAPaclite > branch
، اما در مدل دستگاه
تامین بلوک با دکمه ها
راهنمای ابزار اشاره می کند که همه دکمه های موجود در بلوک Provisioning می توانند بلافاصله پیکربندی را از طریق ConnectionRequestURL اعمال کنند. اما، همانطور که در بالا گفتم، این کار نمی کند، بنابراین پس از فشار دادن دکمه ها، باید کلاینت tr-069 را در mikrotik مجددا راه اندازی کنید تا به صورت دستی ارائه را شروع کنید.
- Freq/Spread: چند بار در هفته برای ارائه پیکربندی ±% برای کاهش بار روی سرور و کانال های ارتباطی. به طور پیش فرض 7/20 است، یعنی. هر روز ± 20% و در عرض چند ثانیه به آن اشاره کنید. تا اینجا تغییر دفعات تحویل فایده ای ندارد، زیرا. نویز اضافی در گزارش ها وجود خواهد داشت و همیشه انتظار نمی رود تنظیمات اعمال شوند
بلوک تاریخچه تامین (48 ساعت گذشته)
- در ظاهر، داستان مانند یک داستان است، اما با کلیک بر روی عنوان، به یک ابزار جستجوی مناسب پایگاه داده با regexp و goodies می رسید.
بلوک پارامترها
بزرگترین و مهم ترین بلوک، جایی که در واقع، پارامترهای یک واحد معین تنظیم و خوانده می شوند. اکنون ما فقط مهمترین پارامترهای سیستم را می بینیم که بدون آنها کار ACS با واحد غیرممکن است. اما ما به یاد داریم که آنها را در نوع واحد داریم - 928. بیایید همه ارزش ها را ببینیم و تصمیم بگیریم که میکروتیک با چه چیزی می خورد.
4.1 خواندن پارامترها
در بلوک Provisioning، روی دکمه Read all کلیک کنید. بلوک دارای کتیبه قرمز رنگ است. ستونی در سمت راست ظاهر می شود مقدار CPE (جاری).. ProvisioningMode را در تنظیمات سیستم به READALL تغییر داد.
و... هیچ اتفاقی نمی افتد جز یک پیام در System.X_FREEACS-COM.IM.Message Kick failed at...
.
کلاینت TR-069 را مجددا راه اندازی کنید یا روتر را مجددا راه اندازی کنید و صفحه مرورگر را تا زمانی که پارامترها را در کادرهای خاکستری شاد سمت راست دریافت کنید، به روز کنید.
اگر کسی بخواهد یک جرعه از چاشنی قدیمی بنوشد، این حالت در دفترچه راهنما به عنوان حالت بازرسی 10.2 توضیح داده شده است. روشن می شود و کمی متفاوت کار می کند، اما ماهیت کاملاً توضیح داده شده است
حالت READALL بعد از 15 دقیقه خود به خود خاموش می شود و ما سعی می کنیم بفهمیم چه چیزی در اینجا مفید است و در حالی که در این حالت هستیم چه چیزی را می توان در پرواز اصلاح کرد.
میتوانید آدرسهای IP را تغییر دهید، رابطها را فعال/غیرفعال کنید، قوانین فایروال، که با نظرات (در غیر این صورت یک آشفتگی کامل)، وایفای، و غیره چیزهای کوچک هستند.
یعنی هنوز نمیتوان میکروتیک را تنها با استفاده از ابزارهای TR-069 پیکربندی کرد. اما شما می توانید به خوبی نظارت کنید. آمار رابط ها و وضعیت آنها، حافظه آزاد و غیره موجود است.
4.2 ارائه پارامترها
بیایید اکنون سعی کنیم پارامترها را از طریق tr-069 به روش "طبیعی" به روتر تحویل دهیم. اولین قربانی Device.DeviceInfo.X_MIKROTIK_SystemIdentity خواهد بود. ما آن را در پارامترهای واحد All پیدا می کنیم. همانطور که می بینید تنظیم نشده است. این بدان معناست که هر واحدی می تواند خود هر هویتی داشته باشد. تحمل این را بس است!
یک daw در ستون ایجاد می زنیم، نام Mr.White را تنظیم می کنیم و دکمه Update parameters را فشار می دهیم. بعداً چه اتفاقی خواهد افتاد، قبلاً حدس زده اید. در جلسه بعدی ارتباط با ستاد، روتر باید Identity خود را تغییر دهد.
اما این برای ما کافی نیست. پارامتری مانند Identity خوب است که همیشه هنگام جستجوی واحد مورد نظر در دسترس باشد. نام پارامتر را وارد می کنیم و چک باکس های Display (D) و Searchable (S) را در آنجا قرار می دهیم. کلید پارامتر به RWSD تغییر می کند (به یاد داشته باشید، نام ها و کلیدها در بالاترین سطح نوع واحد تنظیم شده اند)
اکنون این مقدار نه تنها در لیست جستجوی عمومی نمایش داده می شود، بلکه برای جستجو در آن نیز موجود است Support > Search > Advanced form
ما ارائه را آغاز می کنیم و به هویت نگاه می کنیم. سلام آقای سفید! اکنون نمیتوانید هویت خود را در حالی که tr-069client در حال اجرا است تغییر دهید
4.3 اجرای اسکریپت ها
از آنجایی که فهمیدیم بدون آنها راهی نیست، بیایید آنها را برآورده کنیم.
اما قبل از شروع کار با فایل ها، باید دستورالعمل را اصلاح کنیم public.url
در پرونده /opt/freeacs-tr069/config/application-config.conf
پس از همه، ما هنوز یک پیکربندی آزمایشی با یک اسکریپت نصب کرده ایم. فراموش نکرده ای؟
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
ACS را مجددا راه اندازی کنید و مستقیماً به آن بروید Files & Scripts
.
اما آنچه اکنون با ما باز می شود متعلق به Unit Type است، یعنی. در سطح جهانی برای همه روترهای hAP ac lite، خواه یک روتر شاخه، نقطه اتصال یا Capsman باشد. ما هنوز به چنین سطح بالایی نیاز نداریم، بنابراین، قبل از کار با اسکریپت ها و فایل ها، باید یک نمایه ایجاد کنید. شما می توانید آن را خودتان به عنوان "موقعیت" دستگاه صدا کنید.
بیایید کودکمان را سرور زمان کنیم. یک موقعیت مناسب با یک بسته نرم افزاری جداگانه و تعداد کمی پارامتر. برویم به Easy Provisioning > Profile > Create Profile
و یک نمایه در Unit Type:hAPaclite ایجاد کنید زمان سنج. ما هیچ پارامتری در نمایه پیش فرض نداشتیم، بنابراین چیزی برای کپی کردن وجود ندارد کپی پارامترها از: "نسخه کپی نکنید..."
هنوز هیچ پارامتری در اینجا وجود ندارد، اما میتوان آنهایی را که بعداً میخواهیم روی سرورهای زمان خود که از hAPaclite ساخته شدهاند، ببینیم، تنظیم کنیم. به عنوان مثال، آدرس های کلی سرورهای NTP.
بیایید به پیکربندی واحد برویم و آن را به نمایه سرور زمان منتقل کنیم
بالاخره میریم به Files & Scripts
، اسکریپت ها را بسازید و در اینجا ما منتظر نان های فوق العاده راحت هستیم.
برای اجرای یک اسکریپت روی یک واحد، باید انتخاب کنیم نوع: TR069_SCRIPT а نام и نام هدف باید پسوند .alter داشته باشد
در عین حال، برای اسکریپت ها، بر خلاف نرم افزار، می توانید یک فایل آماده را دانلود کنید یا به سادگی آن را در فیلد بنویسید/ویرایش کنید. محتوا. بیایید سعی کنیم همان جا بنویسیم.
و برای اینکه بتوانید بلافاصله نتیجه را ببینید، اجازه دهید یک vlan به روتر در ether1 اضافه کنیم
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
رانندگی کنید، فشار دهید بارگذاری و انجام شد. فیلمنامه ما vlan1.alter
انتظار در بال ها
خب بریم؟ خیر همچنین باید یک گروه برای پروفایل خود اضافه کنیم. گروهها در سلسله مراتب تجهیزات گنجانده نشدهاند، اما برای جستجوی واحدها در UnitType یا Profile مورد نیاز هستند و برای اجرای اسکریپت از طریق تامین پیشرفته مورد نیاز هستند. معمولاً گروه ها با مکان ها مرتبط هستند و ساختار تودرتو دارند. بیایید یک گروه روسیه بسازیم.
آیا می توانید تصور کنید که ما فقط توانستیم جستجو را از «سرورهای تمام زمان در جهان در hAPaclite» به «سرورهای تمام زمان در روسیه در hAPaclite» محدود کنیم. هنوز یک لایه عظیم از همه چیز جالب با گروه ها وجود دارد، اما ما وقت نداریم. بریم سراغ فیلمنامه ها.
Advanced Provisioning > Job > Create Job
از آنجایی که ما در حالت Advanced هستیم، در اینجا می توانید یکسری شرایط مختلف را برای شروع کار، رفتار خطا، تکرارها و وقفه ها مشخص کنید. توصیه میکنم همه اینها را در کتابچههای راهنما بخوانید یا بعداً هنگام اجرای آن در تولید بحث کنید. در حال حاضر، اجازه دهید فقط n1 را روی قوانین Stop تنظیم کنیم تا به محض اینکه در واحد 1 ما تکمیل شد، کار متوقف شود.
ما موارد لازم را پر می کنیم و فقط راه اندازی باقی می ماند!
START را فشار دهید و منتظر بمانید. اکنون شمارنده دستگاه های کشته شده توسط اسکریپت با اشکال زدایی ضعیف به سرعت اجرا می شود! البته که نه. چنین کارهایی زمان زیادی می برد و این تفاوت آنها با اسکریپت ها، Ansible و غیره است. خود واحدها برای انجام وظایف بر اساس یک برنامه زمانی درخواست می کنند یا همانطور که در شبکه ظاهر می شوند، ACS پیگیری می کند که کدام واحدها قبلاً وظایف را دریافت کرده اند و چگونه آنها را تکمیل کرده اند و این را در پارامترهای واحد ثبت می کند. در گروه ما 1 واحد وجود دارد و اگر تعداد آنها 1001 نفر باشد، ادمین این کار را راه اندازی می کند و به ماهیگیری می رود.
بیا دیگه. روتر را از قبل راه اندازی مجدد کنید یا کلاینت TR-069 را مجددا راه اندازی کنید. همه چیز باید بدون مشکل پیش برود و Mr.White یک vlan جدید دریافت خواهد کرد. و وظیفه قانون توقف ما به وضعیت PAUSED می رود. یعنی هنوز می توان آن را راه اندازی مجدد یا تغییر داد. اگر FINISH را فشار دهید، کار در بایگانی نوشته می شود
4.4 به روز رسانی نرم افزار
این نکته بسیار مهمی است، زیرا سیستم عامل Mikrotik ماژولار است، اما اضافه کردن ماژول ها، نسخه کلی سیستم عامل دستگاه را تغییر نمی دهد. ACS ما عادی است و به این عادت نکرده است.
حالا ما این کار را به سبک سریع و کثیف انجام می دهیم و ماژول NTP را بلافاصله وارد سیستم عامل عمومی می کنیم، اما به محض اینکه نسخه در دستگاه به روز شد، نمی توانیم ماژول دیگری را به همان روش اضافه کنیم. .
در تولید بهتر است از چنین ترفندی استفاده نکنید و ماژول هایی را که برای Unit Type اختیاری هستند فقط با استفاده از اسکریپت نصب کنید.
بنابراین، اولین کاری که باید انجام دهیم این است که بستههای نرمافزاری از نسخهها و معماری مورد نیاز را آماده کرده و آنها را بر روی وب سرور قابل دسترس قرار دهیم. برای آزمایش، هر کسی که Mr.White ما بتواند به آن دسترسی پیدا کند، آزمایش را انجام می دهد، اما برای تولید بهتر است یک آینه به روز رسانی خودکار نرم افزار مورد نیاز جمع آوری شود، که قرار دادن آن در وب ترسناک نیست.
مهم! فراموش نکنید که همیشه بسته tr-069client را در به روز رسانی ها قرار دهید!
همانطور که مشخص شد، طول مسیر بسته ها بسیار مهم است! وقتی سعی می کنم از چیزی شبیه به http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
میکروتیک در یک اتصال چرخه ای با یک منبع قرار گرفت و TRANSFERCOMPLETE مکرر را به لاگ tr-069 ارسال کرد. و من تعدادی سلول عصبی را هدر دادم تا بفهمم مشکل چیست. بنابراین، در حالی که ما آن را در ریشه، تا روشن شدن
بنابراین، ما باید سه فایل npk از طریق http داشته باشیم. من اینجوری گرفتم
http://192.168.0.241/routeros-mipsbe-6.45.6.npk
http://192.168.0.241/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
http://192.168.0.241/routeros/stable/mipsbe/tr069-client-6.45.6-mipsbe.npk
اکنون این باید به یک فایل xml با FileType = "1 Image Upgrade Firmware" فرمت شود، که ما آن را به Mikrotik ارسال می کنیم. بگذارید اسمش ros.xml باشد
ما طبق دستورالعمل از
<upgrade version="1" type="links">
<config />
<links>
<link>
<url>http://192.168.0.241/routeros-mipsbe-6.45.6.npk</url>
</link>
<link>
<url>http://192.168.0.241/ntp-6.45.6-mipsbe.npk</url>
</link>
<link>
<url>http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk</url>
</link>
</links>
</upgrade>
کمبود محسوسی وجود دارد Username/Password
برای دسترسی به سرور دانلود میتوانید مانند پاراگراف A.3.2.8 پروتکل tr-069 وارد کنید:
<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>
یا مستقیماً از مسئولان میکروتیک و همچنین حداکثر طول مسیر تا * npk سؤال کنید
به سراغ معلومات می رویم Files & Scripts
و یک فایل SOFTWARE در آنجا ایجاد کنید نام:ros.xml، نام هدف:ros.xml و نسخه:6.45.6
توجه! نسخه باید در اینجا دقیقاً با فرمتی که در دستگاه نمایش داده می شود و در پارامتر ارسال می شود مشخص شود. System.X_FREEACS-COM.Device.SoftwareVersion
.
ما فایل xm خود را برای بارگیری انتخاب می کنیم و کار شما تمام است.
اکنون راه های زیادی برای به روز رسانی دستگاه داریم. از طریق Wizard در منوی اصلی، از طریق Advanced Provisioning و tasks با نوع SOFTWARE یا فقط به تنظیمات واحد بروید و روی Upgrade کلیک کنید. بیایید ساده ترین راه را انتخاب کنیم، در غیر این صورت مقاله متورم شده است.
ما دکمه را فشار می دهیم، ارائه را آغاز می کنیم و کار شما تمام می شود. برنامه آزمون تکمیل شده است. اکنون می توانیم کارهای بیشتری با mikrotik انجام دهیم.
5. نتیجه گیری
وقتی شروع به نوشتن کردم، ابتدا میخواستم اتصال یک تلفن IP را توضیح دهم و از مثال آن برای توضیح اینکه وقتی tr-069 به راحتی و بدون زحمت کار میکند چقدر جالب است، استفاده کنم. اما پس از آن، همانطور که من پیشرفت کردم و مواد را جستجو کردم، فکر کردم برای کسانی که میکروتیک را وصل کردند، هیچ تلفنی برای مطالعه مستقل ترسناک نخواهد بود.
در اصل، Freeacs، که ما آزمایش کردیم، می تواند در تولید استفاده شود، اما برای این کار باید امنیت، SSL را پیکربندی کنید، پس از تنظیم مجدد، باید میکروتیک ها را برای پیکربندی خودکار پیکربندی کنید، باید اضافه کردن صحیح Unit Type را اشکال زدایی کنید، کار وب سرویس ها و پوسته فیوژن و موارد دیگر. سعی کنید، اختراع کنید، و دنباله ای بنویسید!
همه، از توجه شما متشکرم! از دیدن اصلاحات و نظرات خوشحال خواهم شد!
لیست مواد استفاده شده و لینک های مفید:
منبع: www.habr.com