شرح الـNetflow مع توضيح أوجه الأختلاف بينه وبين SNMP
Ayman Alnaimi أيمن النعيمي
سوف أتحدث اليوم عن أحد البروتوكولات التى قامت سيسكو بتطويره وهو الـNetflow وهو بروتوكول شبيه بي الـ SNMP ووظيفته مراقبة الشبكة والأجهزة من خلال تحليل الترافيك ومراقبة الباندويث في الشبكة والذي يساعدنا في رفع أداء الشبكة والجميل في هذا البروتكول بأنه ليس حصرا على أجهزة سيسكو فهو مدعوم من شركات آخرى لكن بمسميات مختلفة وهذه بعض الأمثلة
Jflow or cflowd for Juniper Networks NetStream for 3Com/H3C NetStream for Huawei Technology Cflowd for Alcatel-Lucent sFlow for Foundry Networks/Brocade
بعكس الـ SNMP الـ Netflow يستطيع أن يقدم لنا تحليل ومتابعة الـ Flow Traffic من خلال تحديد منفذ معين مثلا أو من خلال تحديد أيبي معين وهذا كله يتم من خلال الأعدادات التى نقوم نحن بها وسوف أعود لأتحدث عنها بشكل أفضل, بعد جمع المعلومات يقوم البروتوكول بتخزينها على الـFlow Cache ليتم دفعها فيما بعد إلى الـ Netflow analyzer أو يتم حذفها في حال لو أنتهى الزمن المسموح ببقائها (times out) على الكاش وأرجو منك كقارئ أن تركز على كلمة دفعها PUSH لانها سوف تعطيك أحد أكبر الأختلافات بين الـ Netflow والـ SNMP لان الثاني يقوم بسحب أو جذب المعلومات إليه (PULL) من خلال الـNMS أو Network Management Station راجع موضوع الـ SNMP لفهم هذه التفاصيل بشكل أكبر بينما الـNetflow يقوم بدفعها نحو مركز التحكم أو مركز المراقبة والذي يحوي البرنامج المسؤول عن تحليل هذه البيانات ونستطيع أيضا ان نصف هذا الأختلاف بأن الأول يقوم بتصدير المعلومات Export من خلال الجهاز الذي يقوم بجمع المعلومات والثاني يقوم بأستيراد المعلومات Import من خلال الجهاز المسؤول عن أستلام المعلومات, أما الأختلاف الثاني فهو يتمحور حول أمكانية كل بروتوكول لان بروتكول الـ SNMP يقوم بجمع أحصائيات أكثر عن الجهاز نفسه مثل platform resource utilization, traffic counts, and error counts وهذا يشمل أحصائيات حول المعالج والرامات والأخطاء التى حدثت على الجهاز أما الـ Netflow فهو يقوم بجمع معلومات مفصلة حول الترافيك الذي يمر عبر هذا الجهاز.
يعتمد الـNetflow على سبع طرق لجمع المعلومات وهذه الطرق كالآتي
Source IP address Destination IP address Source port for UDP or TCP, 0 for other protocols Destination port for UDP or TCP, type and code for ICMP, or 0 for other protocols IP protocol Ingress interface IP Type of Service
وتستطيع أن تلاحظ معي الامكانيات التى يعطيها لك البروتوكول للقيام بعملية جمع المعلومات اللأزمة وطبعا هي متاحة بحسب أمكانية الجهاز المستخدم مثل أن يكون L2L3L4
أصدارات الـNetflow
حتى الآن هناك تسعة أصدارات للـNetflow بحسب موقع سيسكو ويعد الأصدار الخامس منها هو ألأكثر أستخداما حتى وقتنا الحالي وهذه نظرة مبسطة عنها منقولة من موقع الويكيبديا
Description
Version
First implementation, now obsolete, and restricted to IPv4 (without IP mask and AS Number).
V1
Cisco internal version, never released.
V2
Cisco internal version, never released.
V3
Cisco internal version, never released.
V4
Most common version, available (as of 2009) on many routers from different brands, but restricted to IPv4 flows.
V5
No longer supported by Cisco. Encapsulation information (?).
V6
Like version 5 with a source router field. Used (only?) on Cisco Catalyst switches.
V7
Several aggregation form, but only for information that is already present in version 5 records
V8
aka v10; IETF Standardized NetFlow 9 with several extensions like Enterprise-defined fields types, and variable length fields.
V9
أعداد الـ Netflow
قد يكون أعداد الـ Netflow معقد بعض الشيء كون وجود أمكانيات كبيرة للبروتوكول من حيث كيفية ونوعية الترافيك الذي من الممكن جمع المعلومات عنه بالأضافة إلى نوعية الجهاز نفسه لذا سوف أقدم مثالان أثنان
المثال الأول
سوف نتوجه إلى الروتر 0 ونقوم بمراقبة المنفذ المتصل مع الروتر 1 وخطوات الأعداد كالآتي
من خلال هذا الأمر نقوم بتفعيل الـNetflow على المنفذ وبعدها نتوجه إلى المنفذ المتصل مع جهاز الكمبيوتر والذي سوف يستلم المعلومات ونقوم بالأعدادات التالية :
Cisco's IOS
router(config)# ip flow-export version 5 router(config)# ip flow-export destination <ip_address> 2000 router(config)# ip flow-export source FastEthernet 0/0
في الأمر الأول قمنا بتحديد الأصدار الذي سوف يستخدم والأمر الثاني قمنا بتحديد أيبي الكمبيوتر الذي سوف يتم أرسال المعلومات إليه وهو هنا PC-PT وبعدها قمنا بكتابة الرقم 2000 وهي ملاحظة هامة جدا أحب أن أعطيك أياها وهي تعني البورت الذي سوف يتم أرسال المعلومات من خلاله لان الـNetflow لايوجد له بورت مخصص للأرسال لذلك نقوم بأختيار بورت معين والعملية تتم من خلال بروتوكول الـUDP والأمر الآخير من أجل تحديد المكان الذي سوف نقوم فيه بجمع المغلومات منه وأرسالها إلى الكمبيوتر
المثال الثاني
Cisco's IOS
R4# conf term R4(config)# int fa 0/0 R4(config-if)# ip flow ingress R4(config-if)# exit R4(config)# int fa 0/1 R4(config-if)# ip flow ingress R4(config-if)# exit R4(config)# ip flow-export source lo 0 R4(config)# ip flow-export version 5 R4(config)# ip flow-export destination 192.168.1.50 5000 R4(conig)# end
سوف تستطيع من خلال هذا المثال ان تلاحظ أننا أخترنا أكثر من بورت لكي يتم مراقبتهم وبالتحديد مراقبة الترافيك الذي يدخل من خلال 0/0 و 1/0 وبالتالي أمكننا من مراقبة كل الترافيك الذي يعبر من خلال الروتر وباقي التفاصيل مفهومة ,أما الأوامر التالية فهي من أجل تحديد الوقت التى سوف نسمح فيه للـflow بالبقاء في الكاش كما ذكرنا من قبل (Times out)
Cisco's IOS
router(config)# ip flow-cache timeout active 5 router(config)# ip flow-cache timeout inactive 30
وآخيرا وليس آخرا الأوامر المستخدمة لعرض حالة الـ netflow على الروتر أو من أجل الـTrubleshooting
Cisco's IOS
router# show ip flow export router# show ip cache flow router# show ip cache verbose flow
وآخيرا أحب أن أختم حديثي حول البرامج التى من الممكن أستخدامها مع الـ Netflow وهي كثيرة جدا وسوف أختار البرامج المجانية منها