نت فلو

نت فلو(NetFlow)، یک پروتکل شبکه‌است که توسط سیسکو سیستمز برای جمع‌آوری اطلاعات ترافیک IP طراحی و تولید شده‌است. در حال حاضر نت فلو به یک استاندارد صنعتی برای مانیتورینگ ترافیک شبکه تبدیل شده که توسط پلت فرم‌هایی دیگر پشتیبانی می‌شود، در ادامه پشتیبانی نت فلو را می‌بینیم.

شرح پروتکل

روتر و  سوییچ‌هایی که از نت فلو پشتیانی می‌نمایند قادر هستند تا اطلاعات ترافیکIP  را  بر روی اینترفیس‌هایی که نت فلو آن فعال است  را جمع‌آوری نمایند و سپس این اطلاعات را به عنوان یک رکورد نت فلو به حداقل یک جمع آورکننده نت فلو که معمولاً یک سرور برای آنالیز اطلاعات می‌باشد، ارسال نمایند.

ارسال سوابق نت فلو

روتر هنگامی که مشخص کند یک جریان (Flow)  پایان یافته، سوابق فلو را تولید می‌نماید. روتر با مشاهده ترافیک جدید برای فلو موجود، شمارنده aging  را صفر می‌نماید و همچنین خاتمه یک نشست TCP منجر به انقضا فلو توسط روتر می‌گردد.

پروتکل لایه انتقال نت فلو

سوابق نت فلو توسط قرارداد داده‌نگار کاربر(UDP) ارسال می‌گردد و توسط یک کالکتور نت فلو جمع‌آوری می‌گردد. آدرس IP کالکنور نت فلو و پورت مقصد پروتکل UDP باید در روتر فرستنده تنظیم گردد. مقدار استاندارد برای پورت UDP 2055 می‌باشد ولی مقادیر دیگر مانند ۹۵۵۵ یا ۹۹۹۵ نیز  به کار می‌رود.
به خاطر مسئله کارایی، روترها به‌طور معمول اثری از فلوهای ارسال شدهٔ خود نگه نمی‌دارند، بنابراین اگر یک بستهٔ نت فلو به دلیل  کنترل ازدحام در شبکه یا دست خوردگی بسته دور انداخته شود، برای همیشه آن بسته را از دست خواهیم داد. پروتکل UDP روتر را از واقعه از بین رفتن بسته‌ها مطلع نمی‌نمایدو روتر به ارسال بسته‌ها ادامه می‌دهد. این یک مشکل جدی می‌باشد، مخصوصاً برای نسخه‌های V8 و V9 نت فلو که بسته‌ها و فلوها را به صورت مجموعه‌ای بزرگ در یک رکورد ذخیره می‌نماید. در صورتی که بسته‌ها را از دست بدهیم تأثیر عظیمی بر روی آمار فلوها ایجاد می‌نماید.
به همین دلیل است که پیاده سازی‌های جدید نت فلو از پروتکل انتقال کنترل جریان (SCTP) برای ارسال بسته‌ها استفاده می‌نمایند به‌طوری‌که در برابر از دست دادن بسته‌ها حمایت و نگهداری می‌نماید و این اطمینان را در نسخهٔ V9 نت فلو می‌دهد قبل از ارسال هر بسته نمونه‌های فبلی به مقصد رسیده‌اند. قابل توجه اینکه پروتکل TCP برای نت فلو مناسب نمی‌باشد زیرا ترتیب دقیق بسته‌های اطلاعاتی تأخیر و بافر زیادی می‌طلبد.
مشکلی که در استفاده از پروتکل SCTP وجود دارد لزوم بر هم کنش میان هر کالکتور نت فلو و روترهای ارسال‌کننده می‌باشد. این ممکن است منجر به محدودیت در کارایی عملکرد شود اگر روتر بخواهد با چندین کالکتور نت فلو رفتار نماید و برعکس ؛به خصوص در حالتی که برخی از این‌ها غیرقابل دسترس باشند.
SCTP ممکن است در صورتی که باید به سمت چندین کالکتور ارسال نماید، مناسب نباشد. که برخی از آن‌ها ممکن است توسط سرورها آزمایش شوند که می‌تواند در هر لحظه پایین بیاید.UDP تکرار ساده‌ای از بسته‌های نت فلو با استفاده از network tap‌ها ویا L2 یا L3 معکوس اجازه می‌دهد. تجهیزات ساده قادر هستند تا بسته‌های UDP نت فلو را فیلتر یا آدرس مقصد را تغییر دهند. چون ارسال‌کننده نت فلو معمولاً لینک‌های ستون فقرات شبکه را به کار می‌برند، از دست دادن بسته اغلب از آن صرف نظر می‌شود.

اینترفیس‌های نت فلو

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

Cisco's NetFlow Security Event Logging

در ابتدای معرفی cisco ASA 5580 بیان شده که NetFlow Securiy Event Logging  از نسخهٔ ۹ نت فلو و نمونه‌های آن برای ارائه امنیت در محیط‌های با کارایی بالا مورد استفاده قرار می‌گیرد. NetFlow Securiy Event Logging در مقایسه با syslog  با همان سطح از جزییات و دانه دانه بودن در ورود حوادث بهتر به نظر می‌رسد.

تاریخچه

نت فلوها در اصل یک تکنولوژی مبتنی بر سوییچ بسته برای روترهای سیسکو می‌باشد که در IOS 11.x در حوالی سال ۱۹۹۰  پیاده‌سازی شد. نت فلو در واقع نرم‌افزاری است که برای روترهای سیسکو ۷۲۰۰،۷۰۰۰ و ۷۵۰۰  در جایی که در  سوییچینگ سریع سیسکو بهبود ایجاد شده بود، پیاده‌سازی گردید.
ایدهٔ آن این بود که اولین بستهٔ هر فلو رکورد نت فلو را ایجاد می‌نماید. این رکورد برای پاکت‌های بعدی آن فلو تا زمان انقضای فلو مورد استفاده قرار می‌گیرد. تنها اولین بستهٔ هر فلو نیاز به جستجو در جدول مسیربابی دارد. این عمل پرهزینه‌ای در پیاده‌سازی نرم‌افزاری به‌شمار می‌آید. رکورد نت فلو شبیه رکورد route cache   می‌باشد و نسخه‌های قبلی IOS همچنان نت فلو را با ip route-cache  می‌شناسند.
این تکنولوژی برای شبکه‌های محلی نیز سودمند می‌باشد. بعضی از ترافیک‌ها می‌تواند توسط ACL یه محض ارزیابی اولین بسته فلو فیلتر شوند.
بزودی مشخص شد که نت فلو برای روترهای بزرگ، به خصوص روترهای backbone شبکه مناسب نمی‌باشد. آنجایی که به‌طور هم‌زمان فلوهای زیادی  وجود دارد که اهمیت بعضی از آن‌ها نسبت به بقیه مانند ترافیک محلی و ترافیک‌های دارای مدت عمر کوتاه مثل DNS بیشتر می‌باشد.
این تکنولوژی سوییچینگ نت فلو در سال ۱۹۹۵ توسط سیسکو با express Forwarding چایگزین شد. این اولین بار در روترهای ۱۲۰۰ سیسکو ظاهر شد و بعدها با چایگزین شدن IOS پیشرفته در روترهای ۷۲۰۰،۷۵۰۰ به کار گرفته شد.
در سال ۲۰۱۲ تکنولوژی‌هایی شبیه نت فلو در فایروال‌ها و نرم‌افزارهای مبتنی بر IP روترها به کار رفته‌است. برای نمونه می‌توان به فریمورک Netfilter موجود در لینوکس اشاره نمود.