سایتهای شبکه (روترها و سوئیچها)
روترها و سوئیچهایتان را زنده ببینید: از هر کانفیگ نسخهٔ پشتیبان گرفته و با نسخهٔ تأییدشده مقایسه میشود، نقشهای از اتصال دستگاهها و طرح آدرسها با تداخلهایش. Cisco، Huawei، MikroTik، FRRouting و VyOS.
دنبال فرمانی برای اجرا بگردید…
روترها و سوئیچهایتان را زنده ببینید: از هر کانفیگ نسخهٔ پشتیبان گرفته و با نسخهٔ تأییدشده مقایسه میشود، نقشهای از اتصال دستگاهها و طرح آدرسها با تداخلهایش. Cisco، Huawei، MikroTik، FRRouting و VyOS.
یک سایت جایی است که دستگاههای شبکه در آن هستند: یک دفتر، یک دیتاسنتر، یک POP. زارین هر سایت را زنده نشان میدهد:
سایتها با Cisco IOS و IOS-XE، Huawei VRP، MikroTik RouterOS، FRRouting و VyOS کار میکنند. تا ۱۰ دستگاه رایگان است. پریمیوم تا ۱٬۰۰۰ دستگاه میخواند.
یک جمعآوریکننده روی ماشینی در همان سایت اجرا میشود: هر سیستم لینوکسی، ماشین مجازی یا رزبریپای که zev رویش نصب باشد. با SSH وارد دستگاهها میشود و فقط دستورهای خواندنی اجرا میکند (show، display، print، /export). این دستورها داخل خود zev هستند، پس هیچ چیزی که زارین بفرستد نمیتواند جمعآوریکننده را وادار به تغییر یک دستگاه کند. خروجی دستگاهها با HTTPS به زارین فرستاده میشود.
گذرواژهٔ دستگاههایتان هرگز از جمعآوریکننده بیرون نمیرود. در فایلی نگه داشته میشود که فقط جمعآوریکننده میتواند بخواند، و زارین فقط نام هر اعتبارنامه را میداند. رازهای داخل کانفیگ (enable secret، کامیونیتی SNMP، هش کاربران محلی، کلیدهای VPN) پیش از ارسال با برچسبی مثل <secret:3fa2c1d0> جایگزین میشوند. این برچسب با کلیدی ساخته میشود که فقط جمعآوریکنندهٔ شما دارد: گذرواژهای که عوض شود همچنان بهعنوان تغییر دیده میشود، اما کسی نمیتواند از روی برچسب گذرواژه را حدس بزند.
جمعآوریکننده فقط اتصال خروجی برقرار میکند. لازم نیست پورتی باز کنید.
در zaryn.xyz/sites برای خودتان یا یک سازمان سایتی بسازید (مثلاً hq). در سایت یک سازمان، مالکان و مدیرانش همه چیز را مدیریت میکنند و اعضایش میتوانند ببینند.
در زبانهٔ جمعآوریکننده و تنظیمات، راهاندازی جمعآوریکننده را بزنید. زارین یک توکن را فقط یک بار نشان میدهد. روی ماشین جمعآوریکننده اجرا کنید:
zev site join zsite_… --server https://api.zaryn.xyzسپس به جمعآوریکننده بگویید چطور وارد دستگاههایتان شود. هر ورود یک اعتبارنامه با نامی دلخواه است:
zev site cred add core-admin --user netops # گذرواژه را میپرسدzev site cred add branch-mt --user admin # ورود دوم، برای دستگاههای دیگرzev site cred add old-ios --user admin --enable # سیسکو: enable secret را هم میپرسدzev site cred add frr --user netops --key /root/.ssh/id_ed25519پیش از افزودن دستگاهها، یکی را امتحان کنید:
zev site test 10.0.0.1 --cred core-admin✓ CORE-SW1 Cisco IOS / IOS-XE 15.2(2)E7 WS-C2960X-48FPD-L, serial FOC1234X5YZ (1840 ms) interfaces 52 (31 up) neighbors 4 config 612 lines, 7 secrets replaced before uploadzev site test همان لحظه دستگاه را میخواند و نشان میدهد زارین چه خواهد دید، بدون اینکه چیزی بفرستد (با --config کانفیگ را همانطور که فرستاده میشود چاپ میکند). وقتی همه چیز درست بود، جمعآوریکننده را بهصورت سرویس اجرا کنید:
sudo zev site installسرویس فایلهایش را در /var/lib/zev/site نگه میدارد. هر ۳۰ ثانیه از زارین کار میگیرد و هر دستگاه را هر ۱۵ دقیقه میخواند (در تنظیمات سایت قابل تغییر است).
در زبانهٔ دستگاهها، دستگاهی را با آدرسش اضافه کنید، سازندهاش را انتخاب کنید (یا بگذارید zev از بنر SSH آن تشخیص دهد) و اعتبارنامهٔ ورود را بگذارید. ظرف یک دقیقه جمعآوریکننده آن را میخواند.
برای پیدا کردن دستگاهها، بازههای جستوجو را در جمعآوریکننده و تنظیمات بنویسید (مثلاً 10.0.0.0/24). جمعآوریکننده بررسی میکند کدام آدرسها به SSH پاسخ میدهند و خودشان را چه معرفی میکنند. همسایههایی که دستگاههایتان گزارش میکنند و هنوز در سایت نیستند هم نمایش داده میشوند. هر دو در پیداشده در شبکه میآیند و با یک کلیک اضافه یا نادیده گرفته میشوند.
اولین کانفیگی که جمعآوریکننده میخواند کانفیگ تأییدشده میشود. هر تغییر بعدی نسخهٔ تازهای ذخیره میکند. وقتی کانفیگ در حال اجرا با نسخهٔ تأییدشده فرق داشته باشد، دستگاه منحرفشده علامت میخورد و صفحهاش تفاوت را خط به خط نشان میدهد.
خطهایی که خودبهخود عوض میشوند (مثل «Last configuration change at…» در سیسکو، دورهٔ ساعت NTP یا زمان export در RouterOS) کنار گذاشته میشوند، پس کانفیگی که تغییر نکرده هرگز تغییرکرده به نظر نمیرسد. هر نسخه را میتوان بهصورت فایل دانلود کرد. زارین ۵۰۰ نسخهٔ آخر هر دستگاه را نگه میدارد و نسخهٔ تأییدشده را همیشه.
زبانهٔ نقشه دستگاههای سایت و اتصالشان را نشان میدهد:
زبانهٔ آدرسها همهٔ زیرشبکههایی را که روی اینترفیسی تنظیم شدهاند با آدرسهای داخلشان فهرست میکند: آدرسهای خود دستگاهها و میزبانهایی که جدول ARP آنها دیده، با MAC و دستگاهی که آن را دید. یک نوار نشان میدهد هر زیرشبکه چقدر پر است. تداخلها کنار زیرشبکه فهرست میشوند:
| تداخل | یعنی چه |
|---|---|
| روی دو اینترفیس | یک آدرس دو بار تنظیم شده، روی دو دستگاه یا دو اینترفیس. |
| دو MAC به آن پاسخ میدهند | دو ماشین برای یک آدرس پاسخ میدهند. معمولاً آیپی تکراری، یا یک جفت پشتیبان. |
| ماشین دیگری هم از آن استفاده میکند | جای دیگری MAC دیگری به آدرس خود یک دستگاه پاسخ میدهد. |
| ماسکها در دستگاهها متفاوتاند | یک زیرشبکه با ماسکهای متفاوت تنظیم شده، مثلاً اینجا /24 و آنجا /25. |
صفحهٔ دستگاه دلیلش را به زبان ساده میگوید:
| آنچه میبینید | چه کنید |
|---|---|
| دستگاه ورود را رد کرد | کاربر و گذرواژهٔ اعتبارنامه را بررسی کنید: اجرای دوبارهٔ zev site cred add <name> … آن را جایگزین میکند. |
| روی پورت SSH چیزی پاسخ نمیدهد | SSH را روی دستگاه روشن کنید، یا پورت را در تنظیمات دستگاه بررسی کنید. |
| جمعآوریکننده به دستگاه نمیرسد | مسیر و فایروال میان جمعآوریکننده و دستگاه را بررسی کنید. |
| کلید میزبان SSH دستگاه عوض شده | اگر انتظارش را داشتید (دستگاه نو، نصب دوباره)، روی جمعآوریکننده zev site forget-key <address> را اجرا کنید. |
| به حالت privileged نیاز دارد | سیسکو: با privilege 15 وارد شوید، یا enable secret را با --enable اضافه کنید. |
| جمعآوریکننده اعتبارنامهای به این نام ندارد | روی جمعآوریکننده zev site cred add <name> … را اجرا کنید، یا اعتبارنامهٔ دیگری انتخاب کنید. |
zev از OpenSSH خود سیستم استفاده میکند و الگوریتمهای قدیمیتری را که بسیاری از دستگاهها هنوز لازم دارند (diffie-hellman-group14-sha1، ssh-rsa، رمزهای CBC) هم مجاز میکند، تا وقتی OpenSSH شما هنوز آنها را داشته باشد.
zev site join <token> [--server URL] این ماشین را جمعآوریکنندهٔ سایت کنzev site cred add <name> --user <user> [--key <file>] [--enable] [--password-stdin]zev site cred ls · zev site cred rm <name> ورودهایی که روی این جمعآوریکننده نگه داشته شدهاندzev site test <address> [--cred <name>] [--vendor cisco|huawei|mikrotik|frr|vyos] [--config] [--json]zev site discover <range>… کدام آدرسها به SSH پاسخ میدهند و چه هستندzev site probe ping|tcp|http|dns <target> یک پروب را از همینجا اجرا کن (توضیح مسیر و پروبها را ببینید)zev site run [--once] آنچه زارین میخواهد را جمع کن و پروبهایش را اجرا کن (همان کاری که سرویس میکند)sudo zev site install جمعآوریکننده را بهصورت سرویس systemd اجرا کنzev site status این جمعآوریکننده، دستگاههایش، اعتبارنامههای جاافتادهzev site forget-key <address> پس از اینکه کلید SSH دستگاهی عمداً عوض شدجمعآوریکننده با دسترسی root فایلهایش را در /var/lib/zev/site و در غیر این صورت در ~/.config/zev/site نگه میدارد (با ZEV_SITE_DIR قابل انتخاب است). zev site status وقتی با sudo اجرا شود فایلهای سرویس را میخواند.