كيفية استخدام أمر arping على نظام Linux
نشرت: 2022-07-28 يشبه الأمر Linux arping
الأمر ping
، ولكنه مخصص للشبكات المحلية فقط. ميزته هي أنه يعمل على مستوى أقل من الشبكات ، وأحيانًا يحصل على ردود عندما لا يستطيع الأمر ping
. إليك كيفية استخدامه.
بروتوكول ARP
عنوان IP هو تسمية رقمية لجهاز متصل بالشبكة. يتم استخدامه كعنوان حتى تصل حركة مرور الشبكة المناسبة إلى الجهاز الصحيح. لكن معظم الأجهزة على شبكات المنطقة المحلية لها عناوين IP ديناميكية . وهذا يعني أن عنوان IP الخاص بهم قد يتغير في المرة التالية التي يتم فيها تشغيلهم.
لتتمكن من توجيه حركة مرور الشبكة بشكل صحيح إلى الجهاز المناسب ، يجب استخدام مخطط يقوم بتعيين عناوين IP لعناوين التحكم في الوصول إلى الوسائط (MAC). عنوان MAC هو هوية فريدة تم إنشاؤها في نقطة تصنيع الجهاز. عنوان IP هو عنوان منطقي . عنوان MAC هو عنوان مادي .
بروتوكول تحليل العنوان هو الوسيط الذي يقوم بتعيين عناوين IP لعناوين MAC. يبني الجهاز المسؤول عن تنظيم حزم الشبكة وتوجيهها في شبكتك - جهاز التوجيه عادةً - جدول ARP الذي يربط عناوين IP بعناوين MAC ويحافظ عليه.
إذا احتاج جهاز التوجيه إلى توجيه البيانات إلى جهاز لا يعرفه ، فإنه يقدم طلب ARP للحصول على عنوان MAC للجهاز الجديد.
عندما يتم توصيل جهاز جديد بشبكتك ، يتم تعيين عنوان IP ، لكن هذا لا يكفي لتوجيه حركة المرور إليه بالفعل. يحتاج جهاز التوجيه إلى الحصول على عنوان MAC وهو الجزء المفقود من بانوراما. ولكن نظرًا لأن عنوان IP في حد ذاته ليس معلومات كافية لتوجيه الحزم إلى الجهاز ، فإن Catch-22 لا يمكنه استخدام عنوان IP للاستعلام عن الجهاز للحصول على عنوان MAC.
يجمع نموذج ربط الأنظمة المفتوحة التقنيات التي تشكل شبكة عمل كسلسلة من الطبقات. لا يمكن أن تعمل الطبقات العليا بدون الطبقات السفلية. هناك سبع طبقات في نموذج OSI.
- الطبقة 7 هي أعلى طبقة ، طبقة التطبيق . يوفر معلومات لمستخدم الكمبيوتر ويتلقى المعلومات منه.
- الطبقة 6 هي طبقة العرض . يؤدي ذلك إلى التأكد من أن البيانات بالتنسيق أو الحالة الصحيحة أثناء انتقالها من تنسيق الشبكة وإليه. يتم التشفير وفك التشفير في هذه الطبقة.
- الطبقة 5 هي طبقة الجلسة . الجلسة هي اتصال شبكة بين جهازين أو أكثر. تتضمن هذه الطبقة نفسها بمسائل مثل بدء الاتصال والمصافحة والمهلة وانقطاع الاتصالات التي لم تعد مطلوبة.
- الطبقة 4 هي طبقة النقل . هذه هي الطبقة التي تنقل البيانات حول الشبكة بطريقة منسقة. تهتم هذه الطبقة بأشياء مثل معدلات النقل وأحجام البيانات. يعمل بروتوكول التحكم في الإرسال - TCP في TCP / IP - في هذه الطبقة.
- الطبقة 3 هي طبقة الشبكة . هذا هو المكان الذي يتم فيه التوجيه وإعادة توجيه الحزم. إنها الطبقة التي يعمل بها بروتوكول الإنترنت - IP في TCP / IP.
- الطبقة 2 هي طبقة ارتباط البيانات . يتم استخدامه لإرسال الحزم بين الأجهزة القابلة للعنونة بشكل مباشر باستخدام عمليات البث لكل جهاز أو إرسال أحادي إلى عناوين MAC محددة.
- الطبقة 1 هي الطبقة المادية . يتعلق هذا بالبنية التحتية المادية بما في ذلك الكابلات والموجهات ومحولات الشبكة. تندرج موجات الراديو المستخدمة في شبكة Wi-Fi أيضًا ضمن هذه الفئة.
عندما يتلقى جهاز التوجيه حزمة لعنوان IP غير موجود في جدوله ، فإنه يرسل حزمة بث إلى الشبكة بأكملها. يسأل بشكل فعال "من لديه عنوان IP هذا؟" هذه رسالة من الطبقة الثانية لذا فهي لا تعتمد على توجيه IP.
يستجيب الجهاز الذي يحمل العنوان المطابق عن طريق إعادة إرسال عنوان MAC الخاص به. يمكن إضافة عنوان IP الخاص بهذا الجهاز وعنوان MAC إلى جدول التعيين. يمكن الآن توجيه حركة مرور IP العادية إلى الجهاز لأنه تم إنشاء وتسجيل العلاقة بين عنوان IP الخاص به وعنوان MAC الخاص به.
ذات صلة: أساس الإنترنت: TCP / IP يتحول إلى 40
قيادة أربينج
تعمل جميع عناصر ARP الذكية تلقائيًا في الخلفية ، وتقوم ببناء جدول ARP وصيانته. يجلب الأمر arping
بعض وظائف استعلام ARP إلى نافذة المحطة الطرفية. يعمل في طبقة OSI الثانية ويمكنه طلب استجابة من جهاز عندما لا يفعل الأمر ping
.
في Fedora 36 ، تم تثبيت arping
بالفعل ، لكننا احتجنا إلى تثبيته على Manjaro 21 و Ubuntu 22.04.
في Ubuntu ، يكون الأمر:
sudo apt تثبيت arping
في Manjaro ، تحتاج إلى كتابة:
sudo pacman -Sy arping
إن أبسط طريقة لاستخدام arping
هي باستخدام عنوان IP. يجب أن يكون هذا عنوان جهاز يمكن عنونة مباشرة ومتصل بالشبكة المحلية. نظرًا لأن arping
يعمل في الطبقة الثانية ، فلا يوجد توجيه ممكن. ستحتاج إلى استخدام sudo
مع arping
.
سودو أربينج 192.168.1.17
اضغط على Ctrl + C للتوقف. المعلومات التي تم إرجاعها هي عنوان MAC للجهاز المستجيب ، ورقم فهرس طلب arping
، ووقت الذهاب والإياب لإكمال طلب arping
.
قارن الإخراج بهذا الأمر ping
أدناه. يُرجع الأمر ping
مزيدًا من المعلومات حول توقيت رحلة ذهاب وعودة لحزمة الشبكة. يمنحك الأمر arping
إحصائيات توقيت أقل ، لكنه يتضمن عنوان MAC الخاص بالجهاز.
بينغ 192.168.1.17
يمكنك أيضًا استخدام اسم الشبكة الخاص بالجهاز مع arping
.
sudo arping fedora-36.local
يمكنك استخدام الخيار -c
(العدد) لإخبار arping
بالتوقف بعد عدد معين من الطلبات. يخبر هذا الأمر arping
بمحاولة مرتين ثم التوقف.
sudo arping -c 2 192.168.1.18
إذا كان لديك العديد من واجهات الشبكة في جهاز الكمبيوتر الخاص بك ، فيمكنك استخدام الخيار -I
(الواجهة) لإخبار arping
التي يجب استخدامها.
يمكنك استخدام الأمر ip link
لسرد واجهات الشبكة الخاصة بك.
رابط IP
يحتوي هذا الكمبيوتر على ثلاث واجهات. تُستخدم الواجهة الظاهرية lo
كنقطة استرجاع للاتصالات الداخلية بين البرامج على نفس الكمبيوتر. لا يفيدنا هنا. يمكننا استخدام اتصال إيثرنت enp3s0
أو الواجهة اللاسلكية wlan0
.
يخبر هذا الأمر arping
باستخدام الواجهة التي نختارها ، وليس التحديد الخاص بها.
sudo arping -c 2 -I enp3s0 manjaro-21.local
باستخدام arping In Scripts
من خلال لف arping
في برنامج نصي ، يمكننا جعلها تعمل عبر مجموعة من عناوين IP. انسخ النص من هذا البرنامج النصي واحفظه في ملف يسمى “scan-range.sh”.
ستحتاج إلى تعديل البرنامج النصي واستبدال جميع تكرارات 192.168.1 بعنوان IP الخاص بشبكتك.
#!/bin/bash for (( device = $1 ; device <= $2 ; device ++ )) do arping -c 1 192.168.1. $device | grep -E "1 response|1 packets received" > /dev/null if [ $? == 0 ] ; then echo "192.168.1. $device responded." else echo "192.168.1. $device didn't respond." fi done
يقبل البرنامج النصي معلمتين من معلمات سطر الأوامر. تُستخدم هذه كآخر ثماني بتات من عناوين IP للنطاق الذي تريد استخدامه على arping
. لذلك ، إذا قمت بتمرير 20 و 30 إلى البرنامج النصي ، فستبدأ الحلقة عند 192.168.1. 20 وتنتهي بعد استخدام عنوان IP 192.168.1. 30 .
يتم الوصول إلى المعلمات داخل البرنامج النصي كـ $1
و $2
. تستخدم هذه في حلقة for
شكل حرف C. عند كل دوران for
، يتم تعيين $device
على عنوان IP التالي في النطاق.
يستخدم البرنامج النصي تنسيق arping -c
نفسه الذي رأيناه بالفعل ، ولكن هذه المرة نطلب فقط إرسال طلب ARP واحد إلى كل جهاز في النطاق.
يتم تمرير الإخراج من الأمر arping
من خلال الأنابيب grep
.
يمكن تبسيط صيغة grep
في البرنامج النصي الخاص بك. يبحث grep
عن واحدة من سلسلتين ، إما "استجابة واحدة" أو "تم استلام حزمة واحدة". وذلك لأن أجهزة الكمبيوتر التي تم اختبارها لها إصدارات مختلفة من arping
وتستخدم مصطلحات مختلفة. إذا وجد grep
أيًا من هذه العبارات ، فستكون قيمة الخروج الخاصة بها صفرًا.
عندما تعرف أي العبارات يستخدمها نسختك من arping
، يمكنك تبسيط بناء جملة grep
عن طريق إزالة العبارة الأخرى.
اختبار if
يختبر $?
—متغير يحمل كود الخروج من العملية الأخيرة التي انتهت — لمعرفة ما إذا كان صفرًا. إذا كان الأمر كذلك ، فإنه يستخدم echo
لطباعة رسالة نجاح إلى نافذة المحطة الطرفية. إذا فشل الاختبار ، فلن يجد grep
أيًا من السلاسل ، مما يعني فشل طلب ARP.
اجعل البرنامج النصي الخاص بك قابلاً للتنفيذ باستخدام الأمر chmod
وخيار +x
.
chmod + x scan-range.sh
سنقوم بتشغيله وفحص نطاق IP من 15 إلى 20. بعض هذه العناوين لا تحتوي على أجهزة متصلة ، لذلك يجب أن نرى بعض الإخفاقات. تذكر استخدام sudo
. سنحاول أيضًا ping
الجهاز على 192.168.1.15.
sudo ./scan-range.sh 15 20
ping 192.168.1.15
نحصل على مزيج من النجاحات والإخفاقات ، كما هو الحال مع أي شبكة. لكن لاحظ أنه على الرغم من أن الجهاز على 192.168.1.15 يستجيب لطلب الطبقة الثانية من ARP ، إلا أنه لا يستجيب لطلب ping
للطبقة الثالثة.
إذا كنت قد قمت باختبار اتصال الجهاز ولاحظت الفشل ، فمن المحتمل أن تميل للتحقق من توصيله ، عبر الإنترنت ، وما إذا كان بإمكانك تنفيذ الأمر ping
من الجهاز 192.168.1.15.
ولكن باستخدام arping
يمكنك التحقق من أنه متصل بالإنترنت ويمكن الوصول إليه من الشبكة. سيؤدي ذلك إلى توجيه استكشاف الأخطاء وإصلاحها لبدء البحث في مشكلات التوجيه وجدول ARP.
نظرة أعمق
هناك العديد من طبقات البصل الشبكي. إذا لم ينقلك الأمر ping
إلى أي مكان ، فقم بإسقاط طبقة وشاهد ما يمكن أن يخبرك به arping
.
ذات صلة: كيفية إدارة شبكات Linux Wi-Fi باستخدام Nmtui