BATCTL(8) ابزار کنترل B.A.T.M.A.N. Advanced BATCTL(8)

batctl - ابزار کنترل و مدیریت B.A.T.M.A.N. advanced

batctl [گزینه‌ها] دستور|جدول اشکال‌زدایی|JSON اشکال‌زدایی [پارامترها]

دستور batctl روشی آسان برای پیکربندی ماژول کرنل batman-adv و همچنین نمایش اطلاعات اشکال‌زدایی مانند جدول‌های مبدا و جدول‌های ترجمه فراهم می‌کند. در ترکیب با یک فایل bat-hosts، ابزار batctl امکان استفاده از نام میزبان به جای نشانی‌های MAC را می‌دهد.

پروتکل B.A.T.M.A.N. advanced در لایه ۲ عمل می‌کند. بنابراین تمام میزبان‌های حاضر در شبکه سوییچ‌شده مجازی، برای تمام پروتکل‌های بالاتر از لایه ۲ به‌صورت شفاف به یکدیگر متصل می‌شوند. از این رو ابزارهای معمول عیب‌یابی آن‌گونه که انتظار می‌رود کار نمی‌کنند. برای رفع این مشکلات، batctl شامل دستورهای ping، traceroute و tcpdump است که قابلیتی مشابه دستورهای معمول ping(1)، traceroute(1) و tcpdump(1) فراهم می‌کنند، اما برای رفتار در لایه ۲ یا استفاده از پروتکل B.A.T.M.A.N. advanced بهینه‌سازی شده‌اند. به دلایل مشابه، دستور throughputmeter برای ارزیابی کارایی شبکه نیز گنجانده شده است.

مشخص کردن رابط مش (پیش‌فرض 'bat0')
چاپ راهنمای عمومی batctl
چاپ نسخه batctl و نسخه batman-adv (در صورت بارگذاری بودن ماژول)

تحلیل فایل‌های گزارش B.A.T.M.A.N. IV جهت ساخت یک پایگاه‌داده داخلی کوچک از تمام شماره‌های ترتیبی ارسال‌شده و تغییرات جدول مسیریابی. سپس این پایگاه‌داده را می‌توان به روش‌های مختلفی تحلیل کرد. با -l می‌توان از پایگاه‌داده برای جستجوی حلقه‌های مسیریابی استفاده کرد. از -t برای ردیابی OGMهای یک میزبان در سرتاسر شبکه استفاده کنید. از -r برای نمایش جدول‌های مسیریابی گره‌ها استفاده کنید. گزینه -s می‌تواند برای محدود کردن خروجی به محدوده‌ای از شماره‌های ترتیبی میان min و max، یا به یک شماره ترتیبی مشخص min به کار رود. علاوه بر این، با استفاده از -o می‌توانید خروجی را برای یک مبدا مشخص فیلتر کنید. اگر -n داده شود، batctl نشانی‌های MAC را با نام‌های bat-host در خروجی جایگزین نخواهد کرد.

دستور batctl رویدادها را از رابط کرنل netlink مربوط به batman-adv پایش می‌کند. در صورت مشخص شدن پارامتر -t، برچسب زمانی محلی رویداد چاپ خواهد شد. پارامتر -r همان عمل را با برچسب زمانی نسبی انجام می‌دهد.
[meshif netdev] interface|if
[meshif netdev] interface|if [-M] add|del iface ...
اگر پارامتری داده نشود یا اولین پارامتر نه "add" و نه "del" باشد، تنظیمات فعلی رابط نمایش داده می‌شود. جهت افزودن یا حذف رابط‌ها، "add" یا "del" را به عنوان اولین آرگومان مشخص کرده و نام رابط‌های مورد نظر برای افزودن یا حذف را اضافه کنید. می‌توان چندین رابط را مشخص کرد. گزینه -M به batctl اعلام می‌کند که هنگام "add" رابط batman-adv را به‌طور خودکار ایجاد نکند. همچنین می‌توان از آن برای چشم‌پوشی از هشدار تخریب دستی در زمانی که "del" تمام رابط‌های متعلق به آن را حذف کرده استفاده کرد.
[meshif netdev] interface|if create [routing_algo|ra RA_NAME]
یک رابط batman-adv بدون رابط‌های متصل را می‌توان با "create" ایجاد کرد. پارامتر routing_algo می‌تواند برای بازنویسی الگوریتم مسیریابی (پیش‌فرض) استفاده شود.
[meshif netdev] interface|if destroy
حذف تمام رابط‌های متصل و نابود کردن رابط batman-adv.
[meshif netdev] ping|p [-c count][-i interval][-t time][-R][-T] MAC_address|bat-host_name|host_name|IP_address
ارسال پینگ لایه ۲ به یک نشانی MAC یا نام bat-host. در صورتی که پارامتر داده‌شده نشانی MAC نباشد، batctl تلاش می‌کند نام bat-host را پیدا کند. همچنین در صورتی که نشانی IPv4/IPv6 بر روی رابط batman-adv دستگاه مقصد پیکربندی شده باشد و هر دو دستگاه مبدا و مقصد در یک زیرشبکه IP باشند، می‌تواند تلاش کند نشانی MAC را با استفاده از نشانی IPv4/IPv6 یا یک نام میزبان حدس بزند. گزینه -c به batctl می‌گوید پیش از خروج برنامه چه تعداد پینگ باید ارسال شود. بدون گزینه -c ابزار batctl پینگ گرفتن را بدون پایان ادامه می‌دهد. از CTRL + C برای متوقف کردن آن استفاده کنید. با -i و -t می‌توانید فاصله زمانی پیش‌فرض بین پینگ‌ها و مهلت زمانی پاسخ‌ها را بر حسب ثانیه مشخص کنید. هنگام اجرا با -R، مسیر طی‌شده توسط پیام‌های پینگ ثبت خواهد شد. با -T می‌توانید ترجمه خودکار نشانی MAC کلاینت به نشانی مبدایی که مسئول این کلاینت است را غیرفعال کنید.
اگر پارامتری داده نشود، پیکربندی فعلی الگوریتم مسیریابی و همچنین الگوریتم‌های مسیریابی پشتیبانی‌شده نمایش داده می‌شوند. در غیر این صورت، این پارامتر برای انتخاب الگوریتم مسیریابی رابط batX بعدی که ایجاد می‌شود استفاده خواهد شد.
[meshif netdev] statistics|s
دریافت شمارنده‌های ترافیک از ماژول هسته batman-adv. خروجی ممکن است بسته به ویژگی‌هایی که درون ماژول هسته کامپایل شده‌اند متفاوت باشد.
هر زیرسیستم ماژول شمارنده‌های اختصاصی خود را دارد که با پیشوند آن‌ها مشخص می‌شوند:
mgmt شمارنده‌های پروتکل مش
tt شمارنده‌های جدول ترجمه
تمامی شمارنده‌های بدون پیشوند مربوط به ترافیک بار داده (داده‌های خالص کاربر) هستند.
ابزار batctl تمامی بسته‌های دیده‌شده روی رابط(های) مشخص‌شده را نمایش می‌دهد. گزینه‌های مختلفی برای فیلتر کردن خروجی در دسترس است: برای چاپ بسته‌هایی که با شماره سازگاری batctl مطابقت دارند، گزینه -c (فیلتر سازگاری) را مشخص کنید. اگر -n داده شود، batctl نشانی‌های MAC را با نام‌های bat-host در خروجی جایگزین نخواهد کرد. برای فیلتر کردن انواع بسته‌های نمایش‌یافته می‌توانید از -p (تنها تخلیه انواع بسته‌های مشخص‌شده) یا -x (تخلیه تمامی بسته‌ها به جز موارد مشخص‌شده) استفاده کنید. انواع بسته‌های زیر موجود هستند:
1 بسته‌های ogm بتمن
2 بسته‌های icmp بتمن
4 بسته‌های unicast بتمن
8 بسته‌های broadcast بتمن
16 بسته‌های unicast tvlv بتمن
32 بسته‌های قطعه‌قطعه‌شده بتمن
64 بسته‌های tt / رومینگ بتمن
128 بسته‌های غیر بتمن
مثال: batctl td <interface> -p 129 -> تنها نمایش بسته‌های ogm بتمن و بسته‌های غیر بتمن
[meshif netdev] throughputmeter|tp MAC
این دستور یک آزمون توان عملیاتی را آغاز می‌کند که تماماً توسط ماژول batman در فضای هسته کنترل می‌شود: منابع محاسباتی لازم برای تراز حافظه و رونوشت داده میان فضای کاربر و فضای هسته که ابزارهای دیگر فضای کاربر نیاز دارند، ممکن است روی برخی دستگاه‌های ضعیف گلوگاه ایجاد کند.

این آزمون شامل انتقال ۱۴ مگابایت داده میان دو گره است. پروتکل مورداستفاده برای انتقال داده تا حدی شبیه به TCP اما ساده‌تر است: برخی امکانات TCP هنوز در آن پیاده‌سازی نشده‌اند، بنابراین کارایی پروتکل ممکن است بدتر باشد. از آنجا که حجم ثابتی از داده منتقل می‌شود، مدت زمان آزمایش به شرایط شبکه بستگی دارد. آزمایش را می‌توان با کلیدهای CTRL + C لغو کرد. در پایان یک آزمایش موفقیت‌آمیز، توان عملیاتی بر حسب کیلوبایت در ثانیه همراه با مدت زمان آزمایش بر حسب میلی‌ثانیه و حجم بایت‌های منتقل‌شده نمایش داده می‌شود. اگر بسته‌های بسیار زیادی گم شوند یا نشانی MAC مشخص‌شده در دسترس نباشد، پیامی برای اطلاع‌رسانی خطا به جای نتیجه بازگردانده می‌شود.

[meshif netdev] traceroute|tr [-n][-T] MAC_address|bat-host_name|host_name|IP_address
ردگیری مسیر در لایه ۲ به یک نشانی MAC یا نام bat-host. در صورتی که پارامتر داده‌شده نشانی MAC نباشد، batctl تلاش می‌کند نام bat-host را پیدا کند. همچنین در صورتی که نشانی IPv4/IPv6 بر روی رابط batman-adv دستگاه مقصد تنظیم شده باشد و هر دو دستگاه مبدا و مقصد در یک زیرشبکه IP باشند، می‌تواند تلاش کند نشانی MAC را بر اساس نشانی IPv4/IPv6 یا نام میزبان حدس بزند. ابزار batctl تعداد ۳ بسته به هر میزبان می‌فرستد و زمان پاسخ را نمایش می‌دهد. اگر -n داده شود، batctl نشانی‌های MAC را با نام‌های bat-host در خروجی جایگزین نخواهد کرد. با -T می‌توانید ترجمه خودکار نشانی MAC کلاینت به نشانی مبدایی که مسئول این کلاینت است را غیرفعال کنید.
[meshif netdev] translate|t MAC_address|bat-host_name|host_name|IP_address
ترجمه یک مقصد (نام میزبان، IP، MAC، نام bat_host) به نشانی MAC مبدایی که مسئول آن است.

[meshif netdev] aggregation|ag [0|1]
اگر پارامتری داده نشود، وضعیت تجمیع فعلی نمایش داده می‌شود. در غیر این صورت از این پارامتر برای فعال یا غیرفعال کردن تجمیع بسته‌های OGM استفاده می‌شود.
[meshif netdev] ap_isolation|ap [0|1]
اگر پارامتری داده نشود، وضعیت فعلی جداسازی AP نمایش داده می‌شود. در غیر این صورت از این پارامتر برای فعال یا غیرفعال کردن جداسازی AP استفاده می‌شود.
[meshif netdev] ap_isolation|ap [0|1]
[meshif netdev] vid <vid> ap_isolation|ap [0|1]
اگر پارامتری داده نشود، وضعیت فعلی جداسازی AP برای VLAN مشخص‌شده نمایش داده می‌شود. در غیر این صورت از پارامتر برای فعال یا غیرفعال کردن جداسازی AP برای VLAN مشخص‌شده استفاده می‌شود.
[meshif netdev] bonding|b [0|1]
اگر پارامتری داده نشود، وضعیت حالت پیوند فعلی نمایش داده می‌شود. در غیر این صورت از این پارامتر برای فعال یا غیرفعال کردن حالت پیوند استفاده می‌شود.
[meshif netdev] bridge_loop_avoidance|bl [0|1]
اگر پارامتری داده نشود، تنظیمات فعلی جلوگیری از حلقه پل نمایش داده می‌شود. در غیر این صورت از پارامتر برای فعال یا غیرفعال کردن جلوگیری از حلقه پل استفاده می‌شود. پشتیبانی از جلوگیری از حلقه پل باید هنگام کامپایل ماژول فعال شده باشد وگرنه این گزینه در دسترس نخواهد بود.
[meshif netdev] distributed_arp_table|dat [0|1]
اگر پارامتری داده نشود، تنظیمات فعلی جدول توزیع‌شده ARP نمایش داده می‌شود. در غیر این صورت از پارامتر برای فعال یا غیرفعال کردن جدول توزیع‌شده ARP استفاده می‌شود.
اگر پارامتری داده نشود، تنظیمات فعلی بازه زمانی ELP رابط فیزیکی نمایش داده می‌شود، در غیر این صورت از پارامتر برای تعیین بازه ELP استفاده خواهد شد. این بازه بر حسب میلی‌ثانیه است.
[meshif netdev] fragmentation|f [0|1]
اگر پارامتری داده نشود، تنظیمات فعلی حالت قطعه‌قطعه‌سازی بسته نمایش داده می‌شود. در غیر این صورت از پارامتر برای فعال یا غیرفعال کردن قطعه‌قطعه‌سازی استفاده می‌شود.
[meshif netdev] gw_mode|gw [off|client|server] [sel_class|bandwidth]
اگر پارامتری داده نشود، حالت فعلی درگاه نمایش داده می‌شود وگرنه از پارامتر برای تنظیم حالت درگاه استفاده خواهد شد. آرگومان دوم (اختیاری) کلاس انتخاب (در صورتی که اولین آرگومان 'client' باشد) یا پهنای باند درگاه (در صورتی که اولین آرگومان 'server' باشد) را مشخص می‌کند. اگر گره یک سرور باشد، این پارامتر برای آگاه کردن سایر گره‌های شبکه از پهنای باند اتصال اینترنت این گره استفاده می‌شود. کافی است هر عددی را وارد کنید (اختیاراً به دنبال "kbit" یا "mbit") و ماژول batman-adv مقدار واردشده را در شبکه مش منتشر خواهد کرد. از "/" برای جداسازی نرخ‌های بارگیری و بارگذاری استفاده کنید. می‌توانید نرخ بارگذاری را حذف کنید و ماژول نرخ بارگذاری را یک‌پنجم (۱/۵) بارگیری فرض خواهد کرد.
پیش‌فرض: 10000 -> 10.0/2.0 MBit
مثال‌ها: 5000 -> 5.0/1.0 MBit

5000kbit
5mbit
5mbit/1024
5mbit/1024kbit
5mbit/1mbit
اگر گره یک کلاینت درگاه باشد، پارامتر تعیین می‌کند که هنگام انتخاب میان اتصالات اینترنتی مختلف اعلام‌شده توسط سرورهای یادشده، ماژول batman-adv چه معیارهایی را در نظر بگیرد.
B.A.T.M.A.N. IV:
پیش‌فرض: 20 -> تغییر با تاخیر (TQ 20)
مثال‌ها: 1 -> اتصال سریع
توان عملیاتی تبلیغ‌شده توسط درگاه و همچنین کیفیت پیوند تا درگاه را در نظر گرفته و به این انتخاب پایبند می‌ماند تا زمانی که درگاه ناپدید شود

2 -> اتصال پایدار
درگاهی با بهترین کیفیت پیوند را انتخاب می‌کند و به آن پایبند می‌ماند (توان عملیاتی اعلام‌شده را نادیده می‌گیرد)
3 -> اتصال با تغییر سریع
درگاهی با بهترین کیفیت پیوند را انتخاب می‌کند اما به محض یافتن درگاه بهتر، تغییر می‌دهد
XX -> اتصال با تغییر با تاخیر
درگاهی با بهترین کیفیت پیوند را انتخاب می‌کند اما تنها زمانی به درگاه دیگر تغییر می‌دهد که دست‌کم XX واحد TQ بهتر از درگاه فعلی باشد (XX باید عددی بین ۳ تا ۲۵۶ باشد).
B.A.T.M.A.N. V:
پیش‌فرض: 5000 -> تغییر با تاخیر (توان عملیاتی 5000 kbit/s)
مثال: 1500 -> اتصال با تغییر سریع
به محض یافتن درگاه دیگر که توان عملیاتی آن دست‌کم 1500 kbit/s بیشتر از درگاه فعلی باشد تغییر می‌کند. توان عملیاتی بر اساس ارزیابی کمترین مقدار بین توان تبلیغ‌شده توسط درگاه و حداکثر پهنای باند کل مسیر تعیین می‌شود.
[meshif netdev] hop_penalty|hp [penalty]
اگر پارامتری داده نشود، تنظیمات فعلی جریمه پرش (hop penalty) نمایش داده می‌شود. در غیر این صورت از پارامتر برای تنظیم جریمه پرش استفاده می‌شود. این جریمه می‌تواند ۰-۲۵۵ باشد (مقدار ۲۵۵ مقدار TQ پیام مبدا را هنگام فوروارد توسط این پرش صفر می‌کند).
[hardif hardif] hop_penalty|hp [penalty]
اگر پارامتری داده نشود، تنظیمات فعلی جریمه پرش رابط فیزیکی نمایش داده می‌شود. در غیر این صورت از پارامتر برای تنظیم جریمه پرش استفاده می‌شود. جریمه می‌تواند ۰-۲۵۵ باشد (مقدار ۲۵۵ مقدار TQ پیام مبدا را هنگام فوروارد از طریق این رابط صفر می‌کند).
[meshif netdev] isolation_mark|mark [value[/mask]]
اگر پارامتری داده نشود، مقدار فعلی نشانگر جداسازی نمایش داده می‌شود. در غیر این صورت از پارامتر برای تنظیم یا حذف نشانگر جداسازی مورد استفاده قابلیت Extended Isolation استفاده خواهد شد.
ورودی باید به قالب value/mask$ باشد، که در آن value$ می‌تواند هر عدد صحیح ۳۲ بیتی (در مبنای ده‌دهی یا شانزده‌شانزدهی) باشد و mask$ یک ماسک بیتی کلی (در مبنای شانزده‌شانزدهی) است که بیت‌های مورد نظر از value$ را مشخص می‌کند. همچنین می‌توان ورودی را تنها با استفاده از value$ وارد کرد که در این صورت ماسک بیتی کامل به‌صورت پیش‌فرض استفاده می‌شود.

مثال ۱: 0x00000001/0xffffffff
مثال ۲: 0x00040000/0xffff0000
مثال ۳: 16 یا 0x0F

[meshif netdev] loglevel|ll [level ...]
اگر پارامتری داده نشود، تنظیمات فعلی سطح گزارش‌گیری نمایش داده می‌شود وگرنه از پارامتر(ها) برای تعیین سطح گزارش استفاده می‌شود. سطح 'none' تمام گزارش‌های پرحجم را غیرفعال می‌کند. سطح 'batman' پیام‌های مربوط به مسیریابی / سیل‌آسایی / پخش همگانی را فعال می‌سازد. سطح 'routes' پیام‌های مربوط به افزودن / تغییر / حذف مسیرها را فعال می‌کند. سطح 'tt' پیام‌های مربوط به عملیات جدول ترجمه را فعال می‌کند. سطح 'bla' پیام‌های مربوط به جلوگیری از حلقه پل را فعال می‌کند. سطح 'dat' پیام‌های مربوط به تجسس ARP و جدول توزیع‌شده ARP را فعال می‌کند. سطح 'mcast' پیام‌های مربوط به بهینه‌سازی‌های چندپخشی را فعال می‌کند. سطح 'tp' پیام‌های مربوط به سنجش توان عملیاتی را فعال می‌کند. سطح 'all' تمام پیام‌ها را فعال می‌کند. پیام‌ها به بافرهای ردیابی هسته ارسال می‌شوند. از trace-cmd stream -e batadv:batadv_dbg برای دریافت پیام‌های گزارش در سطح سیستم استفاده کنید.
[meshif netdev] multicast_fanout|mo [fanout]
اگر پارامتری داده نشود، مقدار فعلی انشعاب چندپخشی نمایش داده می‌شود. در غیر این صورت از پارامتر برای تنظیم انشعاب چندپخشی استفاده خواهد شد. انشعاب چندپخشی حداکثر تعداد کپی‌های بسته‌ای را تعیین می‌کند که ممکن است برای تبدیل چندپخشی به تک‌پخشی تولید شود. با فراتر رفتن از این محدودیت، ارسال به روش پخش همگانی انجام خواهد شد.
[meshif netdev] multicast_forceflood|mff [0|1]
اگر پارامتری داده نشود، تنظیم فعلی سیل‌آسایی اجباری چندپخشی نمایش داده می‌شود. در غیر این صورت از پارامتر برای فعال یا غیرفعال کردن سیل‌آسایی اجباری چندپخشی استفاده می‌شود. این تنظیم مشخص می‌کند آیا بهینه‌سازی‌های چندپخشی باید با سیل‌آسایی ساده شبیه به پخش همگانی برای بسته‌های چندپخشی جایگزین شود یا خیر. در صورت تنظیم روی مقداری غیر از صفر، تمام گره‌های شبکه مش برای تمام بسته‌های چندپخشی از سیل‌آسایی کلاسیک بدون هیچ‌گونه بهینه‌سازی استفاده خواهند کرد.
[meshif netdev] orig_interval|it [interval]
اگر پارامتری داده نشود، تنظیم فعلی بازه زمانی مبدا نمایش داده می‌شود وگرنه از پارامتر برای تعیین بازه زمانی مبدا استفاده خواهد شد. این بازه بر حسب میلی‌ثانیه است.
اگر پارامتری داده نشود، بازنویسی توان عملیاتی فعلی نمایش داده می‌شود وگرنه از پارامتر برای تنظیم بازنویسی توان عملیاتی برای رابط فیزیکی مشخص‌شده استفاده می‌شود. کافی است هر عددی وارد کنید (اختیاراً به دنبال "kbit" یا "mbit").

ماژول کرنل batman-adv با انواع جدول‌های اشکال‌زدایی حاوی اطلاعات گوناگون درباره وضعیت شبکه مش از دید هر یک از گره‌ها ارائه می‌شود.

تمامی جدول‌های اشکال‌زدایی از گزینه‌های زیر پشتیبانی می‌کنند:

تازه‌سازی فهرست در هر ثانیه یا افزودن یک عدد برای تازه‌سازی در بازه زمانی سفارشی بر حسب ثانیه (با اعشار اختیاری)
عدم جایگزینی نشانی‌های MAC با نام‌های bat-host در خروجی
عدم نمایش سرآیند جدول اشکال‌زدایی

جدول مبدا همچنین از گزینه فیلتر -t برای حذف تمام مبداهایی که در بازه زمانی مشخص‌شده بر حسب ثانیه (با اعشار اختیاری) دیده نشده‌اند از خروجی پشتیبانی می‌کند. افزون بر این، از پارامتر -i برای مشخص کردن رابطی که جدول مبدا باید برای آن چاپ شود پشتیبانی می‌کند. در صورت ارائه نشدن این پارامتر، جدول مبدا پیش‌فرض چاپ می‌شود.

جدول‌های ترجمه محلی و سراسری همچنین از گزینه‌های -u و -m به ترتیب برای نمایش انحصاری اعلان‌های جدول ترجمه تک‌پخشی یا چندپخشی پشتیبانی می‌کنند.

[meshif netdev] backbonetable|bbt [-n] [-H] [-winterval]
(گزینه زمان کامپایل)
[meshif netdev] claimtable|cl [-n] [-H] [-w[interval]]
[meshif netdev] dat_cache|dc [-n] [-H] [-w[interval]]
(گزینه زمان کامپایل)
[meshif netdev] gateways|gwl [-n] [-H] [-w[interval]]
[meshif netdev] mcast_flags|mf [-n] [-H] [-w[interval]]
(گزینه زمان کامپایل)
[meshif netdev] neighbors|n [-n] [-H] [-w[interval]]
[meshif netdev] originators|o [-n] [-H] [-w[interval]] [-t timeout_interval] [-i interface]
[meshif netdev] transglobal|tg [-n] [-H] [-w[interval]] [-u] [-m]
(گزینه زمان کامپایل)
[meshif netdev] translocal|tl [-n] [-H] [-w[interval]] [-u] [-m]

خانواده netlink عمومی ارائه‌شده توسط ماژول هسته batman-adv می‌تواند توسط batctl مورد پرس‌وجو (فقط‌خواندنی) قرار گرفته و به‌طور خودکار به JSON ترجمه شود. این قابلیت می‌تواند برای پایش وضعیت سیستم بدون نیاز به تجزیه جدول‌های اشکال‌زدایی بدون قالب مشخص یا پیام‌های بومی netlink استفاده شود.

[meshif netdev] bla_backbone_json|bbj
[meshif netdev] bla_claim_json|clj
[meshif netdev] dat_cache_json|dcj
[meshif netdev] gateways_json|gwj
[meshif netdev] hardifs_json|hj
[meshif netdev] mcast_flags_json|mfj
[meshif netdev] mesh_json|mj
[meshif netdev] neighbors_json|nj
[meshif netdev] originators_json|oj
[meshif netdev] transtable_global_json|tgj
[meshif netdev] transtable_local_json|tlj
[meshif netdev] vid <vid> vlan_json|vj

راه‌اندازی یک رابط batadv معمولاً شامل ساخت رابط اصلی، پیوست کردن رابط فیزیکی (پایین‌دست)، اعمال تنظیمات و بالا آوردن رابط است:


# create batadv (mesh) interface bat0 with routing algorithm B.A.T.M.A.N. IV
$ batctl meshif bat0 interface create routing_algo BATMAN_IV
# add the (already up and running) mesh0 interface as lower (hard) interface to bat0
$ batctl meshif bat0 interface -M add mesh0
# change some settings to better match the requirements of the user
$ batctl meshif bat0 orig_interval 5000
$ batctl meshif bat0 distributed_arp_table disable
...
# set the batadv (mesh) interface up before it is possible to use it
$ ip link set up dev bat0

این عمل تنها راه‌اندازی کارکرد لایه ۲ رابط bat0 را تضمین می‌کند. کاربر موظف است اطمینان حاصل کند که پیش از استفاده، دستگاه bat0 به یک پل متصل شده، یک نشانی IP بر روی آن پیکربندی شده (دستی/کلاینت DHCP/...)، یا با سایر بخش‌های سیستم یکپارچه شده است.

همچنین رابط‌های فیزیکی (پایین‌دست) متصل به رابط batadv باید توسط کاربر به‌گونه‌ای پیکربندی شوند که از انتقال بسته‌های اترنت تک‌پخشی و پخش همگانی میان گره‌های متصل به آن پشتیبانی کنند. متداول‌ترین دلیل کار نکردن مش batman-adv پیکربندی نادرست رابط‌های فیزیکی، سخت‌افزار، سفت‌افزار یا باگ‌های درایور است که مانع تبادل صحیح برخی از انواع بسته‌ها می‌شود.

وضعیت فعلی رابط را می‌توان با استفاده از جدول‌های اشکال‌زدایی بررسی کرد. اغلب بررسی این نکته سودمند است که بسته‌های اکتشافی از کدام همسایگان مستقیم دریافت شده‌اند. مرحله بعدی بررسی مسیرهای (ارجح) به سمت مبداها است. این مسیرها تنها زمانی شکل می‌گیرند که سنجه شبکه اتصالات دوطرفه میان همسایگان را شناسایی کرده باشد و ممکن است بسته‌های اکتشافی را از گره‌ها/مبداهایی که مستقیماً در دسترس نیستند فوروارد کرده باشد.


# get list of neighbors from which the current node was able to receive discovery packets
$ batctl meshif bat0 neighbors
# get (preferred) routes the routing algorithm found
$ batctl meshif bat0 originators

اگر دیگر نیازی به استفاده از رابط bat0 در سیستم نباشد، می‌توان آن را نابود کرد:


# destroy the interface and let the system remove its state
$ batctl meshif bat0 interface destroy

این فایل شبیه به فایل ‎/etc/hosts است. می‌توانید در هر سطر یک نشانی MAC و یک نام میزبان بنویسید. ابزار batctl برای یافتن bat-hosts در ‎/etc، پوشه خانگی شما و پوشه فعلی جستجو می‌کند. اطلاعات یافت‌شده برای تطبیق نشانی MAC با نام میزبان ارائه‌شده توسط شما یا جایگزینی نشانی‌های MAC در خروجی‌های اشکال‌زدایی و گزارش‌ها استفاده می‌شود. به خاطر سپردن نام میزبان بسیار آسان‌تر از نشانی‌های MAC است.

bridge(8), dmesg(1), ip(8), ip-link(8), ping(8), tcpdump(8), traceroute(1), trace-cmd(1)

ابزار batctl توسط Andreas Langer <an.langer@gmx.de> و Marek Lindner <marek.lindner@mailbox.org> نوشته شده است.

این صفحه راهنما توسط Simon Wunderlich <sw@simonwunderlich.de>، Marek Lindner <marek.lindner@mailbox.org> و Andrew Lunn <andrew@lunn.ch> نوشته شده است.

17 ژوئیه 2015 Linux