
حرّر وأعد تشغيل حركة مرور الشبكة الملتقطة بسرعات اعتباطية — مجموعة من أدوات pcap لأنظمة *NIX وWindows.
Tcpreplay هي مجموعة من الأدوات المرخّصة تحت [GPLv3] لأنظمة UNIX (وWindows تحت [Cygwin]) لتحرير وإعادة تشغيل حركة مرور الشبكة التي تم التقاطها مسبقًا بواسطة أدوات مثل [tcpdump] و[Wireshark]. وهي تصنّف حركة المرور كعميل أو خادم، وتعيد كتابة ترويسات الطبقات 2/3/4، وتعيد تشغيلها على الشبكة عبر المبدّلات والموجّهات والجدران النارية وأنظمة NIDS وIPS — بمعدلات تتراوح من تدفق ضئيل وصولًا إلى معدل السلك الكامل. يدعم Tcpreplay كلاً من أوضاع بطاقة الشبكة الواحدة والمزدوجة، لاختبار كل من أجهزة التنصّت والأجهزة المضمّنة في المسار.
يُستخدم Tcpreplay من قِبل العديد من بائعي الجدران النارية وأنظمة IDS وIPS وNetFlow وغيرها من بائعي الشبكات، والمؤسسات، والجامعات، والمختبرات، والمشاريع مفتوحة المصدر. إذا كانت مؤسستك تستخدم Tcpreplay، فيرجى إخبارنا بمن أنتم وما تستخدمونه من أجله، حتى نتمكن من مواصلة إعطاء الأولوية للميزات التي تهم.
منذ الإصدار 4.0، يستهدف Tcpreplay أيضًا بشكل خاص اختبار أجهزة [IP Flow][flow]/[NetFlow]: توقيت تشغيل عالي المعدل دقيق وإعداد تقارير النتائج، وإحصاءات التدفقات في الثانية (fps)، وتحليل انتهاء صلاحية التدفقات لضبط إعدادات المهلة الزمنية لمنتج التدفقات — حتى مئات الآلاف من التدفقات/ثانية، اعتمادًا على أحجام التدفقات في ملف pcap.
📖 التوثيق الكامل متاح على https://tcpreplay.appneta.com — دليل البدء، وصفحة لكل أداة، ووصفات إرشادية، والمفاهيم الكامنة وراء المجموعة، وصفحات man، والأسئلة الشائعة. هذا الملف README هو الجولة السريعة؛ أما الموقع فهو المرجع.
tcpreplay-edit)
أو عشوائية عناوين IP (tcpreplay)tcpreplay العادي عادةً عند الطبقة 2)راجع CHANGELOG للاطلاع على سجل الإصدارات الكامل.
نزّل أحدث أرشيف إصدار (متوفر أيضًا على SourceForge)، ثم:
tar xf tcpreplay-*.tar.xz && cd tcpreplay-*
./configure && make && sudo make install
حزمة إصدار (tarball) تأتي مع محللات CLI وصفحات man مُولّدة مسبقًا، لذا لا يحتاج هذا إلى أي شيء يتجاوز مترجم C وlibpcap — راجع البناء من المصدر أدناه فقط إذا كنت تعمل من نسخة git، أو تريد دعم CMake أو netmap أو AF_XDP أو io_uring.
توجد تعليمات أكثر تفصيلًا خاصة بكل منصة في ملف INSTALL
المضمّن في حزمة الإصدار (نفس المحتوى الموجود في docs/INSTALL هنا).
يتطلب البناء من نسخة git وجود python3 وasciidoctor (أيًا كان
نظام البناء) لتوليد محللات خيارات CLI وصفحات man من
ملفات *_opts.def — وقد حلّ هذا محل GNU AutoGen لهذا الغرض في 4.6
(AutoGen وصل إلى نهاية العمر؛ أما هذه فلم تصل). لا يزال AutoGen نفسه مطلوبًا فقط لترويسة
داخلية واحدة (src/tcpedit/tcpedit_stub.h) — راجع
scripts/autoopts/README.md. لا شيء من هذا
مطلوب عند بناء حزمة إصدار، إذ تأتي مع هذه العناصر مُولّدة مسبقًا.
./autogen.sh # only needed once, from a git checkout
./configure
make
sudo make install
اعتبارًا من الإصدار 4.6، يمكن أيضًا بناء المجموعة باستخدام CMake (3.16+) — الطريقة الموصى بها والأساسية لتجميع Tcpreplay. لا يزال Autotools متوفرًا ويُستخدم لإصدارات tarball، لكنه سيُسحب تدريجيًا في النهاية، لذا يجب أن تستهدف النصوص البرمجية/الحزم الجديدة CMake.
cmake -B build
cmake --build build
sudo cmake --install build
كل علم من أعلام ./configure له مقابل في CMake — انظر الجدول في أعلى CMakeLists.txt. بعض الأمثلة:
# debug build with support for the -d option
cmake -B build -DENABLE_DEBUG=ON
# AddressSanitizer or ThreadSanitizer build
cmake -B build -DENABLE_ASAN=ON
cmake -B build -DENABLE_TSAN=ON
# custom libpcap install, static linking, custom tcpdump path
cmake -B build -DWITH_LIBPCAP=/usr/local/opt/libpcap \
-DENABLE_STATIC_LINK=ON -DWITH_TCPDUMP=/usr/sbin/tcpdump
# force a specific packet injection method
cmake -B build -DFORCE_INJECT_PCAP_SENDPACKET=ON
# several configurations side by side
cmake -B build-debug -DENABLE_DEBUG=ON
cmake -B build-release
cmake --build build --target manpages يعيد إنشاء صفحات man
(python3 + asciidoctor)؛ بينما cmake --build build العادي لا يمسّها أبدًا.
يمكن لمستخدمي VS Code الذين لديهم إضافة CMake Tools فتح مجلد المستودع
ببساطة واختيار إعداد مسبق (configure preset) عند المطالبة.