پالت فرمان

دنبال فرمانی برای اجرا بگردید…

ZarynZaryn
مخزن‌های طراحی شبکه·۱۰ دقیقه مطالعه·

شروع کار با مخزن‌های طراحی شبکه

مسیری راهنما از «مخزن طراحی شبکه چیست؟» تا تغییرهای گواهی‌شده: منبع حقیقت شبکه به صورت متن، سنجیده با واقعیت، محافظت‌شده با نیت‌ها در هر درخواست ادغام، آزموده با خرابی‌های «اگر چه» و اجراشده به صورت آزمایشگاه. اول تصویر، هر گام با توضیح.

آموزش⏱ حدود ۳۵ دقیقه◔ از صفر تا پیشرفته☰ ۱۵ فصل
یاد می‌گیرید
  • مخزن طراحی شبکه چیست و چرا نقشه‌ها و جدول‌ها از واقعیت دور می‌شوند
  • ساختنش، وارد کردن یک شبکهٔ در حال کار، و نوشتن .zevtopo با دست یا روی بوم
  • مقایسهٔ طراحی با آنچه دستگاه‌ها واقعاً می‌گویند
  • نوشتن نیت‌هایی که طراحی باید حفظ کند، و درخواست‌های ادغامی که نمی‌توانند آن‌ها را بشکنند
  • خرابی‌های «اگر چه»، تاب‌آوری، دسترس‌پذیری، ظرفیت و مسیرهای جدا
  • اجرای طراحی به صورت آزمایشگاه و گواهی کردن هر تغییر
لازم دارید
  • یک حساب Zaryn (رایگان برای همه‌چیز جز فصل‌های ۱۲ و ۱۵ کافی است)
  • در صورت تمایل، یک سایت شبکه برای وارد کردن و مقایسه
مسیر شما
  1. مرحلهٔ ۱درک
    1. مخزن طراحی شبکه چیست
    2. چرا نقشه‌ها دروغ می‌گویند
    3. طراحی، واقعیت، پیش‌بینی
  2. مرحلهٔ ۲شروع
    1. مخزن را بسازید
    2. نخستین طراحی شما
    3. کد یا بوم، به انتخاب شما
  3. مرحلهٔ ۳بسنجیدش
    1. آن را به چهار شکل ببینید
    2. طراحی و واقعیت
    3. نیت‌ها: قول‌هایی که طراحی باید حفظ کند
    4. درخواست‌های ادغامی که نمی‌توانند قولی را بشکنند
  4. مرحلهٔ ۴فراتر
    1. «اگر چه»، و پیوندی که کمک می‌کند
    2. دسترس‌پذیری، ظرفیت و مسیرهای جدا
    3. تاریخچه، و کمک از هوش مصنوعی
    4. آن را به صورت آزمایشگاه اجرا کنید
    5. گواهی‌ها، و قدم بعدی
این آموزش از ایده تا تغییرهای گواهی‌شده را فصل به فصل پیش می‌برد. مرجع کامل: [مخزن طراحی شبکه](/docs/fa/network-design). ## ۱. مخزن طراحی شبکه چیست ```diagram type: flow title: منبع حقیقت شبکه، به صورت متن --- متن | سایت‌ها، دستگاه‌ها، پورت‌ها، پیوندها، مدارها و داکت‌ها در فایل‌های `.zevtopo` | accent | 📐 ~ نسخه‌دار بازبینی‌شده | هر تغییر یک کامیت با نویسنده و دلیل، در یک درخواست ادغام | | ⎇ ~ سنجیده قابل اعتماد | مقایسه‌شده با دستگاه‌ها، آزموده در برابر قول‌هایی که نوشته‌اید | good | ✓ ``` **مخزن طراحی شبکه** آنچه شبکه‌تان باید باشد را نگه می‌دارد: سایت‌ها، دستگاه‌ها، پورت‌ها، پیوندهای میانشان، مدارهایی که می‌خرید و داکت‌هایی که از آن‌ها می‌گذرند. متن ساده است و مثل کد نسخه‌دار، پس هر تغییر نویسنده، دلیل و بازبینی دارد. سپس Zaryn آن را با شبکهٔ واقعی و با قول‌هایی که می‌نویسید می‌سنجد. ## ۲. چرا نقشه‌ها دروغ می‌گویند ```diagram type: graph title: افزونه روی نقشه، یک بریدگی در عمل alt: دو سایت با دو مدار به هم وصل‌اند که هر دو از یک داکت می‌گذرند؛ یک بریدگی هر دو مدار را قطع می‌کند legend: down=قطع start: نقشه height: 46 --- box دفتر مرکزی | 3 6 36 34 | accent box مرکز داده | 61 6 36 34 | good node hq1 | hq1 | 14 16 | router node hq2 | hq2 | 14 32 | router node dc1 | dc1 | 86 16 | router node dc2 | dc2 | 86 32 | router link hq1 hq2 link dc1 dc2 link hq1 dc1 | مدار A link hq2 dc2 | مدار B step یک داکت، دو مدار | هر دو مدار از یک داکت زیر یک پل می‌گذرند. نقشه این را نمی‌داند. note 50 44 | هر دو در duct-north | warn step یک بیل مکانیکی | یک بریدگی، هر دو مدار قطع، سایت‌ها از هم جدا. طراحی‌ای که داکت را نام ببرد این را پیش از رخ دادن پیدا می‌کند. link hq1 dc1 | down link hq2 dc2 | down node dc1 | bad node dc2 | bad ``` هر شبکه‌ای جایی یک طراحی دارد، یک نقشه یا یک جدول، و ظرف چند ماه نادرست می‌شود: دستگاهی که با عجله اضافه شد، پیوندی که به پورت دیگری رفت. بدتر اینکه نقشه **ریسک مشترک** را نشان نمی‌دهد: دو پیوند «افزونه» در یک داکت با هم از کار می‌افتند. ## ۳. طراحی، واقعیت، پیش‌بینی ```diagram type: flow title: سه نمای یک شبکه، هم‌گام loop: هر تغییر ادغام‌شده طراحی را به‌روز می‌کند؛ هر گزارش دستگاه آن را می‌سنجد --- طراحی | آنچه باید باشد: همین مخزن | accent | 📐 ~ مقایسه با واقعیت | آنچه دستگاه‌ها می‌گویند: جمع‌آوری‌کنندهٔ یک سایت | good | 📡 ~ پیش‌بینی می‌کند پیش‌بینی | یک تغییر چه می‌کند: دوقلوی دیجیتال | warn | 🔮 ``` این آموزش دربارهٔ نمای اول است. [سایت‌ها](/docs/fa/network-sites) نمای دوم و [دوقلو](/docs/fa/network-twin) نمای سوم را می‌دهند. ## ۴. مخزن را بسازید ```diagram type: flow title: دو راه شروع or: یا --- مخزن تازه | در zaryn.xyz/repos با نوع **Topology**؛ یا `zev new` و انتخاب topology | accent | ➕ ~ سپس از صفر | `topology/main.zevtopo` را با دست یا روی بوم بنویسید | | ✎ ? از یک سایت در حال کار | `zev topo import <owner>/<site>`: هر دستگاه و پیوندی که جمع‌آوری‌کننده می‌بیند ``` از قبل یک [سایت](/docs/fa/network-sites) دارید؟ به‌جای تایپ کردن واردش کنید: ```bash zev clone you/network-design && cd network-design zev topo import you/hq zev add topology && zev commit -m "Design from the live network" && zev push ``` ورودی هر دستگاه (سازنده، مدل، آدرس مدیریتی) و هر پیوندی را که دستگاه‌ها می‌بینند با پورت‌هایش دارد. سپس آن را به یک طراحی تبدیل می‌کنید: نقش‌ها، نام مدارها، ریسک‌های مشترک. ## ۵. نخستین طراحی شما ```toml [[device]] name = "hq1" vendor = "cisco" role = "core" site = "hq" [[device]] name = "dc1" vendor = "cisco" role = "core" site = "dc" [[link]] a = "hq1" b = "dc1" a_if = "Te1/0/1" b_if = "Te1/0/1" provider = "TIC" circuit = "TIC-4411" srlg = ["duct-north"] ``` ```diagram type: cards title: بلوک‌هایی که بیشتر به کار می‌برید --- 🏢 | [[site]] | یک مکان: نام، آدرس، مختصات | 🖧 | [[device]] | name، vendor، role (core، distribution، access، edge…)، site، model، آدرس مدیریتی | accent 🔗 | [[link]] | دو سر و پورت‌هایش، نوع، ظرفیت، تأمین‌کننده، مدار، و `srlg`: آنچه در آن شریک است | good 🏷 | [[vlan]]، [[interface]]، [[static_route]] | آدرس‌دهی و مسیریابی، هر وقت بخواهید | ``` فقط `name` یک دستگاه و `a` و `b` یک پیوند لازم‌اند. طراحی را به هر شمار فایلی زیر `topology/` که برای تیمتان مناسب است تقسیم کنید، مثلاً یکی برای هر سایت. [قالب کامل](/docs/fa/network-design#قالب-zevtopo). ## ۶. کد یا بوم، به انتخاب شما ```diagram type: graph title: یک طراحی، دو ویرایشگر، همیشه هم‌گام alt: فایل .zevtopo و بوم همان طراحی را نشان می‌دهند؛ تایپ کردن بوم را دوباره می‌کشد و تغییر بوم فقط همان خط‌های فایل را ویرایش می‌کند height: 32 --- node code | فایل ‎.zevtopo | 14 16 | file | accent | یک بلوک بنویسید: بوم همان‌طور که می‌نویسید دوباره کشیده می‌شود node canvas | بوم | 86 16 | router | good | افزودن، پیوند، تغییر نام، حذف: فقط همان خط‌های فایل عوض می‌شوند link code canvas | همان طراحی | path link canvas code | همان طراحی | path2 ``` زبانهٔ **Design editor** مخزن، فایل و نقشه را کنار هم نشان می‌دهد. `n` دستگاه اضافه می‌کند، `l` دو تا را پیوند می‌دهد، inspector جزئیات را ویرایش می‌کند و اشتباه‌ها با شمارهٔ خطشان فهرست می‌شوند. **Save** به‌طور پیش‌فرض تغییر را به صورت درخواست ادغام پیشنهاد می‌کند تا پیش از نشستن سنجیده شود. [همهٔ میان‌برها](/docs/fa/network-design#ویرایش-کد-و-بوم). ## ۷. آن را به چهار شکل ببینید ```diagram type: cards --- 🕸 | منطقی | دستگاه‌ها و پیوندها، با نقطه‌های شکست یگانه و پیوندهای حیاتی علامت‌خورده | accent 🏢 | سایت‌ها | دستگاه‌ها گروه‌بندی‌شده با سایت، تا WAN شما برجسته شود | 🎨 | ریسک مشترک | پیوندها رنگ‌شده با آنچه در آن شریک‌اند: یک رنگ، یک خرابی | warn 🔁 | طراحی و واقعیت | طراحی کشیده‌شده روی آنچه سایت پیوندخورده گزارش می‌کند | good ``` **Network overview** مخزن را باز کنید. روی یک دستگاه بزنید تا مدل، سایت، آدرس مدیریتی، پورت‌ها و مدارهایش را ببینید. ## ۸. طراحی و واقعیت ```diagram type: graph title: مقایسه چه نشان می‌دهد alt: پیوند طراحی‌شده‌ای که هیچ دستگاهی گزارش نمی‌کند خط‌چین قرمز است؛ پیوندی که دستگاه‌ها گزارش می‌کنند و طراحی ندارد نقطه‌چین کهربایی است legend: path=هر دو موافق‌اند؛ down=طراحی‌شده، در شبکه نیست؛ warn=در شبکه هست، در طراحی نیست height: 40 --- node core1 | core1 | 20 10 | switch node core2 | core2 | 80 10 | switch node acc1 | acc1 | 20 32 | switch node acc9 | acc9 | 80 32 | switch | warn | وصل شده، هرگز مستند نشده link core1 core2 | | path link core1 acc1 | طراحی‌شده، دیده نشده | down link core2 acc9 | در طراحی نیست | warn ``` در یک سایت، **Collector and settings ← Design repository** این دو را به هم وصل می‌کند. از آن پس طراحی نمی‌تواند بی‌صدا دور شود: هر چه طراحی شده ولی ساخته نشده، ساخته شده ولی طراحی نشده، یا روی پورت‌هایی جز آنچه برنامه بود، روی طراحی و روی نقشهٔ سایت پیدا می‌شود. ## ۹. نیت‌ها: قول‌هایی که طراحی باید حفظ کند ```text # topology/wan.zevintent ducts = survive site:hq site:dc srlg hq-to-dc = max-hops hq1 dc1 3 no-spof ``` ```diagram type: cards title: قول‌هایی که می‌توانید بنویسید --- 🔗 | reach A B | A و B به هم وصل‌اند | 🛡 | survive A B [link، srlg، device، any] | پس از هر خرابی تکی از آن نوع هنوز وصل‌اند | accent 📏 | max-hops A B N | کوتاه‌ترین مسیر حداکثر N پیوند است | 🎯 | no-spof، no-bridge، no-shared-risk | هیچ دستگاه، پیوند یا ریسک مشترک تکی شبکه را دو تکه نمی‌کند | good ``` وقتی نیتی شکست بخورد، Zaryn فقط «شکست» نمی‌گوید؛ خرابی‌ای را که این کار را می‌کند نام می‌برد: `shared risk group duct-north (2 links) → site:hq and site:dc are cut apart`. ## ۱۰. درخواست‌های ادغامی که نمی‌توانند قولی را بشکنند ```diagram type: flow title: نیت‌های شاخهٔ مقصد قرارداد است --- درخواست ادغام | شاخه‌ای که طراحی را عوض می‌کند | accent | ⎇ ~ سنجیده در برابر نیت‌ها | نیت‌های مقصد، به‌اضافهٔ هر چه این تغییر می‌افزاید | | ✓ ~ هر کدام هنوز برقرار | چیزی برای گفتن نیست | good | ✓ ? برقرار بود، حالا شکسته | ادغام را مسدود می‌کند و خرابی را نام می‌برد | bad ? از قبل شکسته | یک هشدار، بدهی‌ای که این تغییر نساخته | warn ``` درخواست ادغام تغییر را هم می‌کشد: دستگاه‌ها و پیوندهای افزوده به رنگ سبز، حذف‌شده خط‌چین قرمز، تغییرکرده کهربایی. حذف یک نیت در همان درخواست، شکستنش را توجیه نمی‌کند. ## ۱۱. «اگر چه»، و پیوندی که کمک می‌کند ```diagram type: graph title: بهترین پیوند برای افزودن alt: core1 نقطهٔ شکست یگانه برای dist1 و دو سوئیچ دسترسی است؛ افزودن پیوندی از core2 به acc1 راه دومی به آن‌ها می‌دهد legend: down=نقطهٔ شکست یگانه؛ new=پیوند پیشنهادی start: امروز height: 44 --- node core1 | core1 | 30 8 | switch | warn | اگر از کار بیفتد، dist1، acc1 و acc2 جدا می‌شوند node core2 | core2 | 70 8 | switch node dist1 | dist1 | 30 22 | switch node acc1 | acc1 | 18 36 | switch node acc2 | acc2 | 42 36 | switch link core1 core2 link core1 dist1 link dist1 acc1 link dist1 acc2 link core2 acc1 | | hidden step پیشنهاد | Zaryn هر پیوندی را که ندارید امتحان و رتبه‌بندی می‌کند: این یکی نقطهٔ شکست یگانه را برمی‌دارد. **Add it in the editor** آن را آمادهٔ یک درخواست ادغام باز می‌کند. link core2 acc1 | new | پیشنهادی node core1 | normal ``` - **What if these fail?** در زبانهٔ **Intents**: داکت‌ها، پیوندها و دستگاه‌ها را برگزینید و ببینید چه می‌ماند و کدام نیت‌ها دیگر برقرار نیستند. - **تاب‌آوری**: سهم خرابی‌های تکی‌ای که کسی را جدا نمی‌کنند، بدترین‌هایشان، و نمای گرمایی روی گراف. - **پیوندهایی که کمک می‌کنند**، رتبه‌بندی‌شده همان‌طور که یک مهندس می‌کند: هر کدام چه چیزی را برمی‌دارد، مسیر کوتاه پیش از مدار تازه. ## ۱۲. دسترس‌پذیری، ظرفیت و مسیرهای جدا ```diagram type: stats title: معنای نُه‌ها در یک سال --- 99.9% | سه نُه | حدود ۸ ساعت و ۴۶ دقیقه قطعی | 73 | warn 99.99% | چهار نُه | حدود ۵۳ دقیقه قطعی | 47 | accent 99.999% | پنج نُه | حدود ۵ دقیقه قطعی | 19 | good ``` ```text up = availability edge dc 99.95 uplinks = capacity edge dc 10000 link two-ways = disjoint edge dc device ``` با پریمیوم، سه نیت دیگر به آنچه «افزونه» نمی‌گوید پاسخ می‌دهند: A چند وقت به B نمی‌رسد (از `mtbf` و `mttr` هر بخش)، آیا مسیر پشتیبان پس از خرابی ترافیک را می‌کشد، و دو مسیری که هیچ اشتراکی ندارند. در طرح رایگان این‌ها «در انتظار» فهرست می‌شوند، هرگز به صورت شکست. [با جزئیات](/docs/fa/network-design#دسترسپذیری-ظرفیت-و-مسیرهای-جدا). ## ۱۳. تاریخچه، و کمک از هوش مصنوعی ```diagram type: cards --- 🕰 | طراحی در گذر زمان | امروز در برابر هر کامیت اخیر، با اینکه چه کسی چه چیزی را عوض کرد؛ Play آن را مرور می‌کند | accent 🤖 | کپی برای عامل هوش مصنوعی | طراحی، نقطه‌های ضعفش و راه‌حل‌ها به صورت Markdown کوتاه | good 🔌 | zev mcp | عامل‌ها نیت‌ها و خرابی‌های «اگر چه» را خودشان می‌خوانند | ``` «از زمان قطعی چه چیزی را عوض کردیم؟» با یک لغزنده پاسخ داده می‌شود. ## ۱۴. آن را به صورت آزمایشگاه اجرا کنید ```diagram type: flow title: از یک طراحی تا یک آزمایشگاه در حال اجرا or: یا --- طراحی | فایل‌های `.zevtopo` | accent | 📐 ~ دانلود Containerlab | `.clab.yml`: `containerlab deploy -t …` | | 📄 ? GNS3 | `.gns3`: File ← Open project ~ اجرا آزمایشگاه | کانتینرها یا ماشین‌های مجازی سیم‌کشی‌شده طبق طراحی: پینگ بگیرید، پیوندی را بکشید، با نیت‌هایتان مقایسه کنید | good | ▶ ``` طراحی‌ای که هرگز اجرا نشده یک فرضیه است. Network overview آن را برای [Containerlab یا GNS3](/docs/fa/network-design#اجرای-طراحی-به-صورت-آزمایشگاه) صادر می‌کند و نوع و ایمیج هر دستگاه را از سازنده‌اش برمی‌گزیند. ## ۱۵. گواهی‌ها، و قدم بعدی ```diagram type: flow title: زنجیره‌ای از تغییرهای امضاشده --- #1 · لینک بالادست دوم | ادغام با sara، تأیید با omid، نیت‌ها برقرار | good | 1 ~ prev #2 · ترمیم رایزر | ادغام‌شده، نیت‌ها برقرار | good | 2 ~ prev #3 · یک لینک بالادست | ادغام با وجود بررسی‌های ناموفق: «forced» ثبت شد | bad | 3 ``` با پریمیوم، هر تغییر طراحی ادغام‌شده یک **گواهی تغییر** می‌گیرد: چه کسی چه چیزی را عوض کرد، چه کسی تأیید کرد، چه چیزی سنجیده شد؛ امضاشده و زنجیرشده به گواهی قبلی، و بی‌نیاز از اعتماد به Zaryn در مرورگرتان بررسی‌پذیر. [چطور یکی را بسنجید](/docs/fa/network-design#گواهیهای-تغییر). طراحی آغاز چرخه است: [دوقلوی دیجیتال](/docs/fa/network-twin) پیش‌بینی می‌کند یک تغییر پیکربندی چه می‌کند و [rolloutها](/docs/fa/network-rollouts) آن را با بازگشت خودکار روی دستگاه‌ها انجام می‌دهند.
آموزش را به پایان رساندید

از اینجا کجا بروید

مخزن طراحی شبکه
طراحی شبکه به‌صورت متن در یک مخزن، که مثل کد بازبینی و با آنچه دستگاه‌ها واقعاً می‌گویند مقایسه می‌شود.
دوقلوی دیجیتال: تغییر را پیش از انجامش بیازمایید
پیش از آنکه کسی تغییری را در کانفیگ وارد کند، ببینید با شبکه‌تان چه می‌کند. کدام ترافیک قطع می‌شود، برقرار می‌شود یا از راه دیگری می‌رود و چرا، هر مدخل جدول مسیریابی که تغییر می‌کند، و نقاط شکست تکی‌ای که می‌سازد. در صفحهٔ سایت، از خط فرمان، و روی هر درخواست ادغام.
سایت‌های شبکه (روترها و سوئیچ‌ها)
روترها و سوئیچ‌هایتان را زنده ببینید: از هر کانفیگ نسخهٔ پشتیبان گرفته و با نسخهٔ تأییدشده مقایسه می‌شود، نقشه‌ای از اتصال دستگاه‌ها و طرح آدرس‌ها با تداخل‌هایش. Cisco، Huawei، MikroTik، FRRouting و VyOS.
اعمال تغییر: تغییر کانفیگ را با خیال راحت انجام دهید
تغییر کانفیگ را روی خود دستگاه‌ها انجام دهید، روی شبکهٔ زنده بررسی‌اش کنید، و اگر شبکه پایدار نماند خودبه‌خود برگردانده شود. فرمان‌های دقیق در هر دو جهت، نظر دوقلو، تأیید دونفره، موج‌ها با قناری، safe mode میکروتیک و کلید مرد مرده روی دستگاه، و ثبت همهٔ فرمان‌ها و پاسخ‌ها.