كيفية استخدام الأمر arping على Linux

لينكس arping الأمر مثل pingولكن للشبكات المحلية فقط. تتمثل ميزتها في أنها تعمل على مستوى شبكي أدنى، وفي بعض الأحيان تحصل على استجابات عندما ping لا يمكن. وإليك كيفية استخدامه.




بروتوكول ARP

عنوان IP هو تسمية رقمية لجهاز متصل بالشبكة. يتم استخدامه كعنوان حتى تصل حركة المرور الشبكية المناسبة إلى الجهاز الصحيح. لكن معظم الأجهزة على الشبكات المحلية لها عناوين IP ديناميكية. أي أن عنوان IP الخاص بها قد يتغير في المرة التالية التي يتم فيها تشغيلها.

لكي تتمكن من توجيه حركة مرور الشبكة بشكل صحيح إلى الجهاز المناسب، يجب استخدام مخطط يربط عناوين IP بعناوين التحكم في الوصول إلى الوسائط (MAC). عنوان MAC هو هوية فريدة يتم إنشاؤها عند نقطة تصنيع الجهاز. عنوان IP هو عنوان منطقي. عنوان MAC هو عنوان فعلي.

ذات صلة: ما هي حزمة البيانات؟

بروتوكول حل العناوين هو الوسيط الذي يربط عناوين IP بعناوين MAC. يقوم الجهاز المسؤول عن تجميع حزم الشبكة وتوجيهها في شبكتك ـ عادةً جهاز التوجيه ـ ببناء جدول ARP وصيانته والذي يربط عناوين IP بعناوين MAC.


إذا احتاج جهاز التوجيه إلى توجيه البيانات إلى جهاز لا يعرفه، فإنه يقوم بإرسال طلب ARP للحصول على عنوان MAC للجهاز الجديد.

عندما يتم توصيل جهاز جديد بشبكتك، يتم تعيين عنوان IP له، ولكن هذا لا يكفي لتوجيه حركة المرور إليه فعليًا. يحتاج جهاز التوجيه إلى الحصول على عنوان MAC وهو القطعة المفقودة من اللغز. ولكن لأن عنوان IP في حد ذاته لا يكفي لتوجيه الحزم إلى الجهاز، معضلة 22 هل من الممكن استخدام عنوان IP للاستعلام عن الأجهزة للحصول على عنوان MAC؟

يقوم نموذج الربط بين الأنظمة المفتوحة بتجميع التقنيات التي تشكل شبكة عاملة على شكل سلسلة من الطبقات. ولا يمكن للطبقات الأعلى أن تعمل بدون الطبقات الأدنى. وهناك سبع طبقات في نموذج الربط بين الأنظمة المفتوحة.


  • الطبقة 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 الخاص به قد تم إنشاؤها وتسجيلها.

ذات صلة: كيفية تغيير عنوان MAC الخاص بك بشكل دائم على Linux

أمر arping

تتم جميع عمليات ARP الذكية تلقائيًا في الخلفية، مما يؤدي إلى إنشاء جدول ARP وصيانته. arping يجلب الأمر بعض وظائف استعلام ARP إلى نافذة المحطة الطرفية. فهو يعمل في الطبقة الثانية من OSI ويمكنه طلب استجابة من جهاز عندما ping لا يفعل.


في فيدورا 36، arping تم تثبيته بالفعل، ولكننا كنا بحاجة إلى تثبيته على Manjaro 21 وUbuntu 22.04.

في أوبونتو الأمر هو:

sudo apt install arping

تثبيت arping على أوبونتو

في Manjaro تحتاج إلى كتابة:

sudo pacman -Sy arping

تثبيت arping على Manjaro

أبسط طريقة للاستخدام arping يحتوي على عنوان IP. يجب أن يكون هذا عنوان جهاز يمكن الوصول إليه مباشرة ومتصل بالشبكة المحلية. لأن arping يعمل على الطبقة الثانية، ولا يمكن التوجيه. ستحتاج إلى استخدام sudo مع arping.


sudo arping 192.168.1.17

استخدام arping مع عنوان IP

اضغط على Ctrl+C للتوقف. المعلومات التي يتم إرجاعها هي عنوان MAC للجهاز المستجيب ورقم الفهرس الخاص بالجهاز المستجيب. arping الطلب ووقت الذهاب والإياب arping طلب ليتم استكماله.

قارن الناتج بالناتج من ping الأمر أدناه. ping يعيد الأمر مزيدًا من المعلومات حول توقيت ذهاب الحزمة الشبكية ذهابًا وإيابًا. arping يمنحك الأمر إحصائيات توقيت أقل، ولكنه يتضمن عنوان MAC الخاص بالجهاز.

ping 192.168.1.17

استخدام ping مع عنوان IP


يمكنك أيضًا استخدام اسم الشبكة للجهاز مع arping.

sudo arping fedora-36.local

استخدام arping مع عنوان IP

يمكنك استخدام -c (العدد) خيار لمعرفة arping للتوقف بعد عدد محدد من الطلبات. يخبرك هذا الأمر arping المحاولة مرتين ثم التوقف.

sudo arping -c 2 192.168.1.18

استخدام الخيار -c لإخبار arping بالتوقف بعد تقديم طلبين

إذا كان لديك واجهات شبكة متعددة في جهاز الكمبيوتر الخاص بك، فيمكنك استخدام -I (الواجهة) خيار لإخبار arping أي واجهة يجب استخدامها؟


يمكنك استخدام ip link أمر لإدراج واجهات الشبكة الخاصة بك.

ip link

استخدام رابط IP لإدراج واجهات الشبكة

يحتوي هذا الكمبيوتر على ثلاث واجهات. lo تُستخدم الواجهة الافتراضية كحلقة ارتجاعية للاتصالات الداخلية بين البرامج على نفس الكمبيوتر. وهي ليست ذات فائدة لنا هنا. يمكننا استخدام اتصال إيثرنت enp3s0 أو الواجهة اللاسلكية wlan0.

هذا الأمر يخبر arping استخدام الواجهة التي نختارها، وليس إجراء اختيار خاص بها.

sudo arping -c 2 -I enp3s0 manjaro-21.local

استخدام الخيار -I لإخبار arping باستخدام واجهة شبكة محددة


استخدام arping في البرامج النصية

عن طريق التغليف 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. يتم استخدامها في نمط C for حلقة. في كل دورة من 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


استخدام خيار chmod +x لجعل البرنامج النصي قابلاً للتنفيذ

سنقوم بتشغيله ومسح نطاق IP من 15 إلى 20. بعض هذه العناوين لا تحتوي على أجهزة متصلة، لذا يجب أن نرى بعض الأعطال. تذكر استخدام sudo سنحاول أيضًا ping الجهاز على 192.168.1.15.

sudo ./scan-range.sh 15 20

ping 192.168.1.15

تشغيل البرنامج النصي وتشغيل ping

نحصل على مزيج من النجاحات والإخفاقات، كما هو الحال في أي شبكة. ولكن لاحظ أنه على الرغم من أن الجهاز الموجود على 192.168.1.15 يستجيب لطلب ARP من الطبقة الثانية، فإنه لا يستجيب لطلب ARP من الطبقة الثالثة. ping طلب.


إذا قمت بإرسال إشارة إلى الجهاز ولاحظت الفشل، فربما تميل إلى التحقق من توصيله بالإنترنت، وما إذا كان بإمكانك ping خارج الجهاز 192.168.1.15.

ولكن مع arping يمكنك التحقق من أنه متصل ومتصل بالإنترنت ويمكن الوصول إليه عبر الشبكة. سيؤدي ذلك إلى توجيهك إلى استكشاف الأخطاء وإصلاحها للبدء في البحث في مشكلات التوجيه وجدول ARP.

نظرة أعمق

هناك العديد من الطبقات في شبكة البصل. إذا ping لا يوصلك إلى أي مكان، قم بإسقاط طبقة وانظر ماذا arping أستطيع أن أخبرك.

أضف تعليق