مسیری راهنما از «مخزن طراحی شبکه چیست؟» تا تغییرهای گواهیشده: منبع حقیقت شبکه به صورت متن، سنجیده با واقعیت، محافظتشده با نیتها در هر درخواست ادغام، آزموده با خرابیهای «اگر چه» و اجراشده به صورت آزمایشگاه. اول تصویر، هر گام با توضیح.
آموزش⏱ حدود ۳۵ دقیقه◔ از صفر تا پیشرفته☰ ۱۵ فصل
یاد میگیرید
✓مخزن طراحی شبکه چیست و چرا نقشهها و جدولها از واقعیت دور میشوند
✓ساختنش، وارد کردن یک شبکهٔ در حال کار، و نوشتن .zevtopo با دست یا روی بوم
✓مقایسهٔ طراحی با آنچه دستگاهها واقعاً میگویند
✓نوشتن نیتهایی که طراحی باید حفظ کند، و درخواستهای ادغامی که نمیتوانند آنها را بشکنند
✓خرابیهای «اگر چه»، تابآوری، دسترسپذیری، ظرفیت و مسیرهای جدا
✓اجرای طراحی به صورت آزمایشگاه و گواهی کردن هر تغییر
لازم دارید
•یک حساب Zaryn (رایگان برای همهچیز جز فصلهای ۱۲ و ۱۵ کافی است)
•در صورت تمایل، یک سایت شبکه برای وارد کردن و مقایسه
این آموزش از ایده تا تغییرهای گواهیشده را فصل به فصل پیش میبرد. مرجع کامل: [مخزن طراحی شبکه](/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) آن را با بازگشت خودکار روی دستگاهها انجام میدهند.
سایتها، دستگاهها، پورتها، پیوندها، مدارها و داکتها در فایلهای .zevtopo
نسخهدار
⎇
بازبینیشده
هر تغییر یک کامیت با نویسنده و دلیل، در یک درخواست ادغام
سنجیده
✓
قابل اعتماد
مقایسهشده با دستگاهها، آزموده در برابر قولهایی که نوشتهاید
مخزن طراحی شبکه آنچه شبکهتان باید باشد را نگه میدارد: سایتها، دستگاهها، پورتها، پیوندهای میانشان، مدارهایی که میخرید و داکتهایی که از آنها میگذرند. متن ساده است و مثل کد نسخهدار، پس هر تغییر نویسنده، دلیل و بازبینی دارد. سپس Zaryn آن را با شبکهٔ واقعی و با قولهایی که مینویسید میسنجد.
هر شبکهای جایی یک طراحی دارد، یک نقشه یا یک جدول، و ظرف چند ماه نادرست میشود: دستگاهی که با عجله اضافه شد، پیوندی که به پورت دیگری رفت. بدتر اینکه نقشه ریسک مشترک را نشان نمیدهد: دو پیوند «افزونه» در یک داکت با هم از کار میافتند.
در zaryn.xyz/repos با نوع **Topology**؛ یا zev new و انتخاب topology
سپس
✎
از صفر
topology/main.zevtopo را با دست یا روی بوم بنویسید
یا
از یک سایت در حال کار
zev topo import <owner>/<site>: هر دستگاه و پیوندی که جمعآوریکننده میبیند
از قبل یک سایت دارید؟ بهجای تایپ کردن واردش کنید:
Terminal
zev clone you/network-design && cd network-designzev topo import you/hqzev add topology && zev commit -m "Design from the live network" && zev push
ورودی هر دستگاه (سازنده، مدل، آدرس مدیریتی) و هر پیوندی را که دستگاهها میبینند با پورتهایش دارد. سپس آن را به یک طراحی تبدیل میکنید: نقشها، نام مدارها، ریسکهای مشترک.
دو سر و پورتهایش، نوع، ظرفیت، تأمینکننده، مدار، و srlg: آنچه در آن شریک است
🏷
[[vlan]]، [[interface]]، [[static_route]]
آدرسدهی و مسیریابی، هر وقت بخواهید
فقط name یک دستگاه و a و b یک پیوند لازماند. طراحی را به هر شمار فایلی زیر topology/ که برای تیمتان مناسب است تقسیم کنید، مثلاً یکی برای هر سایت. قالب کامل.
زبانهٔ Design editor مخزن، فایل و نقشه را کنار هم نشان میدهد. n دستگاه اضافه میکند، l دو تا را پیوند میدهد، inspector جزئیات را ویرایش میکند و اشتباهها با شمارهٔ خطشان فهرست میشوند. Save بهطور پیشفرض تغییر را به صورت درخواست ادغام پیشنهاد میکند تا پیش از نشستن سنجیده شود. همهٔ میانبرها.
هر دو موافقاندطراحیشده، در شبکه نیستدر شبکه هست، در طراحی نیست
در یک سایت، Collector and settings ← Design repository این دو را به هم وصل میکند. از آن پس طراحی نمیتواند بیصدا دور شود: هر چه طراحی شده ولی ساخته نشده، ساخته شده ولی طراحی نشده، یا روی پورتهایی جز آنچه برنامه بود، روی طراحی و روی نقشهٔ سایت پیدا میشود.
هیچ دستگاه، پیوند یا ریسک مشترک تکی شبکه را دو تکه نمیکند
وقتی نیتی شکست بخورد، Zaryn فقط «شکست» نمیگوید؛ خرابیای را که این کار را میکند نام میبرد: shared risk group duct-north (2 links) → site:hq and site:dc are cut apart.
درخواست ادغام تغییر را هم میکشد: دستگاهها و پیوندهای افزوده به رنگ سبز، حذفشده خطچین قرمز، تغییرکرده کهربایی. حذف یک نیت در همان درخواست، شکستنش را توجیه نمیکند.
up = availability edge dc 99.95uplinks = capacity edge dc 10000 linktwo-ways = disjoint edge dc device
با پریمیوم، سه نیت دیگر به آنچه «افزونه» نمیگوید پاسخ میدهند: A چند وقت به B نمیرسد (از mtbf و mttr هر بخش)، آیا مسیر پشتیبان پس از خرابی ترافیک را میکشد، و دو مسیری که هیچ اشتراکی ندارند. در طرح رایگان اینها «در انتظار» فهرست میشوند، هرگز به صورت شکست. با جزئیات.
کانتینرها یا ماشینهای مجازی سیمکشیشده طبق طراحی: پینگ بگیرید، پیوندی را بکشید، با نیتهایتان مقایسه کنید
طراحیای که هرگز اجرا نشده یک فرضیه است. Network overview آن را برای Containerlab یا GNS3 صادر میکند و نوع و ایمیج هر دستگاه را از سازندهاش برمیگزیند.
با پریمیوم، هر تغییر طراحی ادغامشده یک گواهی تغییر میگیرد: چه کسی چه چیزی را عوض کرد، چه کسی تأیید کرد، چه چیزی سنجیده شد؛ امضاشده و زنجیرشده به گواهی قبلی، و بینیاز از اعتماد به Zaryn در مرورگرتان بررسیپذیر. چطور یکی را بسنجید.
طراحی آغاز چرخه است: دوقلوی دیجیتال پیشبینی میکند یک تغییر پیکربندی چه میکند و rolloutها آن را با بازگشت خودکار روی دستگاهها انجام میدهند.