پیکربندی نام ها و توضیحات رابط

طرح نامگذاری رابط قدیمی زمانی که چندین کارت شبکه روی یک کامپیوتر وجود دارد، مشکلاتی ایجاد میکند، زیرا اینترفیسها بر اساس ترتیبی که هسته لینوکس آنها را در زمان بوت پیدا میکند، نامگذاری میشوند. اگر یک رابط حذف یا اضافه شود، رابطهایی که قبلاً اضافه شدهاند ممکن است نام خود را تغییر دهند. بنابراین، دیگر استفاده از آن توصیه نمی شود، اگرچه آخرین توزیع های لینوکس همچنان از آن پشتیبانی می کنند.
خوشبختانه، لینوکس به ما اجازه می دهد تا طرح نامگذاری رابط خود را ایجاد کنیم، که اگر به درستی نگهداری شود، در هنگام نظارت و عیب یابی شبکه کمک زیادی می کند. این به مدیران این آزادی را می دهد که بر اساس معیارهایی مانند نوع رابط، محل قرارگیری و اتصال آن، یا استفاده از آن، نام رابط را انتخاب کنند. این باعث می شود که رابط ها در هنگام نظارت و عیب یابی شبکه بسیار آسان تر و سریع تر شناسایی شوند.
نامها/توضیحات رابط را میتوان از NetFlow با شروع نسخه 9 (سیسکو)، NetStream (Huawei) و IPFIX دریافت کرد. باید تاکید کرد که نام و توضیحات رابطی را مشخص می کند که صادرکننده Flow بسته ها را روی آن می گیرد. سپس جریان های تولید شده به Flow Analyzer صادر می شوند.
NetFlow v9 نوع فیلد IF_NAME (مقدار 82) را تعریف می کند، که نام اختصاری رابط است، به عنوان مثال. “FE0/1” و فیلد IF_DESC (مقدار 83)، که نام کامل رابط است، به عنوان مثال. “FastEthernet 0/1” (شکل 1). به طور مشابه، IANA شناسه های عنصر 82 و 83 را برای IPFIX تعریف می کند که عبارتند از InterfaceName و InterfaceDescription. باز هم، فیلد اول یک نام کوتاه است که به طور منحصر به فرد رابط را توصیف می کند، و فیلد دوم نشان دهنده توصیف رابط است.

شکل 1 – فیلدهای Cisco NetFlow v9 IF_NAME و IF_DESC
ما اهمیت نامگذاری رابط سفارشی را با استفاده از زیرساخت شبکه نشان داده شده در شکل 2 نشان خواهیم داد. صادرکننده IPFIX، که در این سناریو nProbe است، بسته ها را روی رابط eth0 که به پورت SPAN پیکربندی شده روی سوئیچ در DMZ متصل است، می گیرد. جریان ها از nProbe به Noction Flow Analyzer (NFA) صادر می شوند.

شکل 2 – زیرساخت شبکه با صادرکننده جریان و تحلیلگر
Nprobe از CLI لینوکس با پارامترهای زیر شروع می شود:
$ sudo nprobe -i eth0 -V 10 -n 10.0.0.1:2055 -T="%SAMPLING_INTERVAL %IN_BYTES %IN_PKTS %IPV4_SRC_ADDR %IPV4_DST_ADDR %IPV4_NEXT_HOP %L4_SRC_PORT %L4_DST_PORT %SRC_VLAN %DOT1Q_SRC_VLAN %SRC_TOS %TCP_FLAGS %PROTOCOL %IP_PROTOCOL_VERSION %DIRECTION %FLOW_START_MILLISECONDS %FLOW_END_MILLISECONDS %IN_SRC_MAC %OUT_DST_MAC %ICMP_TYPE %BIFLOW_DIRECTION %L7_PROTO_NAME %INTERFACE_NAME" -t 60 -d 15 -l 60
– n: آدرس گردآورنده
– i: رابطی که در آن بسته ها ضبط می شوند
– V: نسخه صادرات جریانی: 10 – IPFIX، 9 (v9)، 5 (v5)
– T: تعریف قالب جریان. جریان های NetFlow V9 و IPFIX دارای فرمت سفارشی هستند که می توان در زمان اجرا با استفاده از این گزینه مشخص کرد.
-t: حداکثر طول عمر نخ
-d: حداکثر طول عمر جریان بیکار
-l: حداکثر صف انتظار.
پارامتر %INTERFACE_NAME به nProbe دستور می دهد تا نام رابط را در جریان های IPFIX صادر شده قرار دهد (شکل 3). با این حال، نام چیزی در مورد جایی که بسته ها ضبط می شوند، نمی گوید. بنابراین ما طرح نامگذاری خود را با تغییر نام رابط eth0 به dmz0 ایجاد می کنیم. در نگاه اول، مشخص خواهد شد که پورتی که nProbe بسته ها را روی آن می گیرد، به شبکه dmz متصل است.

شکل 3 – اولین جریان با نام رابط eth0
1. تغییر نام رابط شبکه eth0 به dmz0 در لینوکس Debian 10
بسیاری از توزیعهای لینوکس از تغییر نام رابطها به نامهای انتخابشده توسط کاربر مانند internet0، dmz0، lan0 بر اساس مکانهای فیزیکی یا آدرسهای MAC به عنوان بخشی از اسکریپتهای شبکهشان پشتیبانی میکنند. برای انجام این کار، یک فایل .link در دایرکتوری /etc/systemd/network/ ایجاد می کنیم که نام صریح dmz0 را برای رابط eth0 انتخاب می کند.
فایل لینک حاوی الف [Match] بخشی که تعیین می کند آیا فایل اتصال را می توان بر روی یک دستگاه اعمال کرد یا خیر، و a [Link] بخشی که نحوه پیکربندی دستگاه را مشخص می کند.
| توجه داشته باشید: اگر صادرکننده دارای چندین رابط است که باید نام آنها تغییر یابد، باید برای هر رابط یک فایل پیوند جداگانه ایجاد شود. |
در بخش بعدی، یک شرط مطابقت را در فایل اتصال بر اساس مکان فیزیکی رابط یا آدرس MAC آن قرار می دهیم. هر دو گزینه به خوبی کار می کنند، یکی را که بیشتر ترجیح می دهید انتخاب کنید.
1.1 موقعیت فیزیکی دستگاه eth0 را دریافت کنید
Udev مدیر دستگاه برای هسته لینوکس نسخه 2.6 و جدیدتر است که به ما امکان می دهد دستگاه ها را بر اساس ویژگی های آنها مانند شناسه فروشنده و شناسه دستگاه شناسایی کنیم. این بخشی از systemd است و بنابراین به طور پیش فرض نصب می شود.
ما از دستور udevadm برای دریافت شناسه مسیر دستگاه eth0 استفاده می کنیم. Path_ID یک شناسه دستگاه منحصر به فرد است که از دامنه PCI، شماره گذرگاه، شماره دستگاه و عملکرد دستگاه PCI تشکیل شده است.
$ sudo udevadm info /sys/class/net/eth0 | grep ID_PATH
![]()
شکل 4 – دریافت ID_PATH برای دستگاه eth0
ما می توانیم رشته دستگاه “0000:00:03.0” را به صورت زیر تقسیم کنیم:
0000 – دامنه PCI (هر دامنه می تواند حداکثر 256 گذرگاه PCI داشته باشد)
00 – شماره اتوبوسی که دستگاه به آن متصل است
03 – شماره دستگاه
0 – عملکرد دستگاه PCI
1.2 آدرس MAC دستگاه eth0 را دریافت کنید
ما باید آدرس MAC رابط eth0 را بدست آوریم (شکل 5) تا بتوانیم یک شرط مطابقت بر اساس آدرس MAC ایجاد کنیم.
![]()
شکل 5 – بررسی آدرس MAC رابط eth0
1.3 ایجاد یک فایل پیوند
فایلهای پیوند، پیکربندی یک شبکه منطبق را رمزگذاری میکنند و باید پسوند .link داشته باشند، در غیر این صورت نادیده گرفته میشوند. بیایید یک فایل اتصال با شرایط مطابقت و یک بخش اتصال ایجاد کنیم که دستگاه جدیدی به نام dmz0 را بر اساس مکان فیزیکی به رابط eth0 متصل می کند.
$ sudo vi /etc/systemd/network/10-rename-eth0.link
[Match]
مسیر=pci-0000:00:03.0
[Link]
نام = dmz0
در صورتی که بخواهیم یک شرط مطابقت بر اساس آدرس MAC رابط eth0 ایجاد کنیم، پیکربندی فوق را به صورت زیر تغییر دهید:
[Match]
آدرس MACA=08:00:27:84:13:f2
[Link]
نام = dmz0
1.4 پیکربندی شبکه را به روز کنید
رابط eth0 پس از راه اندازی مجدد به dmz0 تغییر می کند، بنابراین برای استفاده از نام رابط جدید باید پیکربندی شبکه را به روز کنیم. فایل /etc/network/interfaces را ویرایش کنید و تمام نمونه های رابط eth0 را به نام جدید – dmz0 تغییر دهید.
دستور sed همه رخدادهای کلمه کلیدی eth0 را با dmz0 جایگزین می کند:
$ sudo sed -i 's/eth0/dmz0/g' /etc/network/interfaces
در مرحله بعدی، بررسی می کنیم که رابط eth0 به dmz0 تغییر کرده است (شکل 6):
$ cat /etc/network/interfaces

شکل 6 – تغییر پیکربندی شبکه
دبیان را مجددا راه اندازی کنید و بررسی کنید که نام رابط شبکه جدید dmz0 استفاده شده باشد (شکل 7):
![]()
شکل 7 – رابط dmz0 در حال استفاده
اکنون می توانیم nProbe را با همان پارامترهای قبلی اجرا کنیم. با این حال، ما باید eth0 را با dmz0 بعد از پارامتر -i جایگزین کنیم.
جریان های IPFIX صادر شده اکنون حاوی نام رابط -dmz0 به روز شده هستند (شکل 8).

شکل 8 – مقدار ID به روز شده IfName در جریان IPFIX
نتیجه
InterfaceName و InterfaceDescription فیلدهایی در جریان IPFIX هستند که اطلاعاتی در مورد نام کوتاه و کامل رابطی که صادرکننده جریان بسته ها را روی آن می گیرد، ارائه می دهد.
به همین دلیل، مهم است که رابط را نامگذاری کنید تا بلافاصله مشخص شود که این رابط کجا متصل است، که سپس به نظارت و عیب یابی شبکه کمک می کند. با این حال، هم صادرکننده و هم تجزیه کننده جریان باید از این ویژگی ها پشتیبانی کنند.
نام رابط و شناسایی توضیحات از طریق NetFlow، IPFIX و NetStream در Noction Flow Analyzer که با نسخه 21.11 شروع می شود، پشتیبانی می شود. این قابلیت به ویژه در مواقعی مفید است که استفاده از SNMP بهترین گزینه نیست یا به سادگی امکان پذیر نیست.




