نمودارهای netlab با پیوندهای دسترسی چندگانه « وبلاگ ipSpace.net

یک کاربر نتلب میخواست از یک توپولوژی ساده که چندین دستگاه را به یک پیوند پخش (چند دسترسی) متصل میکند، یک نمودار توپولوژی زیبا بسازد. من توپولوژی دقیق آن را ندارم، بنابراین از این یکی استفاده خواهیم کرد (از جزئیاتی مانند تنظیم انواع دستگاه صرفنظر می کنیم)
nodes: [ r1, r2, h1, h2 ]
links:
- r1-r2
- interfaces: [ r1, r2, h1, h2 ]
این چیزی است که GraphViz بر اساس توصیف netlab از توپولوژی آزمایشگاه ایجاد می کند:
ارائه اولیه توپولوژی آزمایشگاه با دسترسی چندگانه
من فکر میکنم که میتوانیم موافق باشیم که اگرچه گرافیک بهطور دقیق توپولوژی آزمایشگاهی را نشان میدهد، اما وحشتناک به نظر میرسد. بیایید با رفع آسان شروع کنیم: R1 و R2 باید در یک سطح باشند. قبلاً توضیح داده ام که چگونه می توانیم استفاده کنیم graph.rank برای اینکه به GraphViz بگوییم مجموعه ای از گره ها باید در یک سطح باشند، بنابراین بیایید این را به توپولوژی آزمایشگاهی خود اضافه کنیم:
---
groups:
routers:
members: [ r1, r2 ]
device: iosv
graph.rank: 1
nodes: [ r1, r2, h1, h2 ]
links:
- interfaces: [ r1, r2, h1, h2 ]
- r1-r2

نمودار توپولوژی پس از افزودن graph.rank به گره های روتر
نتایج بهتر به نظر می رسد، اما حضور میزبان بسیار بهتر است زیر کادر گرد برای یک زیرشبکه دسترسی چندگانه. دلیل اصلی قرارگیری “اشتباه” گره های میزبان ترتیبی است که لبه های گراف در فایل توضیحات گراف GraphViz فهرست شده اند. GraphViz فرض می کند که گره های سمت راست پیوند باید باشند زیر کسانی که در سمت چپ هستند باید بگوییم netlab برای معکوس کردن ترتیب گره ها در پیوندهای h1–X_1 و h2–X_1.
لبه ای از نمودار که چهار گره را به زیر شبکه X_1 متصل می کند
"r1" -- "X_1"
"r2" -- "X_1"
"h1" -- "X_1"
"h2" -- "X_1"
"r1" -- "r2"
این ما را به دکمه های گیک بیش از حد قلمرو netlab دو ویژگی وجود دارد که بر قرارگیری گره های GraphViz و ترتیب گره ها در یک پیوند تأثیر می گذارد: graph.rank و graph.linkorder. مقادیر پیشفرض این ویژگیها 50 برای گرهها (دستگاهها) و رابطها و 100 برای پیوندهای چنددسترسی (زیر شبکهها) است. جای تعجب نیست که جعبه های زیر شبکه همیشه تنظیم می شوند زیر گره ها
ساده ترین راه برای تبدیل نمودار به شکل مناسب، تنظیم است graph.linkorder روی میزبان رابط ها:
links:
- r1:
r2:
h1:
graph.linkorder: 200
h2:
graph.linkorder: 200
- r1-r2
این نمودار مورد نظر را به ما می دهد (در زیر)، اما تعریف پیوند مطمئناً زشت به نظر می رسد. آیا می توانیم بهتر عمل کنیم؟

نمودار توپولوژی پس از تغییر graph.linkorder رابط های میزبان
ایده دیگر تنظیم خواهد بود graph.rank در خود پیوند به مقداری بین رتبه روتر (1) و رتبه گره پیش فرض (50).
links:
- interfaces: [ r1, r2, h1, h2 ]
graph.rank: 2
- r1-r2
این کار نمی کند زیرا netlab مرتب سازی لینک ها بر اساس graph.linkorder و تنها پس از آن از graph.rank. اگر اتصال و رابط متفاوت است graph.linkorder مقادیر (رفتار پیشفرض برای اطمینان از قرار گرفتن زیرشبکهها در زیر گرهها)، graph.rank ارزش ها مهم نیست
اما اگر لینک را بگذاریم چه می شود graph.linkorder به همان مقدار گره graph.linkorder? میتونیم استفاده کنیم graph.rank سپس؟
links:
- interfaces: [ r1, r2, h1, h2 ]
graph.linkorder: 50
graph.rank: 2
- r1-r2
متاسفانه، این هنوز هم کار نمی کند. مانند بسیاری از ویژگی های دیگر رابطه، graph.linkorder و graph.rank ویژگی های اتصال در تمام رابط های متصل کپی می شوند و آنها را برای مرتب سازی بی فایده می کند.
در حال حاضر، ما با راه حل زشت (مجموعه graph.linkorder رابطهای میزبان)، اما تمام تلاشم را میکنم تا در یکی از نسخههای آینده نتلب چیز بهتری داشته باشم.
لگد زدن (رایگان) تایرها
آیا می خواهید ویژگی های گرافیکی مختلف را امتحان کنید؟ از رویهای که در پست وبلاگ توضیح دادم برای تغییر رنگها و سبکهای خطوط در Graphs netlab استفاده کنید، اما GitHub Codespace را از مخزن netlab اجرا کنید و از آن استفاده کنید. tests/platform-integration/graph اشاره گر




